logstash集成日志以及在kibana中查询和使用 博客分类: 开源软件 elk elasticsearchlogstashkibana
在上一篇文章中(http://weitao0912-163-com.iteye.com/admin/blogs/2271414)介绍了怎么安装elk(elasticsearch+logstash+kibana),接下来需要介绍下怎么使用elk。
首先要弄清楚,elk的工作流程,如下图:
首先,logstash agent(相当于上图的Shipper)按配置好的规则从每台服务器上收集log,收集好后,发送给Redis(redis此处只当做队列,不做存储使用,至于为什么用redis不用kafka,个人估计是kafka效率不如redis高,而且麻烦),然后logstash indexer再从redis里读取,读取完后发送给elasticsearch,elasticsearch再创建索引并存储,最后再通过kibana结合es从web界面进行查询和展示。
了解流程后,需要了解logstash是怎么从日志里收集数据的。这里,就需要建立conf文件了。如下:
input {
file{
path => ["d:/opt/wwwlogs/resinlog/*.log"]
start_position => beginning
codec=>json
discover_interval=>30
}
}
output {
stdout { codec => json }
elasticsearch {
hosts => "localhost:9200"
index => "test-%{+YYYY.MM.DD}"
}
}
config一共包含4部分,input,output,filter和codec,此处只用了input和output。input是logstash收集的目标来源,可以是file,也可以是stdin(即命令行输入)等.codec是指日志转化的格式,可以是json,也可以是rubydebug格式。logstash默认是每隔1秒就尝试读取文件有没有新内容,默认是15秒就扫描,检查有没有新文件。对应stat_interval和discover_interval参数。
output是指数据发送的目的地,此处没有用redis,直接发送个elasticsearch。index是指es创建索引的name.比如今天是2016年1月18日,则logstash启动时,会往es里创建名为test-2016.01.18的索引。
将上面的config文件内容保存在logstash目录下的bin目录,比如test-logstash.conf,然后进入bin目录,在命令行输入logstash.bat -f test-logstash.conf。启动logstash后,就会自动往es里发送数据。可以通过http://localhost:9200/_plugin/head查看创建的索引(这是es部分的内容)。如下
使用logstash收集完日志后,接下来通过kibana查看,在浏览器输入:http://localhost:5601,可以看到,在setting里创建index pattern,创建对es索引的mapping,创建完后,再点击discover,可以看到收集的日志数据了。然后就可以自己进行查询了,呵呵,这样查日志是不是比ssh到多台服务器去查看log方便很多呢?
参考链接:
https://www.elastic.co
http://www.th7.cn/db/mysql/201405/53069.shtml
http://storysky.blog.51cto.com/628458/1158707/
http://www.w2bc.com/Article/85035
http://langke.name/2014/12/18/elk-2.html
http://www.cnblogs.com/fangjian0423/p/logstash-elasticsearch-build.html
http://blog.kazaff.me/2015/06/05/%E6%97%A5%E5%BF%97%E6%94%B6%E9%9B%86%E6%9E%B6%E6%9E%84--ELK/
https://xiequan.info/%E4%BD%BF%E7%94%A8elasticsearch-logstash-kibana%E6%90%AD%E5%BB%BA%E6%97%A5%E5%BF%97%E9%9B%86%E4%B8%AD%E5%88%86%E6%9E%90%E5%B9%B3%E5%8F%B0%E5%AE%9E%E8%B7%B5/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io