Prometheus和Zabbix有什么区别?

时间:2016-02-10 01:08:38

标签: zabbix prometheus

正如标题所说,你能告诉我普罗米修斯和扎比克斯之间的区别吗?

3 个答案:

答案 0 :(得分:48)

Zabbix和Prometheus都可以用于各种监控场景,其中任何一个都没有特别的专业化。 Zabbix比普罗米修斯更老,可能更稳定,有更多现成的解决方案。

Zabbix的核心是基于PHP编写的C和webUI,它也使用了#34;代理"用{C写的client-side programs) 普罗米修斯用Go语言编写。

Zabbix将数据存储在用户选择的RDBMS(MySQL,PostgreSQL,Oracle,sqlite)中。 Prometheus使用自己的数据库嵌入到后端进程中(它是一个非关系数据库,专门用于存储监视数据in a similar fashionOpenTSDB的数据模型)。​​

Zabbix默认使用" pull"当服务器连接到每台监视机器上的代理程序时,代理会定期收集信息并将其发送到服务器。替代方案是"主动检查"代理与服务器建立连接并在需要时向其发送数据的模式。 普罗米修斯喜欢"拉"当服务器从客户端计算机收集信息时建模。但是,当{" push"}时,可能会使用Prometheus Push Gateway。需要模型。

Prometheus要求使用Prometheus客户端库(提供不同的编程语言)来检测应用程序,以准备指标。但是,为了监控无法检测的系统或软件,有一个官方"blackbox exporter"允许在一系列协议上探测端点;此外,广泛使用的third party "exporters"和工具可用于帮助公开Prometheus的指标(类似于"agents" for Zabbix)。其中一个工具是telegraf(https://github.com/influxdata/telegraf)。

Zabbix在代理和服务器之间使用自己的基于tcp的通信协议。 Prometheus使用HTTP和协议缓冲区(+文本格式,以便于卷曲使用)。

Zabbix提供自己的webUI进行可视化。 Prometheus提供了基本工具,用于浏览收集的数据并在其本机服务器上以简单的图形显示它,并提供最小的仪表板构建器PromDash。但普罗米修斯的设计目的是为Grafana等现代可视化工具提供支持。

Zabbix支持其核心警报。 Prometheus提供的警报解决方案与其核心分离为Alertmanager应用程序。

答案 1 :(得分:12)

Zabbix在机器方面思考,所以你只能用这些术语思考问题。可以基于简单的数学运算来触发警报。

普罗米修斯没有这种限制,您可以自由地考虑服务或数据中心。警报可以由任何有效表达式触发,例如平均延迟太高或磁盘将在4小时内填满。

https://blog.raintank.io/evolving-from-machines-to-services/更多地解释了基于机器和基于服务的监控之间的区别。

答案 2 :(得分:8)

Zabbix是用C和PHP编写的,它更像是经典监控..

Prometheus是用Go编写的,推荐用于Cloud,SaaS / openstack监控..

但是你可以同时使用两者,Prometheus更快,因为数据库zabbix占用空间较小(因为它用c写的)。 Zabbix你可以在webgui的大多数事情..在prometheus你必须编辑像nagios的文件..

<强>更新 这是关于普罗米修斯的德国艺术:http://www.linux-magazin.de/Ausgaben/2016/03/Prometheus