Первый стабильный выпуск IncidentRelay, системы для организации дежурств и маршрутизации оповещений
После пяти месяцев разработки опубликован выпуск проекта IncidentRelay 1.1, развивающего открытую систему для организации дежурств, маршрутизации оповещений и сопровождения инцидентов, запускаемую на собственном сервере (self-hosted). IncidentRelay 1.1 отмечен как первый стабильный выпуск (ветка 1.0 имела статус бета-версии). Проект ориентирован на SRE, DevOps и инфраструктурные команды, которым требуется локально разворачиваемая альтернатива SaaS-сервисам для управления дежурством (on-call management), применения политик эскалации и реагирования на инциденты. Код проекта написан на Python и распространяется под лицензией MIT.
IncidentRelay принимает события из систем мониторинга, сопоставляет их с сервисом, командой и ротацией, после чего доставляет уведомления ответственным дежурным или командам. В системе реализованы расписания дежурств, ротации, переопределения смен, подтверждение получения инцидента, состояния ACK/Resolve, напоминания, эскалации, временные замены дежурных, определение времени плановых работ и подавление шумных алертов.
Основное преимущество проекта — полный контроль над инфраструктурой и логикой маршрутизации. IncidentRelay разворачивается в своей среде, работает со своей базой данных и позволяет явно разделить входящие маршруты, команды, ротации и каналы доставки. Входящие токены принадлежат маршрутам, а не каналам, поэтому проще понять, какой внешний источник имеет право отправлять события в конкретную команду.
В IncidentRelay поддерживается приём событий из Prometheus Alertmanager, Grafana Alerting, Zabbix, Sentry, LibreNMS, RMON, AWS SNS/CloudWatch и произвольных webhook-ов. Для отправки уведомлений предусмотрены каналы Mattermost, Slack, Telegram, Discord, Microsoft Teams, email, webhook-и, browser/PWA push и провайдеры голосовых вызовов. В Mattermost и Telegram уведомления могут содержать действия для подтверждения и решения проблемы, что позволяет обрабатывать инцидент без перехода в отдельный интерфейс.
Проект можно запускать через Docker Compose, RPM-пакет для Red Hat-подобных дистрибутивов, вручную через systemd, а также в Kubernetes с помощью Helm-чарта. Для небольших инсталляций можно использовать SQLite, для рабочих чистем и более высокой нагрузки рекомендуется PostgreSQL.
В новой версии предложены следующие изменения:
- Добавлены многоуровневые on-call ротации с ограничениями по времени, приоритетами слоёв и учётом временных замен;
- Появился календарь дежурств, CalDAV и ICS-подписки для внешних календарей;
- Реализованы политики эскалации инцидентов с многошаговыми цепочками повышения уровня;
- Добавлены группы предупреждений, группировка событий, отложенные уведомления и ручное объединение связанных алертов;
- Появились окна для проведения плановых работ и «тихие» алерты;
- Добавлена возможность добавления комментариев к алертам;
- Добавлены приоритеты инцидентов (P1-P5) и автоматическое повышение приоритета по уровню важности;
- Реализованы сервисный каталог, зависимости сервисов, SLI/SLO, история влияния на работу систем (Service Impact History) и бизнес-сервисы (Business Services);
- Появился Explain Trace для разбора маршрутизации: почему алерт попал или не попал в команду, был сгруппирован, подавлен или отправлен в конкретный канал;
Добавлены проверки (Heartbeats/dead-man-switch) для watchdog, backup, ETL и других задач, где проблемой является отсутствие ожидаемого сигнала.

Источник: http://www.opennet.ru/opennews/art.shtml? num=65895
© OpenNet
