对监控系统的一些思考

年、年我在PPTV刚开始工作的时候,第一个开始涉及的工作就是监控系统。当时和我的老板陈文春(现在应该是新浪的总经理吧,好厉害)一起在Nagios和Zabbix中选型,当时觉得Nagios有各种各样的插件,功能很强大,但相应地配置麻烦,比如画图需要cacti配合。而Zabbix看上去是一个一步到位能解决所有问题的工具,虽然界面有点丑,但能满足我们的需求:画图、报警收集数据等。近年来的发展趋势,Zabbix比Nagios更加流行,我看了下GooglTrnds,Nagios的热度在缓慢下降,而Zabbix的热度在上升:

在Zabbix所监控的服务器越来越多情况下,对Zabbix的性能要求也越来越高。因为团队中大家对Oracl有更多的了解,我们Zabbix后端使用的数据库也是Oracl,这个应该是比较少见的,因为我了解下来目前肯定是MySQL更加流行(其实PPTV后来也换成了MySQL)。

在当时Zabbix功能还不是非常强大,有很多需求没法满足。这种情况下我们围绕Zabbix做了很多的工作:

开发了添加监控时使用的工具Spidr,原理很简单:根据不同的规则,在将一台服务器添加到Zabbix监控时,会根据服务器上运行的进程,或者hostnam(PPTV的hostnam中有服务器所属业务的信息)来添加对应的监控;

重新开发了Zabbix的Scrn功能,支持更加方便组合需要的监控数据,因为Zabbix自带的Scrn功能配置比较麻烦;

当出现报警的时候,Zabbix只负责将报警的信息推送出来,由我们自己开发的工具,根据Zabbix的信息,重新组合报警信息,将这一报警事件展现到报警平台中,并且将更加详细的报警邮件发送到CMDB中对应的负责人那。这样可以做到每一个报警事件的认领,追踪和解决。对于一些报警,邮件中能有初步的分析,工程师收到邮件就能大概知道问题发生的地方;

从代码入手,解决了Zabbix在Oracl中执行SQL的一些性能问题;

使用Nagios监控ZabbixMastr和Proxy的UpdatPrcnt,这个指的意义是过去一段时间内,有百分之多少的数据更新了。这个数据能很好地反应Mastr和Proxy的健康程度。

总结一下,我们在这几方面做了开发:

更全面的收集监控数据;

更好的展现监控数据;

梳理了报警的流程和操作;

优化后端数据存储的性能问题(主要是写的性能);

提高Zabbix的可用性。

?现状

在离开PPTV加入唯品会后,我基本没有很深入地去做Zabbix工作,除了做了一个ZabbixLastvalu的patch。简单介绍下这个Patch,Zabbix对于每一个监控项,会在一张表中保存这个监控项最近一次的取值,有了这个指标,可以方便做一些二次开发。而在Zabbix2.2(印象中是这个版本),这一列取消了,而我做的Lastvalu的patch,就是让Zabbix在将监控数据写入数据库的同时,再写一份到一张新的表,而这张表,就是原来Lastvalu的功能,这里要特别感谢唯品会的聂超和侯瑞,解决了C的内存泄露问题。

一直到现在,五年间,有很多身边的同事,或者网络上的朋友在做监控系统的开发,而我也在







































北京哪家医院白癜风做的好
白癜风的偏方治疗



转载请注明地址:http://www.hnrjbl.com/jkhyjs/26838940.html
  • 上一篇文章:
  • 下一篇文章: