ELK Stack搭建和使用中的一些小记录
2016-02-11 00:42
288 查看
ELK Stack是非常很强大的一套东西,同样也意味着比较复杂。去年在搭建这套东西时,
也被折腾的够累的.主要是些小坑,知道了的话其实没什么,非常简单,不知道话,还是有点急人的。
数据采集用的Beats系列,这玩意是用Go写的,比直接用Logstash,性能要更好,分工也更明确.
Packetbeat : 用来嗅探和分析网络流量,如HTTP、MySQL、Redis等
Topbeat: 用来收集系统的监控信息,功能如其名,类似*nix下的top命令.
Filebeat: 用来收集数据源是文件的数据,比如常见的系统日志、应用日志、网站日志等.
采集完了丢给Logstash,处理完毕后,上传到AWS的Elasticsearch服务(这里有个坑卡了我好久)完事.
Logstash有很多的功能,比如N多的插件,比如丰富的Grok等等,我很多处理都要靠它,
但可能是我没用对,我发现其实它的一些插件在生产环境有些也不是那么靠谱的。
比如有个插件http_poller。
httppoller.conf:
当HTTP服务不能访问时,会返回"_http_request_failure"
我在本地怎么测试都ok的,部署后简单测试了下,也没发现问题,但不久就发现,当日志服务器很繁忙时,
这个插件其实达不到所要的效果,老是误报.最后只好自己开发了个服务来做这件事。所以用插件时,一定在生
产环境观察或测试一段时间,千万不要简单测试一下就不管了。
另外,如果logstash的一些插件不以满足,又不想研究JRuby之类,可以考虑直接用exec,将数据传
到外面直接自己处理.
exec{
command => " ...... "
}
还有一点,在生产环境,如果修改了对应的conf文件,一定要注意先"configtest"一下,毕竟,conf
如果做了很多处理,很复杂的情况下,先确保修改后的conf格式是否正确还是很有必要的.
./bin/logstash -f xxx.conf --configtest
最后还有一个要提醒的东西是调试,logstash的处理正不正确,除了看日志,可以在启动时加"-v v"
能实时看到很多东西,但最好在测试环境用。
有很多小坑和小心得,不一一写了,不过ELK Stack确实非常好用,也还有很多东西需要去挖掘,我基于它,
并整合其它服务,用Golang搭起了一套运维告警系统(包含邮件,微信实时通知及数据分析等)的骨架。
现在基本已离不开这套东西了。
BLOG:http://blog.csdn.net/xcl168
也被折腾的够累的.主要是些小坑,知道了的话其实没什么,非常简单,不知道话,还是有点急人的。
数据采集用的Beats系列,这玩意是用Go写的,比直接用Logstash,性能要更好,分工也更明确.
Packetbeat : 用来嗅探和分析网络流量,如HTTP、MySQL、Redis等
Topbeat: 用来收集系统的监控信息,功能如其名,类似*nix下的top命令.
Filebeat: 用来收集数据源是文件的数据,比如常见的系统日志、应用日志、网站日志等.
采集完了丢给Logstash,处理完毕后,上传到AWS的Elasticsearch服务(这里有个坑卡了我好久)完事.
Logstash有很多的功能,比如N多的插件,比如丰富的Grok等等,我很多处理都要靠它,
但可能是我没用对,我发现其实它的一些插件在生产环境有些也不是那么靠谱的。
比如有个插件http_poller。
httppoller.conf:
input { http_poller { urls => { test1 => "http://localhost:8090" test2 => { type => "aa" tags => ["aaa","aaaa"] method => get url => "http://test2.xxx.com/pong" } test3 => { method => get url => "http://test3.xxx.com/pong" headers => { Accept => "application/json" } auth => { user => "xcl" password => "pwd" } } } request_timeout => 60 interval => 60 #codec => "json" metadata_target => "http_poller_metadata" } } filter { if [http_poller_metadata] { mutate { add_field => { "host" => "%{http_poller_metadata[name]}" } } } } output { stdout { codec => rubydebug } }./bin/logstash -f httppoller.conf
当HTTP服务不能访问时,会返回"_http_request_failure"
我在本地怎么测试都ok的,部署后简单测试了下,也没发现问题,但不久就发现,当日志服务器很繁忙时,
这个插件其实达不到所要的效果,老是误报.最后只好自己开发了个服务来做这件事。所以用插件时,一定在生
产环境观察或测试一段时间,千万不要简单测试一下就不管了。
另外,如果logstash的一些插件不以满足,又不想研究JRuby之类,可以考虑直接用exec,将数据传
到外面直接自己处理.
exec{
command => " ...... "
}
还有一点,在生产环境,如果修改了对应的conf文件,一定要注意先"configtest"一下,毕竟,conf
如果做了很多处理,很复杂的情况下,先确保修改后的conf格式是否正确还是很有必要的.
./bin/logstash -f xxx.conf --configtest
最后还有一个要提醒的东西是调试,logstash的处理正不正确,除了看日志,可以在启动时加"-v v"
能实时看到很多东西,但最好在测试环境用。
有很多小坑和小心得,不一一写了,不过ELK Stack确实非常好用,也还有很多东西需要去挖掘,我基于它,
并整合其它服务,用Golang搭起了一套运维告警系统(包含邮件,微信实时通知及数据分析等)的骨架。
现在基本已离不开这套东西了。
BLOG:http://blog.csdn.net/xcl168
相关文章推荐
- #研发解决方案#基于Apriori算法的Nginx+Lua+ELK异常流量拦截方案
- elk在centos7安装
- ELKstack 搭建日志管理平台
- ELK中Kibana4中Elasticsearch的UTC时间误差八小时的处理方法
- ELK日志管理之——logstash部署
- ELK日志管理之——elasticsearch部署
- ELK日志管理之——kibana部署
- ELK日志管理之——logstash配置语法
- clojure实战——日志处理
- Logstash处理json格式日志文件的三种方法
- 分布式日志收集之Logstash 笔记(二)
- ELK日志分析系统部署
- 使用Docker和Rancher运行你自己的ELK环境。
- elasticsearch中的mapping简介
- elk分析nginx访问日志
- ELK安装配置
- logstash+elasticsearch+kibana日志收集
- elasticsearch简介
- ELK stack 学习记录
- ELK 日志分析系统