Prometheus” Alertmanager – отправка алертов в “/dev/null”

Автор: | 26/03/2019
 

В дополнение к посту Prometheus: роутинг алертов в Alertmanager.

Имеется конфиг с роутами.

Задача – вырезать все алерты от Дев-а, и слать в “/dev/null”.

Для этого – создаём пустой ресивер:

...
receivers:

  - name: 'blackhole'

  - name: 'default'
    slack_configs:
      - send_resolved: true
        title_link: 'http://dev.monitor.example.world/prometheus/alerts'
        title: '{{ if eq .Status "firing" }}:confused:{{ else }}:dancing_panda:{{ end }} [{{ .Status | toUpper }}] {{ .CommonAnnotations.summary }}'
        text: "{{ range .Alerts }}*Priority*: `{{ .Labels.severity | toUpper }}`\nMonitoring host: {{ .Labels.monitor }}\n{{ .Annotations.description }}\n{{ end }}"
...

И в роутах добавляем правило, в котором проверяем условие с помощью match_re, и все попавшие под фильтр алерты шлём в receiver: blackhole:

...
  receiver: 'default'

  routes:

    # capture All INFO
    - match:
        severity: info
      receiver: default

      routes:
      # forward Dev INFO to the 'blackhole'
      - match_re:
          env: .*(-dev).*
        receiver: blackhole

    # capture All WARN to the 'warning' with P3
    - match:
        severity: warning
      receiver: warning

      routes:
      # forward Dev WARNING to the 'blackhole'
      - match_re:
          env: .*(-dev).*
        receiver: blackhole

      # forward Stage WARN to the 'default'
      - match_re:
          env: .*(-stage).*
        receiver: default

    # capture All CRIT to the 'critical' with P1
    - match:
        severity: critical
      receiver: critical

      routes:
      # forward Dev CRIT to the 'blackhole'
      - match_re:
          env: .*(-dev).*
        receiver: blackhole

      # forward Stage CRIT to the 'default'
      - match_re:
          env: .*(-stage).*
        receiver: default
...

Готово.