我正在处理一项需要配置和验证 prometheus 警报管理器的任务。当 mesos 进程和 HAProxy 进程关闭时,用户应该收到警报,我试图在互联网上找到这些警报规则,但没有找到合适的。谁能告诉我如何为这些编写警报规则。基本上需要条件条款。

最佳答案

这取决于您如何监控事物。让我们以 HAProxy 为例,假设您正在使用 HAProxy 导出器 (https://github.com/prometheus/haproxy_exporter) 来监视它。 HAProxy 导出器包含一个名为 haproxy_up 的指标,它表明它是否成功抓取了 HAProxy(当 Prometheus 反过来抓取导出器时)。如果无法抓取 HAProxy,haproxy_up 将具有 0 值,您可以对此发出警报。假设您的 HAProxy 导出器的 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."
  }

如果超过 5 分钟无法抓取任何 HAProxy 实例,这将发送警报。

如果您想知道导出器(而不是 HAProxy 本身)是否已关闭,您可以使用表达式 up{job="haproxy-exporter"} == 0 来查找任何已关闭的 HAProxy 导出器实例。可能你实际上想要检查两者。

我不能说太多关于 Mesos 和它的导出商,因为我对他们没有任何经验,但我想它会是类似的。

关于haproxy - 如何为 mesos 和 HAProxy 进程编写 prometheus 警报规则。?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37035865/

10-16 00:00