如何为mesos和HAProxy进程编写prometheus警报规则。?

Posted

技术标签:

【中文标题】如何为mesos和HAProxy进程编写prometheus警报规则。?【英文标题】:How to write prometheus alert rules for mesos and HAProxy process down.? 【发布时间】:2016-08-30 08:55:19 【问题描述】:

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

【问题讨论】:

【参考方案1】:

这取决于您如何监控事物。让我们以 HAProxy 为例,假设您正在使用 HAProxy Exporter (https://github.com/prometheus/haproxy_exporter) 对其进行监控。 HAProxy Exporter 包含一个名为 haproxy_up 的指标,它指示它是否成功抓取 HAProxy(当 Prometheus 反过来抓取 exporter 时)。如果 HAProxy 无法被抓取,haproxy_up 将具有 0 的值,您可以对此发出警报。假设您的 HAProxy 导出器的 Prometheus 作业名称为 haproxy-exporter。然后,您可以像这样编写警报规则:

ALERT HAProxyDown
  IF haproxy_upjob="haproxy-exporter" == 0
  FOR 5m
  LABELS 
    severity = "page"
  
  ANNOTATIONS 
    summary = "HAProxy  $labels.instance  down",
    description = "HAProxy  $labels.instance  could not be scraped."
  

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

如果您想知道 exporter(而不是 HAProxy 本身)是否已关闭,您可以改为使用表达式 upjob="haproxy-exporter" == 0 来查找任何已关闭的 HAProxy Exporter 实例。实际上,您可能想要同时检查两者。

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

【讨论】:

【参考方案2】:

对于导出 mesos 指标,您应该使用 mesos-exporter。 https://github.com/prometheus-junkyard/mesos_exporter https://hub.docker.com/r/prom/mesos-exporter/ 它也有 mesos_up 指标。你的警报应该和 HaProxy 警报一样:

ALERT MesosMasterDown
  IF mesos_upjob="mesos-master-exporter" == 0
  FOR 5m
  LABELS 
    severity = "page"
  
  ANNOTATIONS 
    summary = "Mesos master  $labels.instance  down",
    description = "Mesos master  $labels.instance  could not be scraped."
  

ALERT MesosSlaveDown
  IF mesos_upjob="mesos-slave-exporter" == 0
  FOR 5m
  LABELS 
    severity = "page"
  
  ANNOTATIONS 
    summary = "Mesos slave  $labels.instance  down",
    description = "Mesos slave  $labels.instance  could not be scraped."
  

【讨论】:

以上是关于如何为mesos和HAProxy进程编写prometheus警报规则。?的主要内容,如果未能解决你的问题,请参考以下文章

如何为每个 Android 应用程序/进程使用多个 MapActivity/MapViews

如何为 Windows 中的进程分配超过 2GB 的内存?

Marathon+Mesos+Docker部署

如何为传输守护进程更改添加的 torrent 文件位置

如何为特定提交生成 Git 补丁?

如何为间隙和孤岛问题编写查询?