最近一直听到小伙伴在问,zabbix和prometheus选择哪一个开源产品好?还是用国内的商业产品呢?今年年初以来,prometheus的热度就一直在往上增,同时也有不少国产商业产品替换。下面我就来给大家总结一下zabbix和prometheus以及商业产品的对比分析。
zabbix
Zabbix官方的发行版本时间可以追朔到年,时间上比Prometheus早了四年,Zabbix是由AlexeiVladishev开源的分布式监控系统,是一个企业级的分布式开源监控方案。能够监控各种网络参数以及服务器健康性和完整性的软件。使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,提供了出色的报告和数据可视化功能。
特点
开放性:源代码全公开,任何用户都可以编译和发布自己的版本。同时,社区和互联网可以找到大量的模版。
可扩展性:支持用户自定义监控项,只要能想得到的KPI,基本都能监控的到。
数据采集:可用性和性能检测,自动发现,支持agent、SNMP、JMX、telnet等多种采集方式,支持主动和被动模式数据传输
高可用:server对设备性能要求低,支持proxy分布式监控,分布式集中管理,开放式接口,扩展性强
告警管理:支持多条件告警,支持多种告警方式,
模板能力:支持多组模板,模板继承。
告警设置:告警周期,告警级别,告警恢复通知、告警暂停,时段阈值、支持维护周期、支持单机停用
历史数据:历史数据查询可配置,内置housekeeping数据清理机制
安全审计:具备安全的用户审计日志,权限认证,用户可以限制允许维护的列表。
无商业版本:平台本身没有商业版和社区版本的区分,ZABBIX只对商业服务收费(如培训、定制开发、部署服务等)。
prometheus
Kubernetes自从年开源以来便以不可阻挡之势成为容器领域调度和编排的领头羊,Kubernetes是GoogleBorg系统的开源实现,于此对应Prometheus则是GoogleBorgMon的开源实现。Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库。从字面上理解,Prometheus由两个部分组成,一个是监控报警系统,另一个是自带的时序数据库(TSDB)。年,由Google发起的Linux基金会旗下的原生云基金会(CloudNativeComputingFoundation)将Prometheus纳入其第二大开源项目。Prometheus在开源社区也十分活跃,在GitHub上拥有两万多Star,并且系统每隔一两周就会有一个小版本的更新,而Prometheus与它的“师兄”Kubernetes都自带云原生的光环,天然能够友好协作。
1、具有由metric名称和键值对标示的时间序列的多维数据模型。2、灵活的查询语言promQL。、不依赖分布式存储。4、通过HTTP服务来拉取时间序列。5、也支持推送的方式来添加时间序列数据。6、支持静态发现和通过服务发现监控目标。7、多种图形和仪表盘支持。
综合来看,Zabbix的成熟度更高,上手更快,但更好的集成导致灵活性较差,问题更大是,监控数据的复杂度增加后,Zabbix做进一步定制难度很高,即使做好了定制,也没法利用之前收集到的数据了(关系型数据库造成的问题)。目前很多zabbix监控的企业案例,要想再度升华zabbix可用性,基本都是找成熟的zabbix开发公司定制,比如乐维软件或者直接找zabbix官方购买定制服务。Prometheus基本上是正相反,上手难度大一些,但由于定制灵活度高,数据也有更多的聚合可能,起步后的使用难度远小于Zabbix。但如果已经对传统监控系统有技术积累的话,还是要谨慎考虑更换监控。
与其他开源监控对比
当然,市面上还有诸如:Open-Falcon、Zenoss、Ganglia、Prometheus、Cacti等开源产品,简单分析如下:
Open-Falcon:小米开源,时间不长,成熟度有待提高,现在的版本是V1.0
Zenoss:区分社区版和企业版本,资源消耗高,社区版本有些鸡肋
Ganglia:适合监控系统性能,成熟度和完整度不高,如报警、消息系统,需要更多二次开发
Cacti:通过SNMPget来获取数据,使用RRDtool绘画图形,画图功能强大,报警机制及相关功能不完善。
与其他商业产品对比
各个大厂都有提供相关监控产品,比如说微软的SCOM,IBM的Tivoli,华为的Esight,HP的BSM等,如果环境都是单一的某一家厂家的产品,用该厂家提供的监控工具肯定是合适的,笔者就曾经深度使用过SCOM,年还叫MOM,是SystemCenter中的一个套件,这个产品对于微软周边的产品如AD、Exchange、Windows、SQLServer、SharePoint、Lync等监控非常深入,同时微软官方还提供了相关故障知识库,报表也做得非常不错。
但是,如果拿SCOM去监控Linux、AIX、Oracle或者网络通讯设备就显得不合适了。
Zabbix很好地平衡了监控的深度和广度,而且源于开源的力量,在全球用户的持续贡献下,他的深度和广度是在持续不断地延展的。
以上就是对本人对zabbix与各类监控的一些浅见