Prometheus AlertManager-根据路由将警报发送到不同的客户端

Jan*_*han 4 monitoring prometheus prometheus-alertmanager

我有两个要监视的服务AB。另外,我在AlertManager配置文件中以的形式有2个不同的通知通道XY。receivers

我想发通知X如果服务一个出现故障而需要通知Ÿ如果服务下降。如何实现此配置?

我的AlertManager YAML文件是:

route:
  receiver: X

receivers:
  - name: X
    email_configs:

  - name: Y
    email_configs:
Run Code Online (Sandbox Code Playgroud)

alert.rule文件是:

groups:

- name: A
  rules:
    - alert: A_down
      expr: expression
      for: 1m
      labels:
         severity: critical
      annotations:
         summary: "A is down"

- name: B
  rules:
    - alert: B_down
      expr: expression
      for: 1m
      labels:
        severity: warning
      annotations:
        summary: "B is down"
Run Code Online (Sandbox Code Playgroud)

sve*_*ltr 5

配置应大致如下所示(未经测试):

route:
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 2h

  receiver: 'default-receiver'

  routes:
  - match:
      alertname: A_down
    receiver: X
  - match:
      alertname: B_down
    receiver: Y
Run Code Online (Sandbox Code Playgroud)

这个想法是,每个route字段都可以有一个routes字段,您可以在其中放置不同的配置,如果其中的标签match匹配条件,则该配置将启用。