暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

Prometheus | 初识Prometheus

两条咸鱼一只猫 2021-03-02
368

什么是Prometheus


Promtheus是一款go语言开发的开源的新型监控系统,具有监控、告警功能。由多组件结合起来使用。


Prometheus跟传统监控有什么区别



为了便于理解与比较,这里选择跟Zabbix做对比


[开发语言方面] 

    Zabbix:服务端使用C开发,Web页面使用PHP开发。

    Prometheus:服务端用go开发,有自带WebUI,也可对接Grafana实现更专业的展示。


[架构方面] 

    Zabbix:使用传统的C/S架构,被监控点安装agent,agent内置很多针对被监控点的采集指令,也可以自己写监控脚本进行扩展。支持主、被动的方式获取数据。支持部署proxy节点

    Prometheus:微服务模式,服务端由多个组件构成,如Prometheus只负责数据收集与存储,告警则由alertmanager组件负责。客户端称为exporter,针对不同的服务由不同的exporter收集数据并通过特定的http端口暴露metric给Prometheus获取。也支持将数据推送到PushGateway,再由Prometheus 从PushGateway获取。可以自行开发exporter,也支持自定义脚本扩展监控。


[数据存储]

    Zabbix:所有的数据使用MySQL、DB2、PostgreSQL等传统关系型数据库;

   Prometheus:监控数据存储在时序数据库(如timescaledb、influxdb)上,也可以放在云对象存储以降低成本。被监控的服务器列表信息可以放到文件上,也可以放到consul上实现更丰富的自动发现特性。


[功能方面]

    Zabbix:产品成熟,功能丰富,WebUI支持自定义模板。支持自动发现。

   Prometheus:相对来说功能不如Zabbix齐全,但Promtheus有更灵活的操作方式,支持PromQL

语法查询。如可以配合Consul实现非常丰富的标签管理,充分发挥自动发现的优点。Prometheus内置的WebUI比较简陋,可以对接Grafana进行更专业的展示。

   

[使用方面]

    Zabbix:在配置好C/S后,大部分的操作都在WebUI上完成。可以使用自带的页面展示,但一般会接到Grafana进行展示。

    Promtheus: 较多操作在命令行完成,需要手写告警规则(正是灵活度的体现)。需要学习PromQL语法但很简单。需要手写较多的配置,比如定义label等等。


Prometheus架构


    为了便于理解,画了个最简单的Prometheus运行架构图。去掉了较少使用的PushGateway组件。

Prometheus本身只做监控项管理、数据收集、告警规则设置,告警由Alertmanager负责,exporter可能是多个监控不同服务的客户端,监控数据由Grafana展示。




尊重原创,如需转载请联系作者,微信号:opgaozhan 或识别以下二维码


文章转载自两条咸鱼一只猫,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论