Как заставить Prometheus Alertmanager замолчать, используя конфигурационные файлы? - PullRequest
0 голосов
/ 21 февраля 2019

Я использую официальную диаграмму stable / prometheus-operator для развертывания Prometheus с рулем.

Пока все работает хорошо, за исключением раздражающего оповещения CPUThrottlingHigh, которое запускаетдля многих модулей (включая собственные контейнеры Promeheus config-reloaders ).Это оповещение в настоящее время обсуждается , и я хочу пока отключить его уведомления.

Alertmanager имеет функцию тишины , но он основан на веб-технологиях:

Безмолвие - это простой способ просто отключить оповещения на определенное время.Отключение звука настраивается в веб-интерфейсе Alertmanager.

Существует способ отключения уведомлений от CPUThrottlingHigh с помощью файла конфигурации?

Ответы [ 3 ]

0 голосов
/ 21 февраля 2019

Ну, я справился с этим, настроив хакерский injit_rule :

inhibit_rules:
- target_match:
     alertname: 'CPUThrottlingHigh'
  source_match:
     alertname: 'DeadMansSwitch'
  equal: ['prometheus']

DeadMansSwitch - это, по замыслу, предупреждение «всегда стреляет», поставляемое с prometheus-оператор, а метка prometheus является общей меткой для всех оповещений, поэтому CPUThrottlingHigh заканчивается запрещенным навсегда .Воняет, но работает.

Плюсы:

  • Это можно сделать через конфигурационный файл (с помощью параметра alertmanager.config helm).
  • Предупреждение CPUThrottlingHigh все еще присутствует в Prometheus для анализа.
  • Предупреждение CPUThrottlingHigh отображается только в пользовательском интерфейсе Alertmanager, если установлен флажок «Запрещено».
  • Нетраздражающие уведомления на моих приемниках.

Минусы:

  • Любые изменения в DeadMansSwitch или дизайне ярлыка prometheus сломают это (сподразумевает только срабатывание предупреждений).

Обновление: Мои минусы стали реальными ...

The DeadMansSwitch altertname только что изменилось в стабильном / prometheus-operator 4.0.0.При использовании этой версии (или выше), новое имя оповещения будет Watchdog.

0 голосов
/ 05 марта 2019

Один из вариантов - направить оповещения, которые вы хотите отключить, на «нулевой» приемник.В alertmanager.yaml:

route:
  # Other settings...
  group_wait: 0s
  group_interval: 1m
  repeat_interval: 1h

  # Default receiver.
  receiver: "null"

  routes:
  # continue defaults to false, so the first match will end routing.
  - match:
      # This was previously named DeadMansSwitch
      alertname: Watchdog
    receiver: "null"
  - match:
      alertname: CPUThrottlingHigh
    receiver: "null"
  - receiver: "regular_alert_receiver"

receivers:
  - name: "null"
  - name: regular_alert_receiver
    <snip>
0 голосов
/ 21 февраля 2019

Я сомневаюсь, что существует способ заставить оповещения замолчать с помощью конфигурации (кроме маршрутизации упомянутых оповещений на приемник /dev/null, т.е. тот, у которого не настроена электронная почта или какой-либо другой механизм уведомлений, но оповещение все равно будет отображаться в пользовательском интерфейсе Alertmanager).

Вы можете использовать инструмент командной строки amtool, который поставляется с alertmanager, чтобы добавить тишину (хотя я не вижу способа установить время истечения для молчания).

Или вы можете напрямую использовать API (даже если он не задокументирован и теоретически может измениться).Согласно этой ветке пользователей-прометей это должно работать:

curl https://alertmanager/api/v1/silences -d '{
      "matchers": [
        {
          "name": "alername1",
          "value": ".*",
          "isRegex": true
        }
      ],
      "startsAt": "2018-10-25T22:12:33.533330795Z",
      "endsAt": "2018-10-25T23:11:44.603Z",
      "createdBy": "api",
      "comment": "Silence",
      "status": {
        "state": "active"
      }

}'
...