Управление инцидентами - это порой ночной кошмар любого ИТ-директора. Поднимите руку те, у кого не было ночных сообщений, что упал критический сервис! Почему так мало рук? Да потому что этот самый процесс в большинстве компаний устроен криво. Каждый раз его придумывают заново, проходя путь от ручного режима, далее общей почты или телеграмм группы до самописной системы управления инцидентами. И чем позже мы приходим в компанию выправлять процесс, тем больше сопротивления и непонимания “А что так можно было?”.

Помню, как 8 лет назад я руководил сервисной службой в компании, которая предоставляла услуги поддержки важной внутренней системы крупного клиента. Однажды ночью, примерно в три часа, мой телефон разрывается от звонка. На экране — заказчик. Не успеваю сказать "алло", как слышу: "Вы там спите что ли? У нас АСУ ПОБСУ лежит! Вы в курсе почему? (Я молчу) Мы больше не будем с вами работать!" — и бросает трубку.

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

Выяснилось, что после вчерашнего обновления системы, которое провели в нерабочее время ближе к 12 ночи, отвалилась внешняя авторизация. Проверки, которые провели инженеры разработчика были выполнены на внутренних учетках. Они спокойно закрыли релиз и сервисные работы, а мы продолжали смотреть на зеленые экраны Zabbix. При этом в почту первой линии, которая работала с 9 до 18 начали падать письма от сотрудников, что система не работает. Мониторинга пользовательского опыта, конечно же, не было. И что самое интересное, в почту пришел алерт от смежной команды другого подрядчика, отвечающей за инциденты на AD, который сообщал, что наша система не отвечает. Но он затерялся в почте.

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

По сути, он стал самым дорогим тестировщиком в моей практике. Этот случай многому нас научил:

  • Всегда нужен бизнес-мониторинг приложений со стороны пользователей: тогда мы построили систему проверок Selenium+Jenkins+Zabbix, начали отслеживать реальные пользовательские сценарии, настроили синтетические транзакции для имитации действий пользователей.

  • Все алерты одинаково полезные до обработки: то что мы не увидели алерт от коллег, это был провал, нужно все алерты складывать в одну систему и обеспечивать их проверку и определение критичности и влияния.

  • Нужен четкий процесс on-call менеджмента: разработали график дежурств не только на месте в офисе, но и матрицу эскалации.Затем подрубили виртуальную АТС, которая перебирала телефоны вплоть до гендира, если не отвечают на нижестоящем уровне.

После этого инцидента мы полностью переработали подход к мониторингу и управлению инцидентами. В то время у многих не было опыта, не было нормальных, инструментов, ни Monq, ни Grafana OnCall, ни OpsGenie, ни PagerDuty, а IBM NetCool был нам не по карману. Сейчас 2024 год, и в чем-то условия даже похожи, но есть накопленный опыт и проверенные отечественные решения. Не надо выдумывать велосипед.

Что такое on-call менеджмент и почему он необходим

On-call менеджмент — это организация процесса дежурств и управления инцидентами, обеспечивающая круглосуточную готовность команды к реагированию на проблемы в ИТ-инфраструктуре, сокращающая время простоя бизнес-сервисов. В современном мире, где бизнес зависит от непрерывной работы ИТ-систем, on-call менеджмент становится неотъемлемой частью стратегии управления непрерывностью бизнеса.

Представьте, что ваша ИТ-инфраструктура — это живой организм. Когда в нём происходит "болезнь" или сбой, необходимо немедленное вмешательство "врача" — инженера, который быстро диагностирует и устранит проблему. On-call менеджмент — это система, которая гарантирует, что такой "врач" всегда на связи и готов действовать.

С развитием технологий искусственного интеллекта и больших языковых моделей (LLM), таких как GPT-4, on-call менеджмент выходит на новый уровень. ИИ способен анализировать огромные объёмы данных, прогнозировать потенциальные инциденты и даже предлагать решения в реальном времени. Это открывает новые возможности для повышения эффективности и снижения нагрузки на команды. Пожалуй, среди всех процессов около эксплуатации, on-call менеджмент, наряду с обработкой входящих запросов пользователей, — два наиболее благотворных направления использования ИИ.

Мы в Monq активно интегрируем ИИ в наши решения, чтобы предоставить клиентам передовые инструменты для управления инцидентами. И в новом релизе, который уже совсем скоро выйдет вы сможете попробовать ИИ-помощника для обработки алертов.

Наш путь к on-call менеджменту

Идея создать “Звонилку”, которая будила бы звонком инженеров с эскалацией по кругу и дозвона до менеджеров родилась в 2016 году после злополучного инцидента. Мы понимали, что необходим инструмент, который позволит эффективно управлять инцидентами, распределять нагрузку и обеспечивать высокую доступность сервисов.

