ГлавнаяБлогКак оживить мёртвый канал мониторинга: история одного аудита
Карьера

Как оживить мёртвый канал мониторинга: история одного аудита

Реальная история аудита: как заброшенный Slack-канал с алертами помог найти деградацию, которую пропустил AI-дашборд. Уроки для инженеров.

Al
Редакция Algolitalgolit.ru
10 мин чтения12 июля 2026 г.

Как оживить мёртвый канал мониторинга: история одного аудита

Представьте: вы проводите стандартный аудит инфраструктуры, и вдруг находите канал с алертами, который молчал 14 месяцев. Но молчал не потому, что всё было хорошо — просто его отключили от уведомлений. А внутри копились предупреждения, которые могли предотвратить серьёзную проблему. Эта статья — о том, как один внимательный инженер нашёл и оживил мёртвый источник данных.

Аудит, который начался обычно

Марк Джонсон пришёл в Network Operations Center клиента. Первое, что он увидел — большой экран на стене. AI-дашборд мониторинга: красивые графики, плавные переходы цветов, дорогой UI. Техлид гордо сказал: «Обновили в прошлом месяце — все активные каналы теперь на этой платформе». Марк кивнул, но его взгляд уже скользил по кабель-каналам за стойками. Он никогда не задерживался перед дашбордами надолго.

Стандартный аудит инфраструктуры — средний клиент, неплохой уровень безопасности, не самый дорогой контракт. Марк брал то, что дают. Не мог позволить себе разборчивость.

Аудит начался с сетевого уровня. Ему понадобились инвентаризация каналов, исторические логи, записи изменений конфигурации. Ноутбук на временном столе, чашка кофе, которую он принёс с собой — фильтр-кофе, уже остывший, но он не стал его выливать.

Тихий канал

Пролистывая инвентаризацию каналов, Марк наткнулся на одну строчку, которая выглядела не так, как остальные. #alert-legacy-infra — Slack-канал. Статус: muted. Последняя активная конфигурация: 14 месяцев назад.

«Что это за канал?» — спросил он. Техлид мельком глянул: «А, это от предыдущего SRE. Он настроил его до внедрения новой платформы. С тех пор никто не поддерживал. Решили оставить, просто замутили». Марк ничего не ответил. Он записал ID канала в блокнот.

Логи, которые никто не читал

Вечером того же дня он выгрузил полную историю этого канала. Объём аудита покрывал весь вывод канала — он проверил права доступа. 14 месяцев записей алертов. Ни один из них никогда не был доставлен — эндпоинт уведомлений был отключён. Но бэкенд продолжал генерировать их без остановки. Марк прокручивал таймлайн всё медленнее.

Канал использовал набор правил двухлетней давности — многоуровневая система алертов инфраструктуры. Отклонения трендов CPU, сканирование утечек памяти, пороги пулов соединений. Правила были точными, пороги — выверенными. Не похоже на наспех собранное решение. Каждое правило было помечено инициалами автора: JL. Он больше не работал в компании.

Марк пролистал историю коммитов для нескольких правил. На третьей странице он остановился. Он уже видел стиль именования JL раньше — не в коде JL, а в своём собственном. Правила трендов использовали _trend, устойчивые паттерны — _sustained, межслойное распределение — _spread. Он никогда не использовал такую же систему. Но, глядя на неё, он понял: этот человек думал об алертах так же, как он сам.

Дело было не в навыках — дело в убеждении, что алерты должны говорить в тихие моменты, а не ждать, пока всё взорвётся.

Марк прокрутил до недели, когда запустили AI-платформу. Понедельник: старый канал всё ещё выдавал алерты. Среда: новая платформа введена в эксплуатацию. Пятница: канал алертов переведён в режим muted — не удалён, не отключён, просто заглушён. Через две недели JL уволился. В документации передачи дел было сказано: «Правила #alert-legacy-infra покрывают большинство паттернов деградации на уровне инфраструктуры. Рекомендую оставить хотя бы на месяц для наблюдения за переходом». Никто не выполнил рекомендацию. Канал остался заглушённым.

Марк прокрутил дальше. Помимо правила пула соединений, JL написал правило тренда задержки восстановления памяти — mem_reclaim_latency_trend, отслеживающее рост времени пауз GC в непиковые часы. На AI-дашборде эта область была вся зелёная. Правило JL видело жёлтый 14 месяцев назад. И это предупреждение тоже не дошло.

Марк открыл таймлайн алертов до самой последней записи. Последнее срабатывание: три дня назад — [07-08 03:14:22] WARN [conn_pool] Connection pool utilization: 72% → 84% (7d trend: +12pp). Ссылка: #alert-legacy-infra / rule: conn_pool_sustained_growth / author: JL. Теги: смещение базовой линии, некритично. Три дня назад. 84%. Всё ещё растёт.

Он прокрутил назад за неделю: 72% → 78% → 81% → 84%. Не всплеск — устойчивый рост. AI-дашборд этого не отметил. AI-панель агрегировала по маршрутам алертов — после того, как канал был заглушён, никакие маршруты не указывали на панель, поэтому данные туда не попадали. Канал продолжал писать. Никто не слушал.

Читая между строк

