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

CFD0C5CECEC5D4_1783939896.png CFD0C5CECEC5D4_1783939916.png



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

© OpenNet