Udgivelsen af IncidentRelay 2.0, et system til organisering af vagtplanlægning og ruteopdeling af alarmer

Udgivelsen af projektet IncidentRelay 2.0, der udvikler et åbent system til organisering af vagter, routing af meddelelser og håndtering af hændelser, der implementeres på en selv-hosted server. Projektet er rettet mod SRE, DevOps og infrastrukturteams, der har brug for et lokalt alternativ til cloud-baserede vagtstyringsplatforme. Koden er skrevet i Python og distribueres under MIT-licensen.

IncidentRelay modtager hændelser fra Prometheus Alertmanager, Grafana Alerting, Zabbix, Sentry, LibreNMS, RMON, AWS SNS/CloudWatch, Datadog, Uptime Kuma og vilkårlige webhook-behandlere. Efter normalisering forbindes hændelsen med tjenesten, holdet og rotationen, og der anvendes routingregler og eskaleringspolitikker, hvorefter meddelelsen sendes til den aktuelle vagt. Levering understøtter Mattermost, Slack, Telegram, Discord, Microsoft Teams, email, webhook, browser/PWA push og udbydere af telefonopkald.

Den største nyhed i version 2.0 er Event Orchestration-mekanismen, der giver et separat lag til behandling af hændelser mellem de indgående integrationer og livscyklussen for advarsler. De vigtigste ændringer:

  • Der er tilføjet en visuel editor til orkestreringsregler. Regler kan anvendes globalt eller til en bestemt tjeneste, samles i indlejrede betingelsesgrupper og ændre prioriteter, vigtighedsniveauer, etiketter, hold, ruter, grupperingsmetoder, meddelelses- og eskaleringspolitikker i rækkefølge;
  • Der er implementeret handlinger til nedtoning, forkastelse og pause af behandling af hændelser, udtrækning af værdier ved hjælp af regulære udtryk og JSON Path, opdeling af strenge, oprettelse af variabler og transformation af værdier;
  • Orkestreringskonfigurationen er opdelt i redigerbare kladder og uforanderlige publicerede versioner. Der understøttes konfigurationskontrol, offentliggørelse, tilbagevenden til en tidligere version og tilføjelse af kommentarer til ændringer;
  • Der er forudset tilstande for disabled, shadow og active. I shadow-tilstand gemmes resultaterne af regeludførelse til analyse, men påvirker ikke den reelle routing. For overgangsperioden er tilstandene legacy, hybrid og orchestration tilgængelige;
  • Der er tilføjet simulerings- og genafspilningsværktøjer. De giver mulighed for at teste regler på et normaliseret begivenhed eller den oprindelige payload for integration uden at generere en faktisk alert. For analyse af resultaterne tilbydes udførelsessporing, Explain-data og metrics i shadow mode;
  • Der er implementeret genanvendelige webhook-handlinger, der udføres asynkront efter behandling af begivenheden. Overskrifter opbevares krypteret, hemmeligheder skjules i API'en og logfilerne, og adgang til private netværk er som standard forbudt. Timeout, genforsøg og en liste over tilladte interne adresser kan konfigureres;
  • Integration med Uptime Kuma er tilføjet, som modtager standard webhook-beskeder om tilstanden af monitorer. Der er implementeret normalisering af tilstande UP og DOWN, bestemmelse af betydning, behandling af tags og en ny type indkommende rute uptime_kuma;
  • For silences og planlagte vedligeholdelsesvinduer er der tilføjet parametrene apply_to_existing og reactivate_on_end. Den første gør det muligt at anvende undertrykkelse på allerede åbne alarmer, mens den anden bestemmer, om behandlingen af dem skal genoptages efter afslutningen af undertrykkelsesperioden. Underretninger, påmindelser og eskalationskæder bliver suspenderet og genoprettet;
  • Der er indført separate rettigheder til læsning og ændring af grupper, teams, brugere, ruter, kanaler, tjenester, rotationer, politikker, vedligeholdelsesvinduer, heartbeat-kontroller, SSO og orkestreringer for personlige API-tokens. De gamle aggregaterettigheder resources:read, resources:write og * er bevaret for bagudkompatibilitet;
  • Der er tilføjet et auditlog-interface med filtrering og paginering. Loggen registrerer operationer med orkestreringer, webhook-handlinger, silences og vedligeholdelsesvinduer, mens fortrolige værdier fjernes fra de viste data;
  • Den webbaserede grænseflade har fået en mørk tema og brugerdefinerede indstillinger for sprog og tema. Fransk lokalisering er tilføjet, oversættelserne for orkestrerings- og serviceafsnit er udvidet, og redigeringen af SSO gruppebindingsregler er blevet rettet;
  • Ydelsen af heartbeat-kontroller er forbedret: gentagelse af begivenheder om forfald er udelukket, genoprettelse af signal lukker korrekt alarmen og sender en meddelelse om, at problemet er løst, og visningen af tidsstempler er blevet ensartet;
  • Dokumentationen til implementering i Kubernetes ved hjælp af Helm er blevet forberedt. En separat Slack Socket Mode-håndtering er tilføjet i Helm-chartet, hvilket er nødvendigt for at aktivere interaktive knapper til bekræftelse og afslutning af hændelser;
  • Beskyttelsen af udgående HTTP-anmodninger, regulære udtryk og fortrolige data er blevet styrket; central behandling af UTC og tidszoner er blevet implementeret, beregningerne af rotationsplaner er revideret, og dækningen med automatiserede tests er blevet udvidet.

Det anbefales at tage en sikkerhedskopi af databasen før opdatering. De nødvendige skemændringer udføres af IncidentRelay's standard migrationsmekanisme. For en gradvis implementering anbefaler udviklerne først at bruge shadow- og hybridtilstande, kontrollere sporene af regeludførelser og først derefter skifte orkestreringen til aktiv tilstand.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster