Het IncidentRelay-project is gepubliceerd, dat een open systeem ontwikkelt voor het organiseren van diensten, het routeren van meldingen en het beheren van incidenten, uitgevoerd op een eigen server (self-hosted). Het project is gericht op SRE-, DevOps- en infrastructuurteams die een lokaal te implementeren alternatief voor SaaS-diensten nodig hebben voor het beheer van diensten (on-call management), het toepassen van escalatiebeleid en het reageren op incidenten. De code van het project is geschreven in Python en wordt verspreid onder de MIT-licentie.
IncidentRelay ontvangt gebeurtenissen van monitoringsystemen, koppelt deze aan routeringsregels en bezorgt notificaties aan de verantwoordelijke diensten of teams. In het systeem zijn dienstroosters, rotaties, het opnieuw toewijzen van diensten, bevestiging van ontvangst van een incident, het omzetten van een incident naar resolved, herinneringen, escalaties en silences voor het onderdrukken van bekende of geplande meldingen geïmplementeerd.
Het ondersteunt het ontvangen van gebeurtenissen van Prometheus Alertmanager, Zabbix en willekeurige webhooks. Voor het verzenden van notificaties zijn er kanalen zoals Mattermost, Telegram, e-mail, webhook en spraakproviders. In Mattermost en Telegram kunnen notificaties acties bevatten voor bevestiging en probleemoplossing, waardoor het mogelijk is om een incident te verwerken zonder naar een aparte interface te hoeven gaan.
In IncidentRelay is er een model voor het scheiden van toegang op basis van groepen en teams. Dit maakt het mogelijk om de zichtbaarheid van roosters, routes, notificatiekanalen en waarschuwingen tussen verschillende teams te scheiden. Voor automatisering is er een HTTP API beschikbaar, en voor integraties worden bearer-tokens en route-tokens gebruikt.
Het project kan worden toegepast als een tussenlaag tussen monitoringsystemen en notificatiekanalen: Alertmanager of Zabbix stuurt een gebeurtenis naar IncidentRelay, waarna het systeem het team en de huidige dienstverantwoordelijke bepaalt, de routeringsregels toepast en de notificatie naar het juiste kanaal verzendt. Voor niet-bevestigde incidenten kunnen er herinneringen en escalaties naar de volgende deelnemer in de rotatie worden uitgevoerd.


Bron: opennet.ru
