监控是不可或缺的, 不管我们的平台做多么强大和稳定, 业务总是会出现一些意想不到的事故。 任何事故出现前总会有一些预兆, 如果能够在事故发生前就已经知道它可能要发生,那我们就可以提前处理, 避免事故的发生。
那如何能够让我们提前知道呢?这就是监控工具要做的事情。常见的监控工具有cacti、nagios、zabbix 等,它们各有千秋。cacti 重图形,有数据历史,需用到数据库支持,支持 web配置,默认不支持告警,可以加插件。nagios 重状态和结果,没有数据历史,不成图像,不支持 web 配置,可以自己开发脚本定制个性化监控,支持多种插件。zabbix 有数据历史,可成图像,支持 web 配置,可以自动发现。
cacti 监控网络设备占优势,因为它有rrdtool工具,画出来的图非常漂亮。常用于监控交换机,路由器等网络设备。因为有历史数据,需要用到存储,所以依赖mysql来提供服务。
nagios 出现时间比zabbix早,也非常成熟。主要检测服务器的服务状态,硬盘是否写满、内存是否不够用了、负载是否太高了。或者说某一个服务是否down了。但是不会记录历史的数据。比如昨天的负载情况。优点在于一目了然的告诉我们,哪一个服务不正常。它监控是会获得几个状态,如正常、不正常等。
还有一个优势是,可以自己写脚本,通过nagios提供的工具,把我们的服务展现出来。也有报警的功能,某一个服务down掉,通过短信接口,发送短信报警。
没有画图功能,不记录历史数据。只给出一个状态。不需要存储和mysql。
zabbix 比nagios更丰富一些,它不仅仅支持查看历史的数据,也支持画图,网卡流量、报警、邮件报警等。还可以自动发现一些新加入进来的新设备,因为有历史数据,需要用到存储,所以依赖mysql来提供服务。
最常用的是nagios、zabbix