近期遇到项目需要定制开发运维监控软件,考虑到监控的规模比较大,数量比较多,所以不能随随便便找个开源的监控软件就能应付了事的,还是要认真对待。
N年以前笔者曾经使用过Nagios,catti以及MRTG等相关软件,但是随着近几年虚拟机、容器等新技术的应用,原来的这些软件也有点逐步落伍了。查阅N多资料和网上文档,提到的比较多的两个运维监控软件是Zabbix和Prometheus。
笔者亲自安装测试了一番,确实有一番心得体会,现在简单列举一下:
Zabbix
基本介绍如下。。。。。(汗,还是请大家自行搜索一下吧,笔者偷懒不再赘述)。还是直接说结论吧:不建议使用Zabbix,除非之前已经部署应用很久了才可以考虑是否保留。Zabbix具有如下一些不足:
- Zabbix后台数据存储采用的是MySQL或者是PostgreSQL,都是关系型数据库,不能很好的满足大规模数据存储的需求,数据量达到一定规模(或者说监控的资源超过一定规模)则会性能下降明显,
- 另外就是数据备份功能不完备,无法很好的与流行的云存储、对象存储进行衔接备份。
从这个角度出发,笔者选择放弃Zabbix。
而近几年的新秀Prometheus,则相对具有一定的优势:
- 支持对容器的监控;
- 可以分级监控和进行数据 汇聚,能够应对的监控目标规模和数据量远超Zabbix;
- 支持与多种第三方数据库进行实时数据传输备份
基于以上原因,笔者认为:Prometheus已经开始成为运维监控尤其是容器监控方面的标配,并且越来越得到广泛的应用。
简而言之一句话,如果是从零做起要开始进行运维监控的话,那么还是Prometheus吧,无需犹豫不会错。买不了吃亏,买不了上当。。。。。。