Bol vydaný systém IncidentRelay 2.0, open-source systém pre správu pohotovostí, smerovanie upozornení a reakciu na incidenty. Dá sa nasadiť na samostatne hostovaný server. Projekt je určený pre SRE, DevOps a infraštruktúrne tímy, ktoré hľadajú lokálnu alternatívu ku cloudovým platformám pre správu pohotovostí. Kód je napísaný v jazyku Python a distribuovaný pod licenciou MIT.
IncidentRelay prijíma udalosti z Prometheus Alertmanager, Grafana Alerting, Zabbix, Sentry, LibreNMS, RMON, AWS SNS/CloudWatch, Datadog, Uptime Kuma a vlastných obslužných programov webhook. Po normalizácii je udalosť priradená k službe, tímu a rotácii, použijú sa pravidlá smerovania a politiky eskalácie a aktuálnemu obslužnému programu sa odošle oznámenie. Medzi podporované metódy doručovania patria Mattermost, Slack, Telegram, Discord, Microsoft Teams, e-mail, webhook, push správy prehliadača/PWA a poskytovatelia hlasových hovorov.
Hlavnou inováciou vo verzii 2.0 je mechanizmus orchestrácie udalostí, ktorý poskytuje samostatnú vrstvu spracovania udalostí medzi prichádzajúcimi integráciami a životným cyklom upozornení. Medzi kľúčové zmeny patria:
- Bol pridaný editor vizuálnych pravidiel orchestrácie. Pravidlá je možné aplikovať globálne alebo na konkrétnu službu, zoskupiť do vnorených skupín podmienok a postupne upravovať podľa priority, úrovne závažnosti, označení, príkazu, trasy, metódy zoskupovania, politík upozornení a eskalácie.
- Implementované akcie na potlačenie, zahodenie a pozastavenie spracovania udalostí, extrakciu hodnôt pomocou regulárnych výrazov a JSON Path, rozdelenie reťazcov, vytváranie premenných a konverziu hodnôt;
- Konfigurácia orchestrácie je rozdelená na upraviteľné koncepty a nemenné publikované verzie. Podporovaná je kontrola konfigurácie, publikovanie, návrat k predchádzajúcej verzii a pridávanie komentárov k zmenám.
- K dispozícii sú režimy Disabled, shadow a Active. V tieňovom režime sa výsledky vykonávania pravidiel ukladajú na analýzu, ale neovplyvňujú skutočné smerovanie. Počas prechodného obdobia sú k dispozícii režimy Legacy, hybrid a orchestration compatibility.
- Boli pridané nástroje na simuláciu a prehrávanie udalostí. Tieto nástroje vám umožňujú testovať pravidlá na normalizovanej udalosti alebo pôvodnom integračnom dátovom zaťažení bez generovania skutočného upozornenia. Na analýzu výsledkov sú k dispozícii stopy vykonávania, vysvetľujúce údaje a metriky tieňového režimu.
- Implementované sú opakovane použiteľné akcie webhooku, ktoré sa po spracovaní udalosti vykonávajú asynchrónne. Hlavičky sa ukladajú šifrované, tajné údaje sú skryté v API a protokoloch a prístup k súkromným sieťam je predvolene zakázaný. Je možné nakonfigurovať časové limity, opakované pokusy a zoznam povolených interných adries.
- Pridaná integrácia s Uptime Kuma, ktorá akceptuje štandardné správy webhookov o stave monitora. Bola implementovaná normalizácia stavu Up a Down, detekcia dôležitosti, spracovanie značiek a nový typ prichádzajúcej trasy uptime_kuma.
- Parametre apply_to_existing a reactivate_on_end boli pridané do umlčaní a plánovaných pracovných okien. Prvý aplikuje potlačenie na už otvorené upozornenia, zatiaľ čo druhý určuje, či sa má ich spracovanie obnoviť po skončení obdobia potlačenia. Upozornenia, pripomienky a eskalačné reťazce sú pozastavené a obnovené;
- Pre osobné tokeny API boli zavedené samostatné povolenia na čítanie a úpravu pre skupiny, tímy, používateľov, trasy, kanály, služby, rotácie, politiky, okná údržby, kontroly srdcového signálu, jednorazové prihlásenie (SSO) a orchestrácie. Staré agregované povolenia resources:read, resources:write a * boli zachované kvôli spätnej kompatibilite.
- Bolo pridané rozhranie protokolu auditu s filtrovaním a stránkovaním. Protokol zaznamenáva operácie zahŕňajúce orchestrácie, webhooky, umlčania a naplánované pracovné okná, pričom zo zobrazených údajov boli odstránené citlivé hodnoty.
- Webové rozhranie teraz obsahuje tmavú tému a používateľom definované nastavenia jazyka a dizajnu. Bola pridaná francúzska lokalizácia, rozšírené boli preklady pre sekcie orchestrácie a údržby a vylepšená bola úprava pravidiel párovania skupín SSO.
- Vylepšené kontroly srdcového tepu: eliminované opakované vytváranie oneskorených udalostí, obnova signálu správne zatvorí upozornenie a odošle oznámenie o vyriešení problému a štandardizované bolo zobrazenie časových pečiatok.
- Bola pripravená dokumentácia pre nasadenie Kubernetes pomocou Helm. Do Helm grafu bol pridaný špecializovaný obslužný program Slack Socket Mode, ktorý je potrebný pre interaktívne tlačidlá potvrdenia a zatvorenia incidentov.
- Posilnili sme zabezpečenie odchádzajúcich HTTP požiadaviek, regulárnych výrazov a citlivých údajov, centralizovali sme spracovanie UTC a časových pásiem, prepracovali sme výpočty harmonogramu rotácie a rozšírili sme automatizované testovanie.
Pred aktualizáciou sa odporúča vytvoriť zálohu databázy. Potrebné zmeny schémy sa vykonávajú pomocou vstavaného migračného mechanizmu IncidentRelay. Pre postupnú implementáciu orchestrácie udalostí vývojári odporúčajú najprv použiť tieňový a hybridný režim, overiť stopy vykonávania pravidiel a až potom prepnúť orchestráciu do aktívneho režimu.
Zdroj: opennet.ru
