Mid Авторский

Incident Tooling: от Grafana OnCall до PagerDuty

Обзор инструментов для управления инцидентами с фокусом на self-hosted решения

Зачем отдельный инструмент

В команде из пяти человек координация во время инцидента выглядит просто: кто-то пишет в чат «всё упало», пара человек подключается, чинят, идут дальше. Отдельный инструмент кажется лишним. Но в команде из 50 инженеров, с десятком сервисов и дежурством 24/7, координация через общий чат превращается в хаос. Кто лидирует инцидент? Кого уже позвали? Какой статус? Клиенты знают? Status page обновили?

Инструменты для управления инцидентами решают три задачи: маршрутизация алертов к нужному дежурному (on-call management), координация людей во время инцидента (incident response), анализ после инцидента (postmortem). Разные инструменты закрывают эти задачи с разной глубиной.

В России выбор сужается. PagerDuty, incident.io, Rootly работают через Slack и требуют оплаты зарубежными картами. Slack сам по себе ограничен для российских компаний. Поэтому разговор об инструментах стоит начинать с того, что можно развернуть на своих серверах.

Grafana OnCall: open-source on-call management

Grafana OnCall решает главную задачу: алерт приходит из системы мониторинга, OnCall маршрутизирует его к нужному дежурному по заданным правилам. Расписания дежурств, цепочки эскалации, группировка алертов, интеграции с Prometheus, Alertmanager, Zabbix, Grafana Alerting. Проект полностью open-source (Apache 2.0), можно развернуть через Docker или Helm chart в Kubernetes.

Ключевое отличие от платных аналогов: Grafana OnCall отправляет уведомления в Telegram, Mattermost, Microsoft Teams, по SMS и через телефонные звонки. Для российских команд, где Telegram служит основным рабочим мессенджером, это решающий аргумент. Настройка Telegram-нотификаций занимает минуты: подключаете бота, привязываете аккаунт, выбираете, какие алерты приходят в личку, какие в групповой чат.

OnCall хранит историю алертов, показывает статистику по нагрузке на дежурных, позволяет анализировать, какие сервисы генерируют больше всего шума. Веб-интерфейс встроен в Grafana, поэтому дежурный видит алерты и дашборды в одном месте.

DX-перспектива: если ваша команда уже использует Grafana для мониторинга, OnCall добавляет on-call management без нового инструмента в стеке. Порог входа низкий. Документация качественная, сообщество активное. Для задачи «алерт дошел до нужного человека в нужное время» OnCall закрывает 90% потребностей.

Grafana IRM: incident response поверх OnCall

Grafana IRM (Incident Response Management) расширяет OnCall в сторону полного цикла управления инцидентами. IRM добавляет объявление инцидентов, назначение ролей (incident commander, communicator), автоматическое создание каналов в Mattermost или Slack, таймлайн событий и шаблоны постмортемов.

IRM входит в Grafana Cloud (платная подписка), но компоненты incident management доступны как open-source плагин для self-hosted Grafana. Если вы уже вложились в Grafana-стек, IRM добавляет координацию инцидентов без отдельного SaaS-продукта.

Zabbix: алертинг, который уже стоит

Zabbix не позиционирует себя как incident management tool, но в российских компаниях он часто выполняет функцию первого звена. Zabbix отправляет алерты в Telegram через webhook, поддерживает эскалации, группирует события, умеет звонить по телефону через интеграции с VoIP. Многие команды годами живут с Zabbix как единственным инструментом оповещения дежурных.

Проблема Zabbix в контексте incident management: он закрывает только маршрутизацию алертов. Координация людей, таймлайн инцидента, постмортемы, аналитика по паттернам аварий, расписания дежурств с удобным UI для свопов остаются за рамками. Если ваша команда выросла из «алерт пришел в Telegram, дежурный разобрался», Zabbix стоит дополнить Grafana OnCall или другим инструментом для on-call management.

