Настройка алертов Slack: где ломается маршрутизация
Типовая настройка алертов Slack начинается с одного входящего вебхука на общий канал, куда пишут все системы мониторинга. Пока сервисов немного, схема работает. На десятках сервисов канал превращается в поток однотипных сообщений, и дежурный перестаёт их читать — шум алертов делает ровно то, от чего система должна была защищать.
Следующий разрыв — маршрутизация оповещений. Метрики, логи, доступность и очереди пишут каждая в свой канал, пороги выставлены локально, приоритет нигде не проставлен. Один отказ приходит четырьмя сообщениями, а действительно критичный тонет среди предупреждений.
Отдельная проблема — эскалация. Если сообщение никто не подтвердил, не происходит ничего: нет правила «через 10 минут звоним второму дежурному». Пропущенный инцидент всплывает утром по жалобам пользователей, а не по алерту, и диагностика начинается с нуля.
Разрозненные каналы связи добивают картину: часть уведомлений оседает в почте, часть — в мессенджере, часть видна только в панели мониторинга. Статус разбора нигде не фиксируется, поэтому выяснить, кто уже взял инцидент и что проверено, можно только опросом в чате.
Разбираем, как собрать всё в одну схему: приоритеты, склейка дублей, эскалация по времени и единая точка, где видно состояние каждого оповещения.
Что меняется после единой шины оповещений и дежурств
До единой шины оповещений картина обычно такая: часть событий уходит в почту, часть — в мессенджер, критичное — в сервис дежурств, и каждое утро кто-то вручную сверяет три-четыре канала. Пропущенным в итоге оказывается не то, что не сработало, а то, что сработало в канале, который в этот момент никто не смотрел.
Шина убирает эту сверку: у события один вход, а дальше маршрутизация задаётся правилами — по критичности, сервису, времени суток и составу смены. Группировка событий склеивает лавину уведомлений от одной причины в один инцидент, поэтому дежурный читает один связный контекст вместо десятков одинаковых строк. Это и есть снижение шума: в оповещения попадают только срабатывания, требующие действия руками.
Дежурства и эскалации перестают держаться на человеческой памяти. Если дежурный не подтвердил событие за отведённое окно, оно автоматически уходит следующему в цепочке — так же устроена эскалация в PagerDuty. Время до реакции дежурного считается не «когда увидели», а от срабатывания до подтверждения, и по этому числу сразу видно, на каком шаге цепочка рвётся.
Измеримый результат: доля событий, доведённых до подтверждения, время до первого действия, количество каналов, которые нужно проверять вручную, — и доля ложных срабатываний, снятых правилами группировки.
Сравнение способов маршрутизации алертов
Способы доставки алертов различаются не каналом, а тем, где живёт логика маршрутизации и кто отвечает за эскалацию. Прямая интеграция с мессенджером — это вебхук в канал: поднимается за полчаса, но при молчании дежурного событие просто остаётся в истории переписки.
Система дежурств добавляет поверх доставки расписание, подтверждение приёма и повторный вызов следующего в цепочке. Самописный посредник даёт полный контроль над порогом критичности событий, но требует сопровождения: молчащий роутер — это тишина вместо алертов.
| Вариант | Когда подходит | Ограничения |
|---|---|---|
| Прямая интеграция с мессенджером | Один канал, небольшая команда, некритичные сервисы | Нет подтверждения приёма и эскалации; критичное смешивается с фоновым шумом; доступ к каналу равен доступу к алертам |
| Система дежурств с расписанием | Круглосуточные сервисы, где важен факт реакции | Зависимость от внешнего сервиса и его лимитов; нестандартную маршрутизацию всё равно выносит наружу |
| Самописный посредник | Десятки источников, свои правила подавления и группировки | Сопровождение на нашей стороне: обновления, отказоустойчивость, проверка маршрутов перед изменением |
На практике собирают гибрид: критичные события уходят в систему дежурств с эскалацией, информационные — напрямую в канал команды. Такой вариант мы разворачиваем, когда настройка алертов Slack нужна вместе с ночными вызовами.
Как мы внедряем маршрутизацию: этапы работ
Маршрутизация алертов ломается не при настройке отдельного канала, а на стыках: событие приходит с завышенной критичностью, дежурный получает его в чат, который не читает, а эскалация уходит в пустоту. Поэтому начинаем не с настройки алертов Slack, а с инвентаризации того, что, кому и с какой срочностью должно приходить.
Порядок работ
- Аудит источников событий. Инвентаризируем системы, которые шлют уведомления: форматы, текущие интеграции, дубли и каналы без владельца.
- Классификация потока. Размечаем события по критичности и владельцу сервиса: что идёт в рабочий чат, что поднимает дежурного, что пишется только в журнал.
- Схема маршрутизации. Правила по меткам источника: группировка похожих событий, подавление повторов, окна тишины, порядок эскалации по уровням.
- Настройка каналов. Подключаем чаты и сервисы дежурств, задаём единый шаблон уведомления со ссылками на графики и журналы.
- Проверка доставки. Тестовые срабатывания по каждому правилу, замер времени от события до уведомления и до подтверждения, проверка эскалации при отказе канала.
- Регламент. Фиксируем, кто правит правила, как подключается новый сервис, как снимается ложное срабатывание.
- Передача в эксплуатацию. Отдаём документацию и схему, обучаем дежурных, разбираем первые недели и корректируем пороги.
Что остаётся в вашем контуре: конфигурации и регламенты
Всё, что описывалось выше, работает только тогда, когда конфигурация живёт в репозитории рядом с кодом, а не в личном кабинете дежурного. Мы передаём контур с набором артефактов: по каждому пункту назначается владелец, изменение проходит разбор и попадает в историю. Ниже — что именно остаётся у вас после внедрения.
- Описание каналов доставки: какие типы срабатываний уходят в мессенджер, какие — в дежурный сервис с эскалацией, где отключены дубли, чтобы одно событие не приходило в три места.
- Конфигурации оповещений в виде файлов в репозитории: правила, пороги, группировка связанных событий и окна молчания на время работ. Любая правка — через разбор изменений, а не руками в веб-интерфейсе.
- Правила разделения по командам: сопоставление сервиса и окружения с командой-владельцем и уровнем критичности, чтобы срабатывание уходило ответственному, а не в общий чат на весь отдел.
- Схема эскалации: уровни дежурств, время до перевода на следующий уровень, кому уходит событие при отсутствии подтверждения и что считается подтверждением.
- Инструкция дежурного: последовательность действий при срабатывании, где смотреть метрики и логи, в какой момент подключать вторую линию и как оформить разбор.
- Регламент дежурств: график, порядок подмены, контакты владельцев сервисов, отдельный список тех, кого не будить ночью без повода.
- Документация по мониторингу: перечень проверок с владельцами, что означает каждое срабатывание и какой класс отказов оно ловит, плюс список шумных правил и порядок их ревизии.
- Проверка работоспособности маршрута: тестовое срабатывание по каждому каналу, отметка о том, что событие дошло до дежурного, и запись в журнал проверок.
Кейс: как сократили шум оповещений и время реакции
До: один поток на все события
Все срабатывания мониторинга шли в общий чат дежурной смены, поверх — звонки и мобильные уведомления на любой, даже кратковременный, отказ. За ночную смену дежурный получал около 380 сообщений, три четверти из них — повторы одной и той же деградации с разных узлов. Критичное тонуло в этом потоке, и его замечали только по следующему напоминанию.
После: маршрутизация по критичности
Причины оказались в конфигурации: у большинства правил не было окна подавления, а каждый узел сообщал о себе отдельно. События одного сервиса и симптома теперь склеиваются в одну карточку по ключу дедупликации, повторы внутри окна подавляются, восстановление закрывает карточку автоматически. Критичное и требующее человека немедленно идёт через PagerDuty со звонком, деградации с понятным сценарием — в дежурный канал Telegram, сервисные события для разбора днём — в Slack.
Поток до дежурного упал с 380 сообщений до 40–60 за смену, доля разобранных как ложные — с 78% до 12%. Медианное время от срабатывания до взятия в работу сократилось с 25–40 минут до 3–5. Правила и пороги живут в репозитории, изменение проходит проверку на тестовом контуре, откат — одной правкой, поэтому метрику удерживаем, а не «настраиваем один раз».
Чем отличается дежурство в мессенджере от системы эскалации
Мессенджер доставляет сообщение и на этом заканчивает участие в дежурстве: он не знает, проснулся ли инженер, взял ли алерт в работу и что делать, если в ответ тишина. Система эскалации ведёт не сообщение, а обязательство — алерт живёт, пока кто-то явно не подтвердил, что принял его.
| Критерий | Дежурство в мессенджере | Система эскалации |
|---|---|---|
| Доставка | зависит от бота и лимитов канала | несколько независимых каналов доставки |
| Подтверждение прочтения | отметка «прочитано», без ответственности | алерт взят в работу до разбора |
| Просрочка | уведомление просто висит в чате | переход к следующему, затем к руководителю |
| Передача смены | вручную, по договорённости в чате | по расписанию, с закреплённым ответственным |
Ключевое различие — в подтверждении прочтения. Уведомление считается доставленным не тогда, когда инженер открыл чат, а когда он подтвердил взятие в работу. Если подтверждения нет за заданный интервал, эскалация уходит второму дежурному, дальше — руководителю направления. Сбой не ждёт, пока человек отвлечётся или отключит звук.
Передача смены устроена так же жёстко: расписание, закреплённый ответственный на каждый интервал, список незакрытых инцидентов и история подтверждений переходят вместе с дежурством. В чате это обычно остаётся на честном слове, и на стыке смен теряются самые неприятные алерты.
На практике работает гибрид: PagerDuty и аналогичные системы держат эскалацию и учёт, а мессенджер служит удобным каналом доставки. Точка ответственности при этом остаётся в системе, где надёжность доставки можно проверить.
Частые технические сомнения перед внедрением
Сомнения на этапе оценки почти всегда сводятся к одному: не придётся ли ломать работающий мониторинг и не превратится ли дежурство в поток дублей. Ниже — ответы на то, что чаще всего спрашивают перед стартом.
У нас уже настроен мониторинг — его придётся переделывать?
Нет. Правила, пороги и проверки остаются там, где они есть: система мониторинга продолжает формировать события, а мы подключаемся к её уведомлениям и добавляем слой маршрутизации. Роли разделяются явно — источник отвечает за достоверность алерта, маршрутизатор за то, куда и в каком виде он уходит.
Как не получить один и тот же алерт в трёх каналах?
Каждое событие получает ключ дедупликации по источнику и имени проверки, а повторные срабатывания склеиваются в одно сообщение со счётчиком. Дальше работает группировка по сервису и окно тишины: пока инцидент открыт, повторы не уходят заново, а после закрытия приходит одно короткое уведомление о восстановлении.
Как разделить ночные и дневные потоки?
Маршрут строится на важности события и времени суток. Критичное срабатывание ночью уходит в канал дежурного с эскалацией, дневные предупреждения собираются в рабочий поток, а разбор некритичного приходит утренним дайджестом. Один и тот же алерт может иметь разные маршруты для будней и выходных.
Источники отдают события в разном формате — это проблема?
Нет, это типовая часть работы. Мы приводим поля к единому виду и сохраняем исходные данные, чтобы в сообщении оставались хост, сервис, метрика и ссылка на график. Дежурный видит одинаковую структуру независимо от того, из какой системы пришёл алерт.
Можно внедрять поэтапно, не переключая всё сразу?
Да, и это предпочтительный сценарий. Сначала один канал на некритичном контуре, затем перенос остальных маршрутов и только после — отключение старых уведомлений. Откат на предыдущую схему остаётся доступным на каждом шаге.
Обсудим вашу схему оповещений и дежурств
Чтобы разговор был предметным, достаточно описать текущую схему оповещений: откуда приходят сигналы, как они расходятся по каналам и кто их разбирает. Полезно вспомнить последние инциденты — какие уведомления пришли с задержкой, какие продублировались в трёх чатах сразу, а какие не разбудили никого ночью.
По итогам обсуждения задачи вернёмся с оценкой работ и планом внедрения: маршрутизация по критичности, правила эскалации, расписания дежурных смен. Чтобы не гадать, подготовьте:
- Перечень источников сигналов: мониторинг доступности, сборка и доставка, логи, проверки бизнес-логики.
- Текущую схему оповещений: каналы, получатели и места, где правила заданы вручную и расходятся между собой.
- Политику критичности: что обязано будить дежурного ночью, что ждёт утра, что остаётся в рабочем чате.
- Состав дежурных смен и порядок эскалации, включая выходные, праздники и подмены.
- Ограничения: доступы, закрытые контуры, требования к журналу доставленных уведомлений.
- Точки контроля — по каким метрикам вы поймёте, что сигналы перестали теряться.
В ответ вы получите схему маршрутизации с разделением по критичности, поэтапный план внедрения и оценку работ по срокам и составу команды. Опишите задачу в удобном формате — вернёмся с планом и уточняющими вопросами.







