Opublikowano projekt IncidentRelay, rozwijający otwarty system do organizacji dyżurów, routingu powiadomień i zarządzania incydentami, uruchamiany na własnym serwerze (self-hosted). Projekt skierowany jest do zespołów SRE, DevOps oraz infrastrukturalnych, którzy potrzebują lokalnie uruchamianej alternatywy dla usług SaaS do zarządzania dyżurami (on-call management), wdrażania polityk eskalacji oraz reagowania na incydenty. Kod projektu został napisany w Pythonie i jest udostępniany na licencji MIT.
IncidentRelay przyjmuje zdarzenia z systemów monitorowania, porównuje je z zasadami routingu i dostarcza powiadomienia odpowiedzialnym dyżurnym lub zespołom. W systemie zaimplementowano harmonogramy dyżurów, rotacje, nadpisanie zmian, potwierdzenie otrzymania incydentu, zmianę statusu incydentu na resolved, przypomnienia, eskalacje oraz silencing, aby stłumić znane lub planowe aktywacje.
Obsługuje przyjmowanie zdarzeń z Prometheus Alertmanager, Zabbix oraz dowolnych webhooków. Do wysyłania powiadomień przewidziano kanały Mattermost, Telegram, email, webhook oraz dostawców głosowych. W Mattermost i Telegram powiadomienia mogą zawierać akcje do potwierdzenia i rozwiązania problemu, co pozwala na obsługę incydentu bez przechodzenia do oddzielnego interfejsu.
W IncidentRelay przewidziano model podziału dostępu według grup i zespołów. Pozwala to na ograniczenie widoczności harmonogramów, tras, kanałów powiadomień i alertów między różnymi zespołami. Dla automatyzacji dostępne jest HTTP API, a do integracji wykorzystywane są tokeny bearer oraz tokeny tras.
Projekt może być stosowany jako warstwa pośrednia między systemami monitorowania a kanałami powiadomień: Alertmanager lub Zabbix wysyła zdarzenie do IncidentRelay, po czym system określa zespół, aktualnego dyżurnego, stosuje reguły routingu i wysyła powiadomienie do odpowiedniego kanału. Dla niepotwierdzonych incydentów mogą być wykonywane przypomnienia oraz eskalacja do następnego uczestnika rotacji.


Źródło: opennet.ru