Связка Zabbix + Grafana OnCall работает так: Zabbix отправляет алерты в OnCall через webhook, OnCall маршрутизирует их по расписанию дежурств и правилам эскалации, уведомления уходят в Telegram или Mattermost.

Mattermost: инцидент-каналы без Slack

Mattermost заслуживает отдельного упоминания, потому что заменяет Slack в self-hosted сценариях. Open-source, разворачивается на своих серверах, поддерживает плагины и интеграции. В контексте incident management Mattermost предлагает Playbooks — встроенный модуль для управления инцидентами: автоматическое создание каналов, чеклисты действий, назначение ролей, ретроспективы.

Mattermost Playbooks не дотягивают до глубины incident.io по автоматизации и аналитике, но для команд, которые ведут всю коммуникацию в Mattermost, это встроенное решение без дополнительных интеграций. Инцидент стартует командой в чате, создается канал, подтягиваются нужные люди, чеклист ведет по шагам. После разрешения система собирает метрики: время реакции, время разрешения, количество участников.

PagerDuty и incident.io: глобальные лидеры

PagerDuty существует с 2009 года и остается стандартом индустрии для on-call management. Сложные правила эскалации, интеграции с сотнями систем мониторинга, расписания дежурств с учетом часовых поясов. Мобильное приложение работает стабильно, push-уведомления доходят. Plan Professional стоит от 21 доллара за пользователя в месяц. Через приобретение Jeli в 2023 году PagerDuty добавил полноценные постмортемы и аналитику инцидентов.

incident.io построил incident management внутри Slack: инцидент стартует командой в канале, система создает отдельный канал, ведет таймлайн по сообщениям, генерирует черновик постмортема с помощью AI. Plan с on-call стоит 45 долларов за пользователя в месяц.

Rootly занимает похожую нишу с акцентом на автоматизацию workflow: автоматическая эскалация, создание тикетов, обновление status page.

Для российских команд эти инструменты создают три проблемы: оплата в долларах зарубежными картами, зависимость от Slack, данные хранятся на зарубежных серверах. Если ваша компания работает с международными клиентами и Slack остается основным мессенджером, incident.io дает лучший DX в своей категории. Для остальных Grafana OnCall + Mattermost закрывает те же задачи без внешних зависимостей.

Как выбрать

Выбор зависит от трех факторов: размер команды, существующий стек, ограничения по инфраструктуре.

Команда до 20 инженеров. Grafana OnCall для алертинга и on-call расписаний, постмортемы в вики или Google Docs. Отдельный инструмент для incident response на этом масштабе создает overhead.

Команда 20-100 инженеров на self-hosted стеке. Grafana OnCall + Mattermost Playbooks. OnCall маршрутизирует алерты и управляет дежурствами, Mattermost координирует людей во время инцидента, Playbooks ведут по шагам и собирают метрики. Если Zabbix уже стоит, он подключается к OnCall через webhook.

Команда 100+ инженеров с доступом к SaaS. PagerDuty или incident.io, если бюджет и инфраструктурные ограничения позволяют. Глубокая аналитика, AI-автоматизация, интеграции с десятками внешних сервисов. Grafana IRM как self-hosted альтернатива с меньшей функциональной глубиной, но без внешних зависимостей.

Инструмент не заменит процесс

Самая дорогая ошибка: купить (или развернуть) инструмент и ожидать, что он сам наладит incident management. Grafana OnCall не поможет, если ваши алерты на 80% состоят из шума. Mattermost Playbooks не спасут, если у вас нет культуры blameless postmortems. Никакой инструмент не автоматизирует хаос, он автоматизирует процесс, и для этого процесс нужно сначала выстроить.

Начните с базовых вопросов. Кто дежурит и по какому расписанию? Какие алерты будят людей ночью и какой процент из них actionable? Как вы координируете людей во время инцидента? Как вы фиксируете уроки после? Ответы на эти вопросы определят, какой инструмент вам нужен, а какие функции окажутся пустой тратой времени.