监控系统演进

我们厂虽然成立没多久但是监控系统已经换了5代了,比公司的年纪都大,整个ops进进出出也有30号人了。

后面会按这5带去慢慢写。

ganglia

老牌监控工具了,使用了组播的方式来收集,其他应用程序也可以主动汇报自己的状态。数据存储是文件形式的rrd。
因此也很方便进行数据累加查看,可以方便的查看整个集群的状态和集群中每个机器的异常。

贵司至今很多java程序里还有上报到ganglia的配置文件呢。
缺点是没法报警

nagios

使用nagios进行报警,然后画图没有的,于是自己写了程序去抓nagios的结果然后通过rrdtools绘图。
对于基础的报警,直接用snmp的方式来报警就可以了。其他的业务类的就只能自己写代码去实现了。

缺点是nagios没有自发现的功能,导致需要写程序嵌入到ansible脚本中进行初始化和删除。
然后自己画的rrd图实在是太难看了,虽然可以做很多自定义,但是依然很难看。

zabbix

直接上了zabbix3.0, 终于有了自发现和趋势的报警了。

缺点依然是图难看,性能太弱,几千台服务器,总共也就十几万的指标居然就要分表,而且还搞了一堆的从库才能支撑起来,虽然模板很多,但是不支持应用程序主动上报。

influxdb+statsd

prometheus