Первым прототипом промышленной системы управления событиями и инцидентами была связка Zabbix+Asterix+Redmine. Алерты из Zabbix летели в общую почту, управление корреляцией и дедупликацией было организовано на папках и правилах, критические алерты отправлялись через самописную утилиту, где был настроен график дежурств и матрица эскалации в Asterix, который звонил дежурному, ему наговаривал автоинформатор, что он должен срочно посмотреть в Redmine и принять на себя обработку критического инцидента. Когда он нажимал соответствующую цифру на него переводилась задача. Нам это позволило отказаться от ночных дежурных, сократить затраты и обеспечить более надежное оповещение. Но управлять процессом было очень сложно, решение было негибким и сложным в развитии.

С ростом компании и службы поддержки резко возросло число проектов. У каждого клиента появлялись свои требования к процессу. Мы поняли, что данной системы нам не достаточно и начали делать платформу Monq, закладывая принципы высокой гибкости и открытости, которыми не обладает самопис на опенсорсе. В последующие годы, идя за потребностями больших клиентов, нас увело достаточно сильно в зонтичный, агентский и безагентский мониторинг, ресурсно-сервисные модели, SLA, автоматизацию и т.д. А управление дежурствами и работа с конкретными инцидентами осталась маленькой и незначительной функцией. 

И вот в 2024 году, когда ушли западные сервисы, общаясь с клиентами поменьше и специалистами на конференциях, мы поняли, что пора отдать все наши наработки по управлению инцидентами в релиз, сделать бесплатный облачный сервис Monq OnCall, первая версия которого выйдет совсем скоро, а уже сейчас вы можете записаться на ранний доступ тут.

Что такое Монк и место on-call в нем

Monq — это современная корпоративная система мониторинга и управления ИТ-инфраструктурой, разработанная для обеспечения непрерывности бизнес-процессов. Она предоставляет комплексный подход к наблюдению за состоянием ИТ-систем, объединяя в себе возможности как централизованного мониторинга, так и зонтичного решения для интеграции с существующими инструментами. Любой описываемый в статье функционал можно реализовать на бесплатной комьюнити версии продукта.

Экран управления инцидентами в Monq
Экран управления инцидентами в Monq

Ключевые возможности Monq:

  1. Зонтичный мониторинг: Monq способен собирать и агрегировать данные из различных локальных систем мониторинга, таких как Zabbix, Prometheus и другие. Это позволяет получить целостное представление о состоянии инфраструктуры без необходимости замены уже внедрённых решений.

  2. Централизованный мониторинг: Система может быть развёрнута как основное решение для мониторинга, обеспечивая полный контроль над ИТ-инфраструктурой без использования западных on-premises систем или сложных в поддержке open-source продуктов.

  3. Ресурсно-сервисная модель: Monq предоставляет возможность моделирования и визуализации зависимостей между ИТ-ресурсами и бизнес-сервисами, что облегчает понимание влияния технических проблем на бизнес-процессы и приоритизацию задач.

  4. Гибкая интеграция: Система открыта для интеграции с различными инструментами и технологиями, что позволяет адаптировать её под специфические потребности организации и обеспечить совместимость с существующей ИТ-средой.

  5. Автоматизация и оркестрация: Monq поддерживает создание сценариев автоматического реагирования на инциденты, используя свой собственный no-code и low-code движки, позволяя ускорить процесс восстановления сервисов и снизить нагрузку на ИТ-персонал.

  6. Соответствие мировым практикам: Внедряя современные подходы DevOps и SRE, Monq обеспечивает высокий уровень надежности и доступности сервисов, соответствуя передовым мировым стандартам в области мониторинга и управления инцидентами.

On-call менеджмент является составной частью Monq, отвечающей за организацию дежурств и оперативное реагирование на инциденты. Благодаря тесной связи с другими модулями системы, on-call менеджмент получает доступ ко всей необходимой информации для быстрого обнаружения и устранения проблем. Это позволяет обеспечить непрерывность бизнес-процессов и минимизировать время простоя сервисов.

Процессы превыше всего

Корпоративный программный продукт - это прежде всего не функционал, а процессы. Наш бесплатный On-Call модуль вшит в большой Monq, в базе зашит следующий процесс (с возможностью кастомизации):

Классические OnCall-процессы в Monq
Классические OnCall-процессы в Monq

Предиктивный мониторинг

Анализ метрик, трейсов и логов: каждое изменение состояния любого элемента ИТ-окружения, будь то сервер, система контейнеризации, или прикладная система создает большое число первичных технических данных. С помощью статического или динамического управления порогами метрик или сигнатур в логах появляются события мониторинга. Мы советуем активно применять технологии машинного обучения для анализа исторических данных и выявления трендов, позволяющих предсказать потенциальные инциденты до их возникновения, например, что место на диске скоро закончится. Алгоритмы ИИ могут обнаруживать аномалии в работе систем, которые предшествуют сбоям, и предупреждать команду о необходимости превентивных действий. Такой подход помогает снизить количество инцидентов и обеспечить более высокие SLA.

