我们的storm实时流计算项目已经上线几个月了,由于各种原因迟迟没有进行监控,每次出现问题都要登录好几台机器,然后使用sed,shell,awk,vi等各种命令来查询原因,效率非常低下,而且有些统计是没法做的,所以很有必要对storm本身相关的日志以及我们运行在storm上面的任务的日志做一个统一的日志收集,分析,查询,统计平台。
对于这个选择,其实不用考虑那么多,借用一句名言 Life is short , You need elk ! 关于elk相关的安装这里不再介绍,可参考散仙的博客:
http://qindongliang.iteye.com/category/330375
序号 | 讨论 | 内容 |
---|---|---|
1 | storm需要收集的日志 | (1)本身的相关的日志 (2)提交任务的日志 |
2 | 日志过滤 | 排除gc的log和部分不相干业务的log |
3 | 索引如何切分 | 考虑量不是很大,按每月生成一份索引 |
4 | 索引模板定制 | 默认的动态mapping比较简答,所以我们采用自定义动态索引模板 |
5 | 日志的定期删除 | 使用es官网插件curator管理 |
(1)es的模板定义 注意date类型的动态类型是开启docvalue的,便于快速聚合和排序
(2)logstash的conf定义
放在logstash的根目录下面
启动脚本:start_jstorm.shnohup bin/logstash -f config/jstorm.conf &> jstorm_logstash.log & echo $! >jstorm_logstash_pid&
关闭脚本:stop_jstorm.shkill -9 `cat jstorm_logstash_pid`
一切完成后,启动logstash收集进程后,我们就可以实时在kibana里面分析数据了,非常nice!
然后,我们就可以非常快速的定位异常数据了。