如何利用大数据思维实现无死角运维监控?
来源:湖北国菱计算机科技有限公司-荆州网站建设-荆州软件开发-政府网站建设公司
时间:2018-01-17
主要有工程数据,业务数据。所有的数据源都有一个共性,就是日志。无论文本的也好,二进制的也好。所以日志是整个信息的源头。日志包含的信息足以让我们追查到下面几件事情:
系统健康状况监控
查找故障根源
系统瓶颈诊断和调优
追踪安全相关问题
指标可以再进行分类:
业务层面:如团购业务每秒访问数,团购券每秒验券数,每分钟支付、创建订单等;
应用层面:每个应用的错误数,调用过程,访问的平均耗时,最大耗时,95线等;
系统资源层面:如cpu、内存、swap、磁盘、load、主进程存活等;
网络层面: 如丢包、ping存活、流量、tcp连接数等。
Storm(或第一幅图的SparkStreaming)做两件事情:
将日志过滤,格式化,或存储起来;
进行实时计算,将指标数据存储到HBase里去。
需要开发的地方只有两个点,有一个是一次性的,有一个则是长期。
先说说一次性的,其实就是大盘展示系统。这个就是从HBase里取出数据做展示。这个貌似也有开源的一套,ELK。不过底层不是用的HBase存储,而是ES。
长期的则是SparkStreaming(淘宝是使用Storm,我建议用SparkStreaming,因为SparkStreaming可以按时间窗口,也可以按量统一做计算),这里你需要定义日志的处理逻辑,生成上面提到的各项指标。
这里有一个什么好处呢,就是平台化了,对新的监控需求响应更快了,开发到上线可能只要几个小时的功夫。如果某个系统某天需要一个新的监控指标,我们只要开发个SparkStreaming程序,丢到平台里去,这事就算完了。
现在,如果你想要监控一个系统是不是存活,你不在需要去写脚本找他的pid看进程是不是存在,系统发现在一定的周期内没有日志,就可以认为它死了。而系统如果有异常,比如有大量的慢查询,大盘一定能展示出来。
对于运维的监控,利用大数据思维,需要分三步走:
找到数据;
分析定义从数据里中我能得到什么;
从大数据平台中挑选你要的组件完成搭积木式开发。
所有系统最可靠的就是日志输出,系统是不是正常,发生了什么情况,我们以前是出了问题去查日志,或者自己写个脚本定时去分析。现在这些事情都可以整合到一个已有的平台上,我们唯一要做的就是定义处理日志的的逻辑。