Uppdateringen av projektet IncidentRelay 2.0 har publicerats, som utvecklar ett öppet system för att organisera beredskapsjourer, routa aviseringar och hantera incidenter, som kan installeras pÄ en egen server (self-hosted). Projektet Àr riktat mot SRE, DevOps och infrastrukturteam som behöver ett lokalt alternativ till molnbaserade plattformar för hantering av beredskapsjourer. Koden Àr skriven i Python och distribueras under MIT-licens.
IncidentRelay tar emot hÀndelser frÄn Prometheus Alertmanager, Grafana Alerting, Zabbix, Sentry, LibreNMS, RMON, AWS SNS/CloudWatch, Datadog, Uptime Kuma och valfria webhook-behandlare. Efter normalisering kopplas hÀndelsen till en tjÀnst, ett team och en rotation, och routingregler samt eskaleringspolicyer tillÀmpas, varefter meddelandet skickas till den aktuella beredskaps-jouren. För leverans stödjs Mattermost, Slack, Telegram, Discord, Microsoft Teams, e-post, webhook, webblÀsar-/PWA-push och röstanropsleverantörer.
Det frÀmsta nyheten i version 2.0 Àr mekanismen Event Orchestration, som ger ett separat lager för hÀndelsebehandling mellan inkommande integrationer och livscykeln för aviserade hÀndelser. HuvudÀndringarna Àr:
- En visuell redigerare för orkestreringsregler har lagts till. Regler kan tillÀmpas globalt eller pÄ enskilda tjÀnster, slÄs ihop i nÀstlade grupper av villkor och successivt Àndra prioritet, viktighetsnivÄ, etiketter, team, rutt, gruppering, notificationspolicyer och eskalering;
- à tgÀrder för suppression, avvisande och paus av hÀndelsebehandling, extrahering av vÀrden med hjÀlp av reguljÀra uttryck och JSON Path, uppdelning av strÀngar, skapande av variabler och konvertering av vÀrden har implementerats;
- Konfigurationen av orkestrering Àr uppdelad i redigerbara utkast och oförÀnderliga publicerade versioner. Funktioner för konfigurationskontroll, publicering, ÄterstÀllning till föregÄende version och tillsÀttning av kommentarer till Àndringar stöds;
- Det finns lÀgen för disabled, shadow och active. I shadow-lÀget sparas resultaten av regelförÀndringar för analys men pÄverkar inte den faktiska routingen. För övergÄngsperioden finns lÀgen för legacy, hybrid och orkestrering.
- Simulerings- och hÀndelsereproduktionsverktyg har lagts till. Dessa verktyg möjliggör att testa regler pÄ normaliserade hÀndelser eller ursprungligt payload frÄn integrationen utan att skapa en verklig alert. För analys av resultaten tillhandahÄlls körningsspÄrning, Explain-data och mÀtningar frÄn skugglÀge;
- à teranvÀndbara webhook-ÄtgÀrder som körs asynkront efter hÀndelsebearbetningen har implementerats. Rubriker lagras krypterade, hemligheter döljs i API:er och loggar, och anslutningar till privata nÀtverk Àr som standard förbjudna. TidsgrÀnser, försök och en lista över tillÄtna interna adresser kan konfigureras;
- Integration med Uptime Kuma har lagts till, som tar emot standard webhook-meddelanden om monitorernas status. Normalisering av UP och DOWN-statusar, viktighetsbestÀmning, tagghantering och en ny typ av inkommande rutt uptime_kuma har implementerats;
- För tystnader och fönster för schemalagd underhÄll har parametrar tillkommit: apply_to_existing och reactivate_on_end. Den första gör det möjligt att tillÀmpa undertryckning pÄ redan öppna alerts och den andra bestÀmmer om deras behandling ska Äterupptas efter att undertryckningsperioden har avslutats. Meddelanden, pÄminnelser och eskaleringskedjor pausas och ÄterstÀlls;
- För personliga API-token har separata rÀttigheter för lÀsning och Àndring av grupper, team, anvÀndare, rutter, kanaler, tjÀnster, rotationer, policyer, underhÄllsfönster, heartbeat-kontroller, SSO och orkestreringar införts. Gamla aggregerade rÀttigheter resources:read, resources:write och * Àr kvar för bakÄtkompatibilitet;
- Ett anvÀndargrÀnssnitt för revisionslogg har lagts till med filtrering och paginering. I loggen registreras operationer med orkestreringar, webhook-ÄtgÀrder, tystnader och schemalagda underhÄllsfönster, dÀr kÀnsliga vÀrden tas bort frÄn de visade data;
- Ett mörkt tema och anvÀndarspecifika instÀllningar för sprÄk och utseende har lagts till i webgrÀnssnittet. Fransk lokalisering har lagts till, översÀttningarna av sektioner för orkestrering och underhÄll har utökats, och redigering av regler för matchning av SSO-grupper har korrigerats;
- Prestandan hos heartbeat-kontroller har förbÀttrats: skapandet av hÀndelser för förfall har uteslutits, ÄterstÀllning av signal stÀnger korrekt en alert och skickar en notifiering om att problemet har lösts, tidsstÀmplar presenteras nu enhetligt;
- Dokumentationen för distribution i Kubernetes med Helm har förberetts. En separat hanterare för Slack Socket Mode har lagts till i Helm-diagrammet, vilket Àr nödvÀndigt för att interaktiva bekrÀftelse- och stÀngningsknappar för incidenter ska fungera.
- Skyddet av utgÄende HTTP-förfrÄgningar, reguljÀra uttryck och konfidentiell information har förstÀrkts, central hantering av UTC och tidszoner har införts, berÀkningarna av rotationsscheman har omarbetats och testomfÄnget har utökats med automatiserade tester.
Innan uppdateringen rekommenderas det att skapa en sÀkerhetskopia av databasen. NödvÀndiga schemaÀndringar utförs med IncidentRelays inbyggda migreringsmekanism. För en gradvis införande av Event Orchestration rekommenderar utvecklarna att först anvÀnda lÀgena skugga och hybrid, kontrollera körspÄr för regler och först dÀrefter vÀxla orkestreringen till aktivt lÀge.
KĂ€lla: opennet.ru
