IncidentGarden

Маппинг всех приоритетов на on-call

Отправлять в on-call все уровни severity мониторинга — обесценивает алерты.

Антипаттерн

Пытаться замаппить вообще все приоритеты вашей системы мониторинга на приоритеты on-call системы. Плохой пример маппинга для Zabbix:

{
  "source_field": "severity",
  "mapping": {
    "critical": ["disaster", "high"],
    "warning":  ["average", "warning", "information", "not_classified"]
  },
  "default": "critical"
}

Мониторинг и on-call — разные системы. Здесь в дежурство уезжает вся шкала источника целиком, и два верхних уровня из шести объявлены поводом разбудить человека. Между тем high в Zabbix — это чаще «посмотреть утром», чем «поднять по звонку». Через месяц такой настройки дежурный перестаёт отличать настоящую аварию от фона — и это опаснее, чем пропущенное «для сведения».

Как надо

Отправлять в on-call нужно только то, что должно разбудить вас ночью или заставить бежать за рабочее место днём.

Лечится это сужением списка Critical values — тем, какие именно значения источника считаются поводом разбудить. Остальные известные уровни шкалы при этом перечисляются в Warning values явно:

{
  "source_field": "severity",
  "mapping": {
    "critical": ["disaster"],
    "warning":  ["high", "average", "warning", "information", "not_classified"]
  },
  "default": "critical"
}

Теперь ночью поднимает только disaster. Всё остальное идёт мягким путём: по warning оповещается первый шаг эскалации, дальше по цепочке эскалируют вручную.

Почему остальные уровни перечислены поимённо

Соблазн — не перечислять их, а «свалить» всё лишнее в важность по умолчанию, поставив её в warning. Это лечение симптома не тем лекарством.

Значение по умолчанию отвечает на другой вопрос: «пришло значение, которого мы не знаем». Потому оно и равно critical — не знаем важность, будим. Уровень, оставленный вне обоих списков, попадает под это правило и разбудит вас, то есть даст ровно тот шум, от которого вы уходили. Списки — про известную шкалу, дефолт — про неизвестность; смешивать их роли не стоит.

Шкала Zabbix закрытая и короткая, перечислить её целиком — одна строка. Зато дальше дефолт сработает только на действительно новом значении: если источник однажды начнёт слать уровень, которого раньше не было, вы об этом узнаете, а не пропустите молча. Как разбираются значения — Настройка важности.

Осознанно поставить Default severity = warning — отдельный приём, а не часть этого рецепта. Он уместен, когда шкала источника открытая или заранее неизвестна (например, произвольное поле в обобщённом webhook), и вы принимаете на себя ответственность: всё, что должно будить, теперь обязано быть перечислено в Critical values явно. Разбор — в разделе Как осознанно вернуть warning.

Если уровень не нужен в дежурстве вовсе

Маппинг важности не умеет отбрасывать события: он только присваивает важность, алерт всё равно будет создан. Если нижние уровни шкалы в дежурстве вам не нужны совсем, отсекайте их на стороне мониторинга — условиями trigger action в Zabbix или маршрутами в AlertManager, — чтобы они сюда просто не приезжали. Почему это лучше, чем фильтровать уже внутри, — Политики как фильтр алертов.

Посмотреть такие срабатывания вы всегда можете в самой системе мониторинга в течение рабочего дня.

На этой странице