Марк смотрел на линию тренда. Он мог прочитать JL по конфигурации алертов — не по документации, а по тому, как были написаны правила. JL установил порог пула соединений на 70% для предупреждения и 85% для алерта, с 15-процентным окном наблюдения между ними. Это не стандартная практика — обычно алертят при 90%. JL настроил более агрессивно, потому что не хотел ждать, пока система скажет ему, что что-то не так. Он хотел услышать это до того, как оно заговорит.

14 месяцев. Правило выполнялось по расписанию каждый цикл — точное, дисциплинированное, неуслышанное.

Взгляд Марка задержался на аббревиатуре автора коммита. Он вспомнил общефирменное письмо, которое пришло после. В тот день HR сказал ему, что это его последний день. Тогда он тоже писал логи. Их тоже никто не читал.

Марк закрыл окно с логами. Он сохранил скриншот линии тренда и 14-месячный график частоты срабатываний в папку. Никаких пометок, никаких аннотаций. Закрыл ноутбук и допил холодный кофе.

Приложение к отчёту

Отчёт об аудите нужно было сдать в пятницу. Отчёт Марка занял шесть страниц. Первые пять были стандартными: оценка сетевой безопасности, проверка контроля доступа, соответствие требованиям резервного копирования. Шестая страница была приложением — один график и одна строка текста.

График: 14-месячная кривая частоты срабатываний алертов, извлечённая из канала #alert-legacy-infra. Время на оси X, количество срабатываний на оси Y. Кривая показывала чёткий разрыв до и после заглушения: количество срабатываний не снизилось, но уровень подтверждения упал до нуля — данные продолжали поступать в тишину. Отдельная линия на графике тренда выделяла загрузку пула соединений за последнюю неделю: 72% → 84% → всё ещё растёт.

Приложение открывалось одной строкой: «Рекомендую провести аудит вывода из #alert-legacy-infra. Этот канал в настоящее время не подключён ни к одному эндпоинту уведомлений.»

Он не написал «канал был заглушён». Не написал «14 месяцев необработанных данных». Не написал «правила были верны». Он написал «рекомендую провести аудит вывода». Это всё, что он сказал.

Выходные прошли без ответа. Марк поехал на другой объект. Он не открывал ту папку.

Понедельник

Утром в понедельник пришло сообщение от техлида: «Тот канал — мы провели валидацию. Правило JL для пула соединений было верным. Деградация начала накапливаться около недели назад. AI-панель не отметила. Мы провели ручные проверки — это происходит.»

Марк прочитал сообщение. Не ответил. «Как вы заметили этот канал во время аудита?» Марк набрал строку. Удалил. Наконец отправил четыре слова: «Он никогда не терял питания.» Пауза. Затем: «Да. Мы знаем, что не терял.» Марк больше не ответил.

Минут через десять пришло ещё одно сообщение. Не от техлида — другое имя, которое Марк не узнал. «Я только что просмотрел документы передачи дел. Правила JL были описаны в руководстве по онбордингу — никто из нас его не читал.» Пальцы Марка замерли над клавиатурой. Он не написал ни слова.

Перед тем как закрыть экран, он сохранил скриншот conn_pool_sustained_growth. Без особой причины — просто JL всё ещё писал правила перед уходом. И не просто писал — за две пятницы до увольнения он скорректировал порог алерта пула соединений с 75% до 70%. В заметке было одно: «Неинвазивная корректировка на основе трёх недель наблюдения.» Перед уходом в документации передачи дел была только одна строка: «Рекомендую оставить на месяц.» В том, что он не дописал, он всё ещё настраивал этот порог.

Марк вытянул и mem_reclaim_latency_trend — линия всё ещё двигалась, просто не прошла порог JL. Последний коммит — зная, что никто его не прочитает, всё равно подгонял параметры перед тем, как уйти. Он сохранил скриншот в папку JL/ — не имеющую отношения к аудиту. Закрыл ноутбук.

Всё ещё

Он вышел из здания. Солнечный свет был ярче, чем когда он заходил. Он купил бумажный стаканчик кофе в магазине у дороги — не фильтр-кофе, ничего особенного. Постоял у входа, сделал два глотка. Кофе был горячим. Он не стал его выливать. Допив, бросил стаканчик в мусорку.

Ожидая машину, он пролистал статью. Название было «Последний урок». На середине он заблокировал телефон и положил экраном вниз на колено. Подержал его там чуть дольше, чем нужно. Ветер прошёл сквозь платформу, тёплый, неся пыль дня. На очереди следующий клиент.

Мир потрёпан и разорван, но всегда найдётся кто-то, кто тихо сшивает его обратно. Это всем, кто отдаёт больше, чем берёт.

Практический вывод: что делать прямо сейчас

Проверьте свои старые каналы мониторинга. Найдите те, что были заглушены или забыты. Возможно, они всё ещё пишут данные, которые могут спасти вас от инцидента. Не удаляйте их — проанализируйте. И если найдёте что-то ценное, поделитесь с командой. Иногда мёртвое может ожить.

#мониторинг#алерты#аудит#инфраструктура#история
Al
Редакция Algolit

Пишем про алгоритмы, подготовку к собеседованиям и карьеру в IT — так, чтобы было понятно и полезно.

Хочешь закрепить знания на практике?

Решай задачи на Algolit — интерактивная платформа для обучения

Начать бесплатно →