我正在执行一项任务,需要配置和验证 prometheus 警报管理器。当 mesos 进程和 HAProxy 进程关闭时,用户应该收到警报,我尝试在互联网上查找这些警报规则,但没有找到合适的。谁能告诉我如何编写这些警报规则。基本上需要条件子句。
最佳答案
这取决于您如何监控事物。我们以 HAProxy 为例,假设您正在使用 HAProxy Exporter ( https://github.com/prometheus/haproxy_exporter ) 来监控它。 HAProxy Exporter 包含一个名为 haproxy_up
的指标,该指标指示它是否成功抓取 HAProxy(当 Prometheus 反过来抓取导出程序时)。如果无法抓取 HAProxy,haproxy_up
的值为 0
,您可以对此发出警报。假设您的 HAProxy Exporter 的 Prometheus 作业名称为 haproxy-exporter
。然后,您可以编写如下所示的警报规则:
ALERT HAProxyDown
IF haproxy_up{job="haproxy-exporter"} == 0
FOR 5m
LABELS {
severity = "page"
}
ANNOTATIONS {
summary = "HAProxy {{ $labels.instance }} down",
description = "HAProxy {{ $labels.instance }} could not be scraped."
}
如果任何 HAProxy 实例在超过 5 分钟内无法抓取,这将发送警报。
如果您想知道导出器(而不是 HAProxy 本身)是否已关闭,您可以使用表达式 up{job="haproxy-exporter"} == 0
查找任何已关闭的 HAProxy Exporter 实例。也许您实际上想检查两者。
我不能对 Mesos 及其导出器说太多,因为我没有任何使用它们的经验,但我想它会是类似的东西。
关于haproxy - 如何编写mesos和HAProxy进程的prometheus警报规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37035865/