Сервис управления алертами¶
В качестве сервиса управления алертами используется 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.