Docker中一键安装ELK
对于这种工具类的东西,第一步就直接到docker的hub中查找了,很幸运,不仅有Elasticsearch,kibana,logstash 单独的镜像,而且还直接 有ELK的镜像。
sudo docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -d --name log-platform --restart always sebp/elk
这当然能少好多配置,毫不犹豫就选择了elk的镜像, 运行起来!如果没有异常的话相信就很容易的跑起来了(最有可能出现的问题就是虚拟内存不足了,可以百度找解决方案这里就不在详细说了)
项目中添加log4net到Elasticseach的Appender
因为在.net core 之前就有搭建过日志中心,所以对于appender还记得有一个Log4net.Elasticsearch的dll,但是在查看资料之后发现很久没有更新 也不支持.net standard。在决定自己实现appender之前,抱着侥幸心理去查找了一翻,既然找到一个支持.net core的开源项目log4stash。很幸运,又可以不要造轮子了,哈哈。log4Stash使用很简单,但是配置的东西还挺多的而且作者也没有很好的文档介绍,先不管其他的用起来在说。
- 项目中添加log4stash
Install-Package log4stash -Version 2.2.1
- 修改log4net.config
在log4net.config中添加appender
localhost
9200
log_test_%{+yyyy-MM-dd}
LogEvent
2000
10000
True
另外附上全部的配置信息
localhost
9200
/es5
log_test_%{+yyyy-MM-dd}
LogEvent
2000
10000
False
IdSource
True
10000
_routing
%{RoutingSource}
_id
%{IdSource}
key
value
Partial
templateName
path2template.json
Username
Password
Secret
AccessKey
Region
@type
Special
SmartValue
the type is %{@type}
@type
SmartValue
SmartValue2
JsonRaw
false
_
XmlRaw
false
Message
:=
,
Message
the message is %{WORD:Message} and guid %{UUID:the_guid}
true
someIds
,
shouldBeString
anotherIds
最后别忘了在root中添加上appender
OK,项目的配置就到这里结束了,可以运行项目写入一些测试的日志了。
在kibana建立Index Pattern
Elasticsearch的Index跟关系数据库中的Database挺类似的,虽然我们项目在写了测试数据后,Elasticsearch中就已经有Index了,但是如果我们需要在可视化工具中查询数据的话建立Index Pattern
进入Management - Create Index Pattern,输入我们项目日志配置文件中的Index名称log_test-*(如果有数据,这边应该是会自动带出来的),然后创建,之后就可以在Kibana中浏览,查询我们的日志信息了。