Матрица эскалации и шум оповещений: кого будить и почему девять сигналов из десяти не нужны
Две жалобы службы эксплуатации звучат как разные проблемы. Первая: «нас заваливает оповещениями, дежурный смотрит в экран и уже ничего не видит». Вторая: «о серьёзной аварии директор узнал от клиента, а не от нас». На практике это одна проблема, взятая с двух концов. Пока поток сигналов не разделён на те, по которым кто-то обязан действовать, и все остальные, любая схема эскалации остаётся бумажной: она описывает, кого поднимать, но не отвечает на вопрос, по какому именно сигналу.
Ниже разбор обеих половин: как шум устроен, чем его измерить, чем сокращать, и как из очищенного потока построить матрицу эскалации, которая работает ночью, а не только на совещании. Терминология - ITIL 4, практики Monitoring and Event Management (мониторинг и управление событиями) и Incident Management (управление инцидентами).
1. Откуда берётся шум
Шум не заводится сам. Он собирается годами, и почти каждый его источник в момент появления был разумным решением. Отсюда главная сложность: чистить поток приходится против чьей-то прошлой правоты, а не против чьей-то ошибки.
- Пороги «чтобы точно не пропустить». После крупной аварии порог опускают с запасом. Аварий такого рода больше не случается, а срабатывания остаются - и через год никто уже не помнит, почему загрузка диска в 70% считается поводом для звонка.
- Наблюдение за объектами вместо наблюдения за услугой. Мониторинг заводится по инвентарю: каждый узел, каждый интерфейс, каждый диск. Один отказ коммутатора превращается в несколько десятков сообщений о недоступности всего, что за ним стоит.
- Нет подавления на время работ. Плановое обслуживание, перезагрузка после обновления, переключение на резерв - всё это порождает штатный поток аварийных сообщений, который команда научилась игнорировать. А заодно научилась игнорировать похожие сообщения в остальное время.
- Мерцание (flapping). Канал или служба уходят и возвращаются несколько раз за минуту. Каждый переход - пара сообщений. Реального инцидента может не быть вовсе, а десяток строк в ленте уже есть.
- События без адресата. Сигнал приходит в общий чат или на общий ящик, где за него не отвечает конкретный человек. Такое событие не обрабатывается - оно прочитывается.
- Наследство от ушедших систем и людей. Проверки, заведённые под сервис, которого больше нет; правила, написанные инженером, который уволился три года назад. Отключить их страшно, потому что никто не знает, что сломается.
Итог у всех этих причин один, и он не технический, а человеческий. Дежурный адаптируется: он перестаёт читать ленту и начинает выхватывать из неё знакомые образы. Это работает ровно до момента, когда важное сообщение приходит в незнакомой форме. Так шум превращается из неудобства в риск: он не мешает работать, он меняет способ работы.
2. Чем измерить долю шума
«Много оповещений» - не показатель, с которым можно работать. Разговор меняется, когда на стол ложатся пять цифр за последние полгода. Считаются они из той же выгрузки событий и инцидентов, которая уже есть в системе мониторинга и в тикет-системе - отдельного проекта для этого не нужно.
| Показатель | Как считается | Ориентир | О чём говорит отклонение |
|---|---|---|---|
| Доля событий без действияобратная величина к доле полезных | События, закрытые без единой записи о действии, делённые на все события | Выше 70% - поток уже не читают | Главный показатель шума. Если он высокий, остальные можно не считать: сначала чистить |
| Событий на один инцидент | Число событий за период, делённое на число заведённых инцидентов | Единицы, а не десятки | Высокое значение означает отсутствие дедупликации и корреляции, а не активную инфраструктуру |
| Доля самоустранившихсямерцание | События, закрывшиеся сами быстрее порога реакции дежурного | Заметная доля - повод ввести выдержку времени | Порог сработал на выбросе, а не на состоянии. Лечится задержкой, а не отключением проверки |
| Ночные срабатывания без инцидента | События вне рабочих часов, не приведшие к инциденту, к их общему числу | Каждое такое - кандидат на удаление из ночного маршрута | Прямая цена в людях: разбуженный зря инженер работает хуже весь следующий день |
| Доля оповещений без адресата | Правила, которые уходят в общий канал, а не на роль или дежурство | В идеале ноль | Событие без ответственного не обрабатывается никогда - оно только читается |
Ориентиры в таблице - опорные точки из практики, а не норматив из стандарта. У сети связи и у бухгалтерского контура нормальные значения разные. Смысл колонки не в том, чтобы сравнивать себя с чужой цифрой, а в том, чтобы посчитать свою и посмотреть на неё через квартал: направление движения важнее абсолютного уровня.
3. Событие и правило одного адресата
ITIL делит события на три класса, и это деление стоит проговорить с командой вслух. Информационное - зафиксировали факт, действий не требуется (задание отработало, сессия открыта). Предупреждение - показатель приближается к границе, действие потребуется, но не сейчас. Исключение - нарушение, действие требуется немедленно.
Практическая ценность классификации в том, что каналы доставки у трёх классов обязаны быть разными. Информационное - только в журнал, его никто не читает в реальном времени и читать не должен. Предупреждение - в рабочую очередь, разбирается в рабочее время. Исключение - в оповещение с адресатом и сроком. Смешение этих трёх потоков в одну ленту и есть техническая причина шума: инженер вынужден выполнять сортировку, которую должна была сделать система.
Правило, которое стоит записать в регламент: у оповещения обязаны быть адресат, действие и срок. Нет хотя бы одного из трёх - это не оповещение, а запись в журнал, и место ей в журнале.
4. Семь шагов сокращения потока
Порядок здесь не случаен. Первые три шага дают видимый результат за несколько дней и почти ничего не стоят, поэтому с них проще получить согласие команды. Последние требуют работы с данными и обсуждения с владельцами услуг.
- Дедупликация. Повторное сообщение об уже открытом состоянии обновляет существующее событие, а не создаёт новое. Один отказ - одна строка в ленте, со счётчиком повторов.
- Окна плановых работ. Подавление оповещений на время обслуживания, привязанное к календарю изменений. Побочный эффект важнее основного: подавление невозможно без честного календаря - и календарь появляется.
- Выдержка времени перед оповещением. Состояние должно продержаться заданное время, прежде чем породить сигнал. Убирает мерцание целиком, не трогая пороги.
- Удаление сигналов без действия. Берём список правил, отсортированный по числу срабатываний, и по каждому из верхних задаём один вопрос: что человек делает, получив это? Нет ответа - правило переводится в журнал. Не отключается совсем, а перестаёт будить.
- Пороги по данным, а не по интуиции. Порог ставится от фактического распределения показателя за несколько месяцев, а не от круглого числа. «90% диска» - это круглое число; «уровень, выше которого показатель был 2% времени и каждый раз это заканчивалось инцидентом» - это порог.
- Корреляция по зависимостям. Если известно, что за коммутатором стоят двадцать узлов, отказ коммутатора порождает одно событие, а не двадцать одно. Требует хотя бы грубой карты зависимостей - и это самый долгий шаг из семи.
- Регулярный пересмотр. Раз в квартал - полчаса на просмотр верхушки списка по числу срабатываний и списка правил, не срабатывавших ни разу. Первые шумят, вторые, скорее всего, сломаны и молчат не потому, что всё хорошо.
Отдельно стоит сказать, чего делать не надо. Не надо начинать с массового отключения правил «чтобы стало тихо»: такая тишина ничем не отличается от тишины сломанного мониторинга, и отличить их потом будет нечем. Каждое снятое правило должно уходить либо в журнал, либо в отчёт, который кто-то смотрит по расписанию.
5. Приоритет: влияние и срочность
Матрица эскалации начинается не с людей, а с приоритета. По ITIL приоритет инцидента выводится из двух независимых вещей: влияния (сколько пользователей или услуг затронуто и каких) и срочности (как быстро последствия станут необратимыми). Их путают чаще всего: сбой у одного человека может быть срочным, а массовое неудобство - несрочным.
| Приоритет | Типичное содержание | Кто узнаёт сразу | Ориентир по срокам |
|---|---|---|---|
| P1 · критический | Ключевая услуга недоступна полностью или недоступна значимой части клиентов; обходного пути нет | Дежурный, старший смены, руководитель эксплуатации, владелец услуги | Реакция - минуты. Статус клиенту - в первый час. Обновления - по фиксированному интервалу |
| P2 · высокий | Услуга работает с деградацией или потерян резерв: следующий отказ станет критическим | Дежурный, старший смены; руководитель - сводкой | Реакция - в течение смены. Восстановление - в рабочих часах того же дня |
| P3 · средний | Частный отказ, есть обходной путь, работа продолжается | Ответственная группа, в рабочее время | Плановая очередь. Ночью не будит никого |
| P4 · низкий | Неудобство, косметика, единичный запрос | Очередь группы | Разбирается по мере ёмкости команды |
Про сроки нужно сказать честно. Приведённые - типовые ориентиры, а не обязательство: реальные значения берутся из договорённостей с бизнесом и из того, что команда физически способна выдержать. Срок, записанный красиво и не выполняемый на практике, вреднее отсутствующего: он приучает считать регламент декорацией.
Ещё одна деталь, которая экономит много ночных споров: потеря резерва - это P2, а не P3. Услуга работает, клиент ничего не замечает, и соблазн отложить до утра велик. Но система в этот момент находится в состоянии, где любой следующий отказ - критический, и запас времени, заложенный резервированием, уже потрачен.
6. Матрица эскалации: кто, когда, за сколько
Эскалация бывает двух видов, и смешивать их не стоит. Функциональная - передача задачи тому, у кого больше знаний или прав: дежурный не справился, подключается инженер по направлению, затем производитель или подрядчик. Иерархическая - подъём вопроса вверх по управленческой линии: нужны решения, деньги, приоритеты, внешние коммуникации. Первая ускоряет починку, вторая снимает препятствия. Один инцидент может требовать обеих одновременно.
| Уровень | Кто | Что делает | Когда включается |
|---|---|---|---|
| L1функциональная | Дежурный смены, служба поддержки | Принимает событие, определяет приоритет, выполняет известный обход по инструкции, ведёт запись | Сразу, по любому событию класса «исключение» |
| L2функциональная | Инженер по направлению: сеть, серверы, приложение, база данных | Диагностика за пределами инструкции, изменение конфигурации, локализация причины | Инструкции нет или она не помогла; истёк контрольный срок L1 по этому приоритету |
| L3функциональная | Архитектор, разработка, производитель оборудования или ПО, внешний подрядчик | Разбор дефекта, исправление, обращение в поддержку поставщика | Причина внутри продукта или требует изменения архитектуры |
| M1иерархическая | Руководитель эксплуатации, владелец услуги | Расставляет приоритеты между инцидентами, разрешает нештатные действия, отвечает за статус для бизнеса | P1 с первой минуты; P2 при истечении контрольного срока |
| M2иерархическая | Технический директор, руководство компании | Внешние коммуникации, решения с деньгами и рисками, переговоры с поставщиком на своём уровне | По правилам пробуждения - раздел 7 |
Три свойства отличают работающую матрицу от нарисованной. Первое: эскалация происходит по таймеру, а не по самочувствию дежурного. Прошёл контрольный срок - следующий уровень подключается автоматически, без внутренней борьбы «звонить или ещё подождать». Второе: эскалация не наказание. Если инженер знает, что за подъём вопроса наверх его спросят «почему не справился», он будет тянуть до последнего, и матрица не заработает никогда. Третье: у каждой роли есть замена. Роль, у которой нет второго контакта, - это не роль, а конкретный человек, и в его отпуске этот уровень эскалации исчезает.
Отдельная строка, которую часто забывают, - эскалация к внешнему поставщику. У неё свои сроки, свой номер договора, свой контакт и своя процедура подтверждения. Если этих данных нет под рукой у дежурного в три часа ночи, реальное время восстановления определяется не техникой, а скоростью поиска нужного телефона.
7. Когда будить руководителя
Это самый спорный вопрос в любой службе, и решается он не характером, а записанным правилом. Правило должно быть таким, чтобы дежурный применил его за тридцать секунд, не рассуждая. Четыре критерия ниже покрывают почти все случаи: срабатывание любого из них - повод для звонка, независимо от времени суток.
- Затронут клиент или деньги. Услуга, которой пользуются снаружи, недоступна или искажает данные. Не «может быть затронут», а есть признак, что уже затронут.
- Нужно решение, которого у дежурного нет права принимать. Отключить часть функциональности, откатить релиз, переключить площадку, выдать доступ, потратить деньги, привлечь подрядчика вне договора.
- Требуется общение наружу. Клиенты, регулятор, пресса, крупный партнёр. Молчание в этот момент обходится дороже самой аварии, а говорить от лица компании дежурный не должен.
- Прогноз хуже факта. Сейчас работает, но развитие событий ведёт к критическому: заканчивается место, растёт очередь, отказал резерв, авария у поставщика расширяется. Разбудить на этом этапе дешевле, чем через два часа.
К правилу прилагаются две страховки, и без них оно не живёт. «Разбудили зря» не является ошибкой дежурного, если сработал один из критериев: разбирают правило, а не человека. И наоборот, «не разбудили, когда было надо» разбирается обязательно - но как дефект правила, а не как проступок. Обе страховки нужны, чтобы критерии оставались инструментом, а не поводом для претензий: команда, которую отчитали за ночной звонок один раз, больше не позвонит никогда.
Хорошая практика - заранее договориться о формате самого звонка. Тридцать секунд: что не работает, с какого времени, кого затрагивает, что уже сделано, что нужно от собеседника. Разбуженный человек воспринимает структуру гораздо лучше, чем рассказ, и решение принимается в первую минуту, а не в десятую.
8. Что из этого видно в данных
Всё описанное выше проверяется по обычной выгрузке за полгода - журналу событий из системы мониторинга и журналу инцидентов из тикет-системы. Не по опросу команды: опрос показывает представления, выгрузка - поведение.
- Сломанную эскалацию видно по разрыву между обнаружением и началом работ. Если общее время до восстановления велико, а время самой починки мало, значит, чинят быстро - долго ищут, кто должен чинить. Это дефект маршрутизации, а не квалификации.
- Шум виден по соотношению событий и инцидентов и по доле событий, закрытых без единого действия. Обе величины считаются механически.
- Формальную приоритизацию видно по распределению. Если почти все инциденты имеют один и тот же приоритет, приоритизации нет - есть поле в форме.
- Ночную нагрузку видно по суточному профилю. Отдельно считается, какая доля ночных срабатываний закончилась реальным инцидентом: это и есть цена текущих правил, выраженная в разбуженных людях.
- Повторы видно по кластерам. Одна и та же сигнатура, возвращающаяся неделями, означает, что эскалация каждый раз отрабатывает заново то, что уже решалось. Это вопрос уже не к матрице, а к практике управления проблемами.
Короткий вывод. Матрица эскалации не работает поверх шума: она предполагает, что сигнал, дошедший до человека, значим. Поэтому порядок действий обратный привычному - сначала разделить поток на «требует действия» и «в журнал», и только потом расписывать уровни, сроки и правила пробуждения. Иначе получается регламент, который выполняется днём на совещании и не выполняется в три часа ночи.
Если хотите прикинуть, где ваша служба сейчас, есть два способа. Быстрый, словами - тест зрелости в нашем боте: 7 вопросов, около 5 минут, в конце уровень и несколько советов. Точный, по данным - прислать выгрузку инцидентов: вернём разбор, где концентрируется простой, какие отказы повторяются и как выглядит разрыв между обнаружением и починкой.
Разбираете это внутри команды и хотите обсудить результат с инженером-эксплуатационником - hello@opslab.consulting.