Incident Tooling: от Grafana OnCall до PagerDuty — Лаборатория DX
Mid Авторский

Incident Tooling: от Grafana OnCall до PagerDuty

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

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

В команде из пяти человек координация во время инцидента выглядит так: кто-то пишет в чат «всё упало», пара человек подключается, чинят, расходятся. Отдельный инструмент тут лишний. А в команде из пятидесяти инженеров, с десятком сервисов и дежурством 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 закрывает девяносто процентов потребностей.

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, но в российских компаниях он часто играет роль первого звена. Алерты в 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 на этом масштабе только добавляет накладных.

Команда 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? Как координируются люди во время инцидента? Как фиксируются уроки после? Ответы определят, какой инструмент действительно нужен, а какие функции окажутся пустой тратой времени.