Prometheus和Zabbix有什么区别?

The*_*One 25 zabbix prometheus

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

Ale*_*fov 57

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

Zabbix的核心是基于PHP编写的C和webUI,它也使用了用C编写的"代理"(客户端程序).Prometheus 是用Go语言编写的.

Zabbix将数据存储在用户选择的RDBMS(MySQL,PostgreSQL,Oracle,sqlite)中.普罗米修斯使用嵌入到后端处理(它是一个非关系数据库专门用于存储监视数据设计其自己的数据库以类似的方式,以OpenTSDB的数据模型).

当服务器连接到每台监视机器上的代理程序时,Zabbix默认使用"拉"模型,代理会定期收集信息并将其发送到服务器.当代理与服务器建立连接并在需要时向其发送数据时,备选方案是"主动检查"模式.当服务器从客户机收集信息时,Prometheus更喜欢"拉"模型.但是,当需要"推"模型时,可以使用Prometheus Push Gateway.

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

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

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

Zabbix支持其核心警报.Prometheus提供从其核心分离到Alertmanager应用程序的警报解决方案.

  • Prometheus 是按照可配置的时间间隔评估警报的警报组件。Prometheus 也是定义警报的地方,而 Alertmanager 负责在收到 Prometheus 的推送后发送通知。请参阅https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/ (2认同)
  • 其中说“Zabbix 默认情况下使用“拉”模型”,我认为这意味着“推” (2认同)

bri*_*zil 14

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

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

https://blog.raintank.io/evolving-from-machines-to-services/解释了基于机器和基于服务的监控之间的差异.

  • 是的,但是 zabbix 也可以做到这一点(以一种非优雅的方式)..您可以监控网络服务等,可以计算多台机器上的平均负载等。 (3认同)

col*_*ttt 9

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

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

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

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