Сервис управления алертами

В качестве сервиса управления алертами используется Prometheus Alertmanager. Сервис принимает алерты от других сервисов и приложений, может производить дедупликацию алертов, группировку и маршрутизацию в различные приёмники (email, telegram и другие сторонние системы).

Подробная документация доступна по ссылке https://prometheus.io/docs/alerting/latest/alertmanager/.

Установка

Сервис управления алертами Alertmanager развёртывается автоматически при запуске пайплайна с тегом prometheus, если в конфигурационном файле региона (по умолчанию /globals.d/REGION.yml) добавлена переменная enable_prometheus или enable_victoriametrics со значением yes.

Конфигурирование

Конфигурация сервиса производится в зависимости от потребностей конечного клиента посредством конфигурационного файла prometheus-alertmanager.yml, размещаемого в репозитории региона в /config/prometheus/. Для применения изменений запустите пайплайн с тегом prometheus.

Маршрутизация алертов

В секции route перечисляются правила маршрутизации алертов в соответствующие приёмники, а также правило группировки алертов в параметре group_by.

В секции receivers описываются параметры подключения к каждому приёмнику. Для каждого приёмника может быть переопределено правило группировки алертов.

Группировка алертов

Группировка алертов позволяет объединять алерты общего происхождения в одно сообщение. Это может быть удобным, если в случае крупного сбоя будет формироваться большое количество однотипных алертов, то вместо десятка или сотни сообщений будет сформировано только одно с перечислением затронутых сервисов.

Группировка производится по значениям меток. Пример конфигурации, когда по умолчанию алерты сгруппированы по имени алерта, уровню критичности, зоне доступности.

route:
  receiver: default-receiver
  group_by: ['alertname', 'severity', 'az']

Подавление алертов

Подавление алертов позволяет отключать отправку уведомления для определённого алерта при наличии какого-то другого активного алерта.

Примечание

Механизм подавления отключает именно уведомления по алертам, а не сами алерты.

Правила подавления уведомлений перечисляются в секции inhibit_rules и представляют собой набор фильтров для алертов по значениям меток. Если алерт соответствует заданному фильтру, то уведомление о нём не будет направлено. В фильтрах задаются как точные значения, так и регулярные выражения.

Пример конфигурации, когда необходимо подавить отправку уведомления об алерте с уровнем критичности warning при наличии алерта с уровнем критичности critical, если у них совпадают значения меток с именем алерта и инстансом:

inhibit_rules:
  - source_match:
      severity: 'critical'
    target_match:
      severity: 'warning'
    equal: ['alertname', 'instance']

Заглушение алертов

Заглушение алертов осуществляется с помощью механизма Silence и позволяет с помощью правил отключать отправку уведомления для определённых алертов на определённое время, например при проведении регламентных работ.

Примечание

Механизм Silence отключает именно уведомления по алертам, а не сами алерты.

Правила представляют собой набор фильтров для алертов по значениям меток. Если алерт соответствует заданному фильтру, то уведомление о нём не будет направлено. В фильтрах задаются как точные значения, так и регулярные выражения.

Настройка отключений уведомлений настраивается в веб-интерфейсе Alertmanager.

Шаблон почтового уведомления об алертах

Prometheus Alertmanager позволяет направлять алерты по почте, мессенджерам и другим каналам, используя webhook-и. Сервис позволяет шаблонизировать уведомления. С использованием шаблонов можно ознакомиться по ссылке https://prometheus.io/docs/alerting/latest/notification_examples/.

С продуктом поставляется шаблон почтового уведомления в файле default_email.tmpl. В данном шаблоне определяется формирование темы (subject) и самого тела письма с уведомлением.

Подключение шаблона уведомлений производится через конфигурационный файл сервиса Alertmanager конкретного региона, который необходимо разместить в репозитории GitLab региона в файле /config/prometheus/prometheus-alertmanager.yml.

Примечание

В конфигурационном файле указывается не имя файла с шаблоном, а название секции, определённой в шаблоне.

Примеры шаблона уведомления и конфигурационного файла

Примеры шаблона уведомления и конфигурационного файла

Собственные файлы с шаблонами уведомлений разместите в репозитории GitLab региона в каталоге /config/prometheus/.

Применение конфигурации осуществляется запуском пайплайна с тегом prometheus.