Alertmanager отправляет уведомление на группу алертов, и что попадёт в одну группу, решает group_by.
Prometheus решает, что алерт горит, и передаёт его Alertmanager — службе, которая решает, кому, когда и сколько раз о нём сообщить. Её конфигурация — /etc/prometheus/alertmanager.yml:
Получатель (receiver) — имя и адреса доставки: webhook, почта, мессенджер. group_by — список меток: алерты с одинаковыми значениями этих меток складываются в одну группу, и на группу уходит одно уведомление со всеми её алертами. ['...'] значит «все метки» — у каждого алерта своя группа, отсюда 50 уведомлений. Чтобы алерты одного события оказались вместе, в group_by оставляют метки, которые у них общие, а различающие их — instance — не ставят.
Когда отправлять, задают три таймера:
| Таймер | Что задаёт |
|---|---|
group_wait |
сколько новая группа ждёт соседей перед первым уведомлением |
group_interval |
через сколько сообщить, что в группе появились новые алерты |
repeat_interval |
через сколько повторить уведомление о группе без изменений |
По умолчанию это 30 секунд, 5 минут и 4 часа; здесь первые два укорочены, чтобы не ждать. Файл проверяет amtool check-config <файл>, перечитывает sudo systemctl reload prometheus-alertmanager — после этого Alertmanager собирает группы заново.
Собери событие в одно уведомление
Сделай так, чтобы 50 алертов InstanceDown приходили в webhook одним уведомлением: поправь группировку в /etc/prometheus/alertmanager.yml (через sudo), проверь файл amtool и перечитай конфигурацию Alertmanager.
Цели · 0 из 2
- Поправить группировку в alertmanager.yml ещё не выполнена
- Получить одно уведомление на все 50 алертов ещё не выполнена
Все 50 InstanceDown теперь в одной группе, уведомление ушло. Хосты не поднимаются, алерты не меняются. Когда webhook получит следующее уведомление об этой группе?
-
О долгой проблеме Alertmanager напоминает: неизменную группу он повторяет раз в
repeat_interval, а когда алерты уйдут, пришлёт resolved. -
group_waitвыжидают перед первым уведомлением новой группы, а эта группа уже отправлена. -
group_intervalвыжидают перед сообщением об изменениях в группе, а здесь ничего не меняется. Неизменная группа ждётrepeat_interval.
Неизменную группу Alertmanager повторяет раз в repeat_interval — здесь раз в 4 часа.