Prometheus采集不到数据时不触发报警

目标主机IP为192.168.0.112

PromQL_1:up{job="node_exporter,instance="192.168.0.112:9100"}

这是一个用来检测目标主机上的node_exporter是否在线的表达式,如果在线返回值为1

PromQL_2:node_systemd_unit_state{job="node_exporter",name="docker.service",state="active",instance="192.168.0.112:9100"}

这是一个检测目标主机docker服务是否在线的表达式,如果在线返回值为1

我在Prometheus中设置的报警规则为以下两条:
PromQL_1 != 1 时触发报警 报警A
PromQL_2 != 1 时触发报警 报警B

但是当node_exporter在目标主机处于离线的时候,并不会触发报警B,此时Prometheus中PromQL_2执行时没有数据的。

如何解决在Promql未采集到数据的时候将其判定为非1值从而触发报警?

阅读 3.6k
1 个回答

按你的描述应该是:
PromQL_2 != 1 时触发报警 报警B

你现在不确定PromQL_1 != 1 啊!不过上面的条件如果设置对啦,就应该能针对性报警啦。

已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题