为什么说Prometheus是足以取代Zabbix的监控神器?(13)

其中query参数就是一条PromQL表达式。除此之外还支持范围查询query_range,需要额外添加start(起始时间)、end(结束时间)、step(查询步长)这三个参数。无论是Prometheus自带的webui还可以通过grafana,他们本质上都是通过HTTP发送PromQL的方式查询Prometheus数据。整个解析流程如下所示:

为什么说Prometheus是足以取代Zabbix的监控神器?

当Prometheus接收请求后,通过PromQL引擎解析PromQL,确定查询时间序列和查询时间范围,通过tsdb接口获取对应数据块,最后根据聚合函数处理监控数据并返回。

为什么说Prometheus是足以取代Zabbix的监控神器?

Prometheus告警配置也是通过yaml文件配置,核心是上面的expr参数(告警规则)和查询一样也是一个PromQL表达式。for代表持续时间,如果在for时间内持续触发,Prometheus才发出告警至alertmanger。

告警组件alertmanger地址是在Prometheus的配置文件中指定,告警经过alertmanger去重、抑制等操作,最后执行告警动作,目前支持邮件、slack、微信和webhook,如果是对接钉钉,便可以通过webhook方式触发钉钉的客户端发送告警。

推荐阅读