Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。
Kibana 也是一个开源和免费的工具,它Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
1,ELK工作的原理图
2,Elk平台搭建
依次启动服务1,Elasticsearch 2,Kibana 3,Logstash
启动Logstash的参数:
input {
tcp {
host => "127.0.0.1"
port => 8181
mode => "server"
tags => ["tags"]
codec => json_lines
}
}
output {
elasticsearch { hosts => ["localhost:9200"] }
stdout {codec => rubydebug}
}
logstash -f logback2es.conf
logstash -f testCMD2es.conf
input { stdin {} }
output {
elasticsearch { hosts => ["localhost:9200"] }
stdout {codec => rubydebug}
}
logstash -f testCMD2CMD.conf
input { stdin {} }
output { stdout {} }
3,项目使用:
分布式项目使用时只需要在logback-spring.xml新增一个appender,将日志输出到logstash即可
从工作原理图可以看到多个appserver的日志会集中到分布式es,最后通过kibana来展示。
在huieryun-comm-examples 中使用效果如下:
参考文档:
https://my.oschina.net/itblog/blog/547250
http://lib.csdn.net/article/java/64854