Сбор событий с систем мониторинга: объединение различных инструментов мониторинга в единую платформу позволяет получить полный обзор состояния окружения. Собираем метрики, логи, алерты и другие данные из разных источников для комплексного анализа. Это обеспечивает своевременное обнаружение инцидентов и сокращение времени реакции. Многие технологические гиганты, такие как Яндекс, Netflix и Amazon, успешно используют подобные подходы для управления своими масштабными системами.

Автоматизация уведомлений и эскалации

Эффективное управление инцидентами невозможно без правильно организованного процесса управления событиями и уведомления ответственных лиц, эскалации проблем. Разбиваем этот процесс на несколько стадий.

Централизация алертов: все алерты из различных систем мониторинга, анализа логов и пользовательских запросов должны поступать в единую систему управления инцидентами. Это обеспечивает полную видимость состояния системы и упрощает обработку событий. Например, интеграция с такими инструментами, как Prometheus, Пульт, Инити, ELK Stack и Zabbix, позволяет собрать всю информацию в одном месте, что существенно ускоряет диагностику проблем.

Классификация, лейблы и связка с ресурсно-сервисной моделью: присвоение алертам и событиям лейблов и их связка с ресурсно-сервисной моделью позволяет эффективно проводить дедупликацию, корреляцию и анализ влияния инцидентов на бизнес. Например, если несколько алертов связаны с одним сервисом или компонентом, мы можем объединить их в единый инцидент и определить его приоритет в зависимости от влияния на конечных пользователей. Такие практики широко применяются в проектах для управления сложными распределенными системами.

Назначение ответственных и управление дежурствами: для каждого алерта необходимо четко определить ответственного сотрудника или команду. Создадим в модуле on-call правила маршрутизации, которые автоматически назначают ответственных на основе графика дежурств. Это можно будет сделать на основе встроенного функционала в ближайших релизах, пока мы можем использовать проверку в рамках сценария определения ответственного, интегрируясь с внешними календарями, либо проставляя ответственных вручную. Система также позволяет оперативно перевести алерт с одного сотрудника на другого, учитывая загрузку и компетенции. Такой подход обеспечивает непрерывность обслуживания и предотвращает выгорание сотрудников.

Автоматизированное реагирование и восстановление

Мы стремимся максимально автоматизировать процесс реагирования на инциденты. Используя, например, no-code движок Бизнес-процессов платформы Monq, система должна выполнять предопределенные сценарии для решения типовых проблем без участия человека. Например, при обнаружении утечки памяти приложение может быть автоматически перезапущено. Такой подход сокращает время восстановления и снижает нагрузку на инженеров.

ИИ-ассистенты помогают инженерам, предоставляя рекомендации по решению инцидентов на основе исторических данных и базы знаний. Компании, такие как IBM с их Watson AIOps, демонстрируют эффективность использования ИИ в ускорении процесса принятия решений. Сейчас мы в Monq запускаем в тестовую эксплуатацию коннектор с обученной моделью GigaChat от Сбера, о кейсе использования рассказывали в недавней статье.

Управление инцидентами и коммуникация

Мы рекомендуем активно внедрять практики ChatOps в процессы управления инцидентами, что делает взаимодействие команд более удобным и эффективным. ChatOps — это подход, при котором инструменты мониторинга и управления интегрируются непосредственно в мессенджеры, позволяя командам работать в привычной среде без переключения между приложениями. Например, события собираются в инцидент, по нему стартует бизнес-процесс ChatOps:

  1. Автоматическое уведомление: Система автоматически отправляет сообщение в чат команды в выбранном мессенджере.

  2. Взаимодействие через бота: Команда может использовать команды бота для получения дополнительной информации, назначения ответственных или эскалации проблемы.

  3. Мониторинг и обновления: Все действия и изменения статуса инцидента отображаются в чате, обеспечивая прозрачность и актуальность информации.

  4. Постинцидентный анализ: После решения проблемы бот может автоматически собрать данные для отчета и инициировать обсуждение по улучшению процессов.

В Monq мы реализовали возможность создавать любые процессы ChatOps с помощью сценариев автоматизации в Telegram, Microsoft Teams и других мессенджерах. Наши интеграции позволяют настроить ботов, которые не только уведомляют о новых инцидентах, но и позволяют командам взаимодействовать с системой управления инцидентами непосредственно из чата. Это обеспечивает полный цикл управления инцидентами в привычной и удобной среде для вашей команды.

Постинцидентный анализ и непрерывное улучшение

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

Автоматический сбор данных о действиях во время инцидента и использование ИИ для анализа помогают быстро и точно определить области для улучшения. Мы обновляем базу знаний и документацию на основе полученных результатов, что способствует обучению команды и повышению качества обслуживания.

Многие широко практикуют blameless postmortems — анализ инцидентов без поиска виноватых, что способствует открытой коммуникации и улучшению процессов.

Как писать хороший постмортем

Классические компоненты постмортема:

  1. Заголовок и дата инцидента.

  2. Резюме: краткое описание и влияние.

  3. Хронология: события с указанием времени.

  4. Обнаружение: как инцидент был выявлен.

  5. Причины: анализ корневых причин без обвинений.

  6. Устранение: действия по решению проблемы.

  7. Влияние: последствия для пользователей и бизнеса.

  8. Уроки: выводы и возможности улучшения.

  9. Превентивные меры: планы по предотвращению повторения.

Самый главный компонент любого постмортема - это глубокий анализ причин возникновения инцидента, так чтобы была понятна корневая причина, которую надо устранять.

В качестве примера причин предлагаю вспомнить одну из крупнейших аварий в ядерной энергетике на станции Фукусима-1 после землетрясения и цунами 11 марта 2011 года. Анализ причин мог бы быть таким:

  • Почему произошла авария на Фукусима-1?
    Станция потеряла электропитание, по причине затопления резервных дизельных генераторов из-за цунами, что привело к отказу систем охлаждения реакторов.

  • Почему генераторы оказались затоплены?
    Защитные сооружения станции были рассчитаны на цунами до 5-7 метров, тогда как высота фактической волны превысила 14 метров. Конструкции не были предусмотрены для таких экстремальных природных явлений.

  • Почему системы охлаждения отказали?
    Полная потеря электроэнергии (Station Blackout) привела к остановке насосов охлаждения реакторов. Резервные генераторы не смогли поддерживать работу систем из-за затопления.

  • Почему персонал не предотвратил катастрофу?
    Персонал действовал строго по инструкциям, но не обладал глубоким пониманием физических процессов. Инструкции не предусматривали подобный сценарий, и принятие нестандартных решений было затруднено.

  • Почему станции не были готовы к таким событиям?
    Проект станции не учитывал одновременное воздействие столь мощного землетрясения и цунами. Безопасность была рассчитана на меньшие риски, что стало ключевым фактором аварии.

Почему важно не искать виноватых, а фокусироваться на причинах

Blameless culture основывается на принципах психологической безопасности в команде. Когда сотрудники не боятся быть наказанными за ошибки, они более открыто делятся информацией, что способствует быстрому обнаружению и устранению проблем. Во время пострасследования инцидента ваши ребята будут заниматься не выдумыванием странных историй, которые защитят их от коллег и начальства, а беспристрастно расследовать инцидент. Это несет немало выгод:

  • Повышение доверия и уровня коммуникации: Сотрудники чувствуют поддержку и уверенность, что их не будут обвинять. Растет скорость решения проблем и межкомандного взаимодействия.

  • Стимулирование инноваций: Свобода от страха позволяет предлагать новые идеи и решения.

  • Улучшение обучения: Открытое обсуждение ошибок помогает всей команде учиться и непрерывно совершенствоваться.

  • Снижение текучки кадров: Вам не придется нанимать новых людей и заниматься их обучением и адаптацией. Также новые люди всегда обходятся дороже существующих.

Исследования также подтверждают эффективность blameless подхода. В статье "Psychological Safety and Learning Behavior in Work Teams" (Amy Edmondson, 1999) показано, что команды с высокой психологической безопасностью более эффективно решают сложные задачи и быстрее адаптируются к изменениям.

Заключение

Эффективный on-call менеджмент является важным фактором успеха в современном ИТ-бизнесе. Наш опыт показал, что без правильно организованных процессов мониторинга, уведомления и реагирования на инциденты, компания рискует столкнуться с серьёзными проблемами: от финансовых потерь до ухудшения репутации. Внедрение предиктивного мониторинга, автоматизации и использования ИИ позволяет не только быстро устранять возникающие проблемы, но и предотвращать их появление в будущем.

Практики, такие как blameless postmortems, способствуют созданию открытой и продуктивной команды, где каждый сотрудник мотивирован на постоянное улучшение процессов. Мы верим, что объединение технологий и культуры позволяет достичь наилучших результатов.

Мы прошли долгий путь от самописных решений до создания платформы Monq, интегрирующей лучшие мировые практики on-call менеджмента. Теперь мы готовы поделиться нашими наработками с вами. Приглашаем вас присоединиться к программе раннего доступа и протестировать наш бесплатный облачный сервис Monq On-Call и зарегистрироваться на ранний доступ. Если облако это не про вашу организацию - есть возможность поставить комьюнити OnPrem-версию большого Monq.

За новостями продукта следите на нашем канале https://t.me/monq_dev.

Комментарии (0)