我有 2 个服务 A B 我想监视它们。此外,我有 2 个不同的通知 channel X Y 在 AlertManager 配置文件中以 receivers 的形式。

如果服务 A 宕机,我想发送通知 X ,如果服务 B 宕机,我想通知 Y 。我怎样才能实现这个我的配置?

我的 AlertManager YAML 文件是:

route:
  receiver: X

receivers:
  - name: X
    email_configs:

  - name: Y
    email_configs:
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"

最佳答案

配置应该大致如下(未测试):

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

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

10-08 19:00