Linux Labs

Наблюдаемость: метрики, алерты, логи / Ступень 5 из 9

Alertmanager: кому и сколько раз

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 2 из 6 · на машине · 9 мин

Группа и три таймера

Alertmanager отправляет уведомление на группу алертов, и что попадёт в одну группу, решает group_by.

Prometheus решает, что алерт горит, и передаёт его Alertmanager — службе, которая решает, кому, когда и сколько раз о нём сообщить. Её конфигурация — /etc/prometheus/alertmanager.yml:

yaml
route:                  # корневой маршрут
  receiver: chat
  group_by: ['...']
  group_wait: 5s
  group_interval: 10s
  repeat_interval: 4h
receivers:              # получатели
  - name: chat
    webhook_configs:
      - url: http://127.0.0.1:5001/chat

Получатель (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 алертов ещё не выполнена
Проверь себя 1 вопрос

Все 50 InstanceDown теперь в одной группе, уведомление ушло. Хосты не поднимаются, алерты не меняются. Когда webhook получит следующее уведомление об этой группе?

  • О долгой проблеме Alertmanager напоминает: неизменную группу он повторяет раз в repeat_interval, а когда алерты уйдут, пришлёт resolved.

  • group_wait выжидают перед первым уведомлением новой группы, а эта группа уже отправлена.

  • group_interval выжидают перед сообщением об изменениях в группе, а здесь ничего не меняется. Неизменная группа ждёт repeat_interval.

Неизменную группу Alertmanager повторяет раз в repeat_interval — здесь раз в 4 часа.

Цели шага

0 из 2
  • Поправить группировку в alertmanager.yml — ещё не выполнена
  • Получить одно уведомление на все 50 алертов — ещё не выполнена
Ubuntu 24.04

Цели шага

0 из 2
  • Поправить группировку в alertmanager.yml — ещё не выполнена
  • Получить одно уведомление на все 50 алертов — ещё не выполнена
Загрузка…