Издаване на 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, уведомления за браузър/PWA и доставчици на гласови услуги.

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

  • Добавен е визуален редактор за правила за оркестрация. Правилата могат да се прилагат глобално или за отделна услуга, да се обединяват в вложени групи условия и последователно да променят приоритета, нивото на важност, етикетите, екипа, маршрута, начина на групиране, политиките за уведомления и ескалация;
  • Реализирани са действия за подавяне, отхвърляне и спиране на обработката на събития, извличане на стойности с помощта на регулярни изрази и JSON Path, разделяне на низове, създаване на променливи и преобразуване на стойности;
  • Конфигурацията на оркестрацията е разделена на редактируеми черновици и неизменяеми публикувани версии. Поддържат се проверка на конфигурацията, публикуване, възстановяване на предишна версия и добавяне на коментарите по промените;
  • Предвидени са режими disabled, shadow и active. В режима shadow резултатите от изпълнението на правилата се запазват за анализ, но не влияят на реалната маршрутизация. За преходния период са налични режими на съвместимост legacy, hybrid и orchestration;
  • Добавени средства за симулация и повторно възпроизвеждане на събития. Те позволяват проверка на правилата въз основа на нормализирано събитие или оригинален payload интеграция без създаване на реален алерт. За анализа на резултатите се предоставят трасировка на изпълнението, 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 и прозорци за планирани работи, като поверителните стойности се изтриват от показваните данни;
  • В уеб-интерфейса вече има тъмен режим и потребителски настройки за език и оформление. Добавена е френска локализация, разширени са преводите на разделите за оркестрация и обслужване, коригирано е редактирането на правилата за съвпадение на групи 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