Как работают оповещения
Полезные правила активны сразу после установки; ничего не нужно настраивать. Что действительно важно в повседневном использовании — это то, что снижает уровень шума: подавление по зависимости, группировка по хосту, окна обслуживания и базовая линия, которая сначала учится, а потом говорит.

Уровни серьёзности
Заголовок раздела «Уровни серьёзности»Интерфейс говорит на языке шкалы метеосводки. API и редактор правил хранят те же три уровня под их внутренними именами.
| В интерфейсе | В API (severity) | Значение |
|---|---|---|
| Info | info | Стоит знать, действий не требуется. Используется базовым правилом. |
| Advisory | warning | Требует внимания скоро: высокая загрузка CPU, диск почти заполнен, медленный сервис. |
| Warning | critical | Требует вашего внимания сейчас: монитор недоступен, сервис упал, проверка резервной копии не удалась, сертификат истёк. |
Эскалация поднимает серьёзность правила на одну ступень после escalate_after, если
оповещение продолжает срабатывать (Info → Advisory → Warning; Warning остаётся Warning).
Каждое оповещение — это конечный автомат, проверяемый каждые 30 секунд
(DUMBMONIT_ALERT_INTERVAL_SECS).
| Фаза | В интерфейсе | Значение |
|---|---|---|
ok | — | Условие не выполнено. |
pending | Накопление | Условие выполнено, но время ожидания правила (for) ещё не истекло. Ничего не отправляется. |
firing | Срабатывает | Условие удерживалось достаточно долго. Отправляется первое уведомление, затем напоминания каждые repeat_interval (по умолчанию 6 часов для большинства встроенных правил), затем эскалация, если она настроена. |
resolved | Решено | Возврат к норме. Уведомление о решении отправляется только если о срабатывании было объявлено. |
suppressed | Подавлено родителем | Оповещение срабатывает, но родительский монитор не работает или сам монитор недоступен: см. ниже. |
phase — это внутреннее состояние движка; effective_phase — то, что видите вы.
Оповещение, у которого effective_phase равно suppressed, внутри по-прежнему имеет
phase = firing, поэтому оно не будет уведомлено повторно, когда родитель восстановится.
Оповещение также может быть подтверждено (acked, с acked_by, acked_until и
ack_note): фаза не меняется, напоминания и эскалации приостанавливаются до
acked_until, решение всё равно уведомляется и снимает подтверждение.
Отложить одно оповещение работает так же внутри, но через окно обслуживания,
привязанное к точным меткам этого оповещения (silenced: true), а не ко всему
монитору: родственное правило на том же мониторе продолжает говорить.
См. Как убрать оповещение.
Подавление по зависимости
Заголовок раздела «Подавление по зависимости»Любой монитор может объявить родительский монитор. Когда монитор не
работает, каждое оповещение на его потомках отмечается как Подавлено
родителем вместо отправки: падение коммутатора даёт одно уведомление, а не
тридцать. Ближайший неработающий предок указывается как причина
(suppressed_by), и цепочка прослеживается до 64 уровней.
Монитор не работает, когда на нём срабатывает одно из этих оповещений, по любой причине:
- Монитор недоступен: нет ни одного измерения (SNMP-устройство перестало отвечать, агент перестал отправлять данные);
- Service down: проверка доступности выполняется, но завершается ошибкой (ping со 100 % потерь, HTTP-проверка с ошибкой или истёкшим временем ожидания, закрытый TCP-порт и так далее).
Простое предупреждение на родителе (заполненный диск, высокая загрузка CPU, медленная служба, скоро истекающий сертификат) ничего не скрывает: устройство по-прежнему отвечает, как и то, что за ним. Родитель сохраняет своё оповещение и уведомление; когда он восстанавливается, потомки, которые всё ещё не работают, срабатывают и уведомляют сами.
То же касается самого недоступного монитора: остальные его оповещения
(заполненный диск, CPU и т. д.) подавляются его собственным сбоем, а
suppressed_by указывает на само монитор, ведь их значения устарели и они
лишь симптом того же сбоя. Только его оповещение «Монитор недоступен» никогда
не скрывается собственным сбоем, поэтому вы получите одно уведомление.
Родитель задаётся в форме монитора. На странице мониторов дочерние мониторы группируются под своим родителем и тускнеют, когда он не работает.
Агент-реле считается родителем для каждого монитора, который он опрашивает (Достигается через в форме монитора), в дополнение к явно заданному родителю: когда реле не работает, его мониторы подавляются, а причиной указывается само реле. При равном расстоянии явный родитель имеет приоритет.
Родитель также считается неработающим, как только об этом сообщает его собственная проверка (статус Истекло время ожидания, Монитор недоступен или Service down на его странице), не дожидаясь срабатывания его оповещения: агент, который перестаёт отправлять данные, увлекает за собой свои мониторы за минуту-две до собственного оповещения, а коммутатор, у которого только что не прошёл ping, скрывает своих потомков раньше, чем истечёт выдержка «Service down»; иначе каждое из них уведомило бы первым.
Группировка, дедупликация, напоминания
Заголовок раздела «Группировка, дедупликация, напоминания»Без группировки NAS с деградировавшим RAID отправлял бы по одному сообщению на диск
за цикл. DumbMonit отправляет не более одного сообщения на хост за цикл, даже если
оно содержит пять строк. Каждое оповещение уведомляется один раз при начале
срабатывания (firing), затем только как напоминание (reminder, каждые
repeat_interval), эскалация (escalation) или решение (resolved). История
оповещений фиксирует каждый переход с указанием, было ли отправлено уведомление,
и если нет — почему (обучение, подавлено, заглушено, подтверждено).
Окна обслуживания
Заголовок раздела «Окна обслуживания»Заглушение останавливает уведомления, но не останавливает проверку: в конце окна оповещение, которое всё ещё активно, уведомляется один раз, а не «рождается» после двух часов существования. Окна бывают разовыми или еженедельными, для монитора или для всего инстанса. См. Окна обслуживания.
Обучение базовой линии
Заголовок раздела «Обучение базовой линии»Правилу «Нетипичная загрузка CPU» не нужен порог. Для каждого ряда оно хранит 168
корзин, одну на (день недели, час), и сравнивает каждую точку с тем, что обычно
наблюдается в этот момент. Оценка устойчива (медиана и MAD, EWMA на корзину с
alpha = 0.05), поэтому единичный инцидент не переписывает базовую линию, а
сезонные смещения учитываются.
Правило молчит первые четырнадцать дней обучения: каждая корзина должна быть замечена минимум два раза, чтобы отличить «нетипичное» от «никогда не наблюдалось». В это время оно показывается с флагом обучение и только сообщает, что бы оно сработало. Базовые линии рядов, которые исчезли, забываются через 60 дней.
Прогнозы
Заголовок раздела «Прогнозы»Два типа оповещений предсказывают, а не сообщают о факте, и обзорная страница
перечисляет их в разделе Прогнозы: аномалия базовой линии и правила predict,
которые экстраполируют ряд с помощью predict_linear() на стороне VictoriaMetrics
(«Файловая система почти заполнена» в течение четырёх дней). Оценка хранилища PBS
— это обычный порог по собственному прогнозу PBS.
Куда идут уведомления
Заголовок раздела «Куда идут уведомления»У встроенных правил нет привязанного канала, что означает каждый включённый канал. Правило, которое вы редактируете, может указывать конкретные каналы. Каналы настраиваются в разделе Параметры → Уведомления и отчёты; см. Каналы уведомлений.
Умные уведомления
Заголовок раздела «Умные уведомления»Всё вышеописанное решает, может ли оповещение говорить. Второй этап, политика уведомлений, решает, когда и по какому каналу, чтобы никого не заспамить. Полный путь одного оповещения, по порядку:
- Оценка — порог, оценка аномалии или прогноз, с учётом времени ожидания
правила (
for) и, если задан, порога очистки (гистерезис: срабатывает выше 90 %, сбрасывается только ниже 85 %), а также любого переопределения для монитора. - Дедупликация — один отпечаток на пару (правило, ряд), привязанный к id
монитора (
target), а не к его имени: переименование монитора или изменение его тегов не создаёт второе оповещение, а ряд, разрешающийся в один и тот же ключ дважды, даёт одно оповещение. Ряды удалённого или приостановленного монитора отбрасываются: их оповещения сразу сбрасываются, без уведомления, а история фиксируетdevice removed or disabled. - Подавление по зависимости — потомки неработающего монитора остаются молчаливыми.
- Заглушение — окна обслуживания заглушают то, что они покрывают.
- Группировка по монитору — одно сообщение на монитор за цикл, напоминания и эскалация сворачиваются в него.
- Удержание при дребезге — отпечаток, который срабатывает и сбрасывается 4 раза за 30 минут, отправляет единое уведомление о «дребезге», а затем ничего в течение 30 минут.
- Фильтры по каналу — минимальная серьёзность, включение/выключение «сообщать мне, когда это прошло», и минимальный интервал между двумя сообщениями об одном и том же оповещении.
- Тихие часы (на канал) — проходят только оповещения уровня Warning; остальное ждёт сводку по окончании тихих часов (оповещение, которое сбросилось в это время, упоминается только как «решено во время тихих часов»).
- Группировка сообщений (batching) — оповещения в пределах окна группировки (по умолчанию 60 с) уходят как одно сообщение на канал: «3 оповещения на 2 мониторах, 1 решено».
- Часовой лимит — после превышения
max_per_hourсообщений на канал оповещения ждут и приходят единой сводкой («…и еще 7 оповещений»). - Отправка — со ссылкой «Открыть в DumbMonit» на монитор, если известен публичный URL.
Шаги 6–10 настраиваются в разделе Параметры → Уведомления и отчёты → Политика уведомлений (глобально) и на каждом канале (Параметры доставки). См. Политика уведомлений.