Випуск IncidentRelay 2.0, системи для організації чергувань та маршрутизації оповіщень

Опубліковано випуск проекту IncidentRelay 2.0, який розвиває відкриту систему для організації чергувань, маршрутизації сповіщень та супроводу інцидентів, що розгортається на власному сервері (self-hosted). Проект орієнтований на SRE, DevOps та інфраструктурні команди, яким потрібна локальна альтернатива хмарним платформам управління чергуваннями. Код написано на Python і поширюється під ліцензією MIT.

IncidentRelay приймає події з Prometheus Alertmanager, Grafana Alerting, Zabbix, Sentry, LibreNMS, RMON, AWS SNS/CloudWatch, Datadog, Uptime Kuma та довільних webhook-обробників. Після нормалізації подія пов'язується з сервісом, командою та ротацією, до неї застосовуються правила маршрутизації та політики ескалації, після чого повідомлення надсилається поточному черговому. Для доставки підтримуються Mattermost, Slack, Telegram, Discord, Microsoft Teams, електронна пошта, webhook, browser/PWA push і провайдери голосових викликів.

Головним нововведенням версії 2.0 став механізм Event Orchestration, що надає окремий шар обробки подій між інтеграціями і життєвим циклом алерту. Основні зміни:

  • Додано візуального редактора правил оркестрації. Правила можуть застосовуватися глобально або до окремого сервісу, об'єднуватись у вкладені групи умов та послідовно змінювати пріоритет, рівень важливості, мітки, команду, маршрут, спосіб угруповання, політики повідомлень та ескалації;
  • Реалізовані дії для придушення, відкидання та припинення обробки подій, вилучення значень за допомогою регулярних виразів та JSON Path, поділу рядків, створення змінних та перетворення значень;
  • Конфігурація оркестрації поділена на редаговані чернетки та незмінні опубліковані версії. Підтримуються перевірка конфігурації, публікація, відкат на попередню версію та додавання коментарів до змін;
  • Передбачені режими disabled, shadow та active. У режимі shadow результати виконання правил зберігаються для аналізу, але не впливають на реальну маршрутизацію. Для перехідного періоду доступні режими сумісності legacy, hybrid та orchestration;
  • Додано засоби симуляції та повторного відтворення подій. Вони дають змогу перевірити правила на нормалізованій події або вихідному платіload інтеграції без створення реального алерту. Для аналізу результатів надаються трасування виконання, Explain-дані та метрики тіньового режиму;
  • Реалізовані webhook-дії, що перевикористовуються, виконуються асинхронно після обробки події. Заголовки зберігаються у зашифрованому вигляді, секрети ховаються в API та журналах, а звернення до приватних мереж за замовчуванням заборонено. Можна настроїти тайм-аути, повторні спроби та список дозволених внутрішніх адрес;
  • Додано інтеграцію з Uptime Kuma, яка приймає стандартні webhook-повідомлення про стан моніторів. Реалізовано нормалізацію станів UP та DOWN, визначення важливості, обробку тегів та новий тип вхідного маршруту uptime_kuma;
  • Для silences та вікон планових робіт з'явилися параметри apply_to_existing та reactivate_on_end. Перший дозволяє застосувати придушення до відкритих алертів, а другий визначає, чи слід відновити їх обробку після завершення періоду придушення. Припиняються та відновлюються повідомлення, нагадування та ланцюжки ескалації;
  • Для персональних API-токенів введено окремі права читання та зміни груп, команд, користувачів, маршрутів, каналів, сервісів, ротацій, політик, вікон обслуговування, heartbeat-перевірок, SSO та оркестрацій. Старі агреговані права resources:read, resources:write та * збережені для зворотної сумісності;
  • Додано інтерфейс журналу аудиту з фільтрацією та посторінковим висновком. У журналі фіксуються операції з оркестраціями, webhook-діями, silences та вікнами планових робіт, при цьому конфіденційні значення видаляються з даних, що відображаються;
  • У web-інтерфейсі з'явилася темна тема та налаштування користувача мови та оформлення. Додано французьку локалізація, розширено переклади розділів оркестрації та обслуговування, виправлено редагування правил зіставлення груп SSO;
  • Поліпшено роботу heartbeat-перевірок: виключено повторне створення подій про прострочення, відновлення сигналу коректно закриває алерт і надсилає повідомлення про вирішення проблеми, уніфіковано подання тимчасових міток;
  • Підготовлено документацію з розгортання в Kubernetes за допомогою Helm. У Helm-чарт доданий окремий обробник Slack Socket Mode, необхідний роботи інтерактивних кнопок підтвердження і закриття інцидентів;
  • Посилено захист вихідних HTTP-запитів, регулярних виразів та конфіденційних даних, централізовано обробку UTC та часових поясів, перероблено обчислення розкладів ротацій та розширено покриття автоматичними тестами.

Перед оновленням рекомендується створити резервну копію бази даних. Необхідні зміни схеми виконуються штатним механізмом міграцій IncidentRelay. Для поступового впровадження Event Orchestration розробники рекомендують спочатку використовувати режими shadow і hybrid, перевірити трасування виконання правил і після цього перемикати оркестрацію в режим active.

Джерело: opennet.ru

Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери 🔥 Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери | ProHoster