Byl zveřejněn projekt IncidentRelay 2.0, který rozvíjí otevřený systém pro organizaci pohotovostních služeb, směrování upozornění a zpracování incidentů, nasazovaný na vlastním serveru (self-hosted). Projekt je zaměřen na SRE, DevOps a infrastrukturové týmy, které hledají lokální alternativu k cloudovým platformám pro správu pohotovostí. Kód je napsán v Pythonu a je distribuován pod licencí MIT.
IncidentRelay přijímá události z Prometheus Alertmanager, Grafana Alerting, Zabbix, Sentry, LibreNMS, RMON, AWS SNS/CloudWatch, Datadog, Uptime Kuma a libovolných webhook zpracovatelů. Po normalizaci je událost spojena se službou, týmem a rotací, aplikují se na ni pravidla směrování a politiky eskalace, a následně je upozornění zasláno aktuálnímu pohotovostnímu pracovníkovi. Pro doručování se podporují Mattermost, Slack, Telegram, Discord, Microsoft Teams, e-mail, webhook, prohlížeč/PWA push a poskytovatelé hlasových hovorů.
Hlavní novinkou verze 2.0 je mechanismus Event Orchestration, který poskytuje samostatnou vrstvu zpracování událostí mezi příchozími integracemi a životním cyklem alertu. Hlavní změny:
- Přidán vizuální editor pravidel orchestrace. Pravidla mohou být aplikována globálně nebo na jednotlivou službu, mohou být seskupena do vnořených skupin podmínek a postupně měnit prioritu, úroveň důležitosti, štítky, tým, trasu, způsob seskupení, politiky upozornění a eskalace.
- Byly implementovány akce pro potlačení, odmítnutí a pozastavení zpracování událostí, získání hodnot pomocí regulárních výrazů a JSON Path, rozdělení řetězců, vytváření proměnných a transformaci hodnot.
- Konfigurace orchestrace je rozdělena na editovatelné koncepty a neměnné publikované verze. Podporována je kontrola konfigurace, publikování, návrat k předchozí verzi a přidávání poznámek k změnám.
- Jsou k dispozici režimy disabled, shadow a active. V režimu shadow se výsledky provádění pravidel uchovávají pro analýzu, ale nemají vliv na skutečné směrování. Pro přechodné období jsou k dispozici režimy kompatibility legacy, hybrid a orchestration.
- Byly přidány nástroje pro simulaci a opakování událostí. Tyto nástroje umožňují ověřit pravidla na normalizované události nebo základním payloadu integrace bez vytváření skutečného alertu. K analýze výsledků jsou k dispozici trasování provádění, Explain data a metriky shadow módu;
- Byly implementovány opakovaně použitelné webhook akce, které se vykonávají asynchronně po zpracování události. Hlavičky se uchovávají v šifrované podobě, tajné klíče jsou skryty v API a žurnálech, a přístupy k soukromým sítím jsou ve výchozím nastavení zakázány. Lze nastavit časové limity, opakování a seznam povolených interních adres;
- Byla přidána integrace s Uptime Kuma, která přijímá standardní webhook zprávy o stavu monitorů. Byly realizovány normalizace stavů UP a DOWN, určení důležitosti, zpracování štítků a nový typ příchozího маршрута uptime_kuma;
- Pro silences a okna plánovaných prací byly přidány parametry apply_to_existing a reactivate_on_end. První umožňuje aplikovat potlačení na již otevřené alerty, a druhý určuje, zda má pokračovat jejich zpracování po skončení potlačovacího období. Upozornění, připomenutí a řetězce eskalace se pozastavují a obnovují;
- Pro osobní API tokeny byly zavedena oddělená práva pro čtení a úpravu skupin, týmů, uživatelů, tras, kanálů, služeb, rotací, politik, oken údržby, heartbeat kontrol a orchestrací. Starší agregovaná práva resources:read, resources:write a * byla zachována pro zpětnou kompatibilitu;
- Bylo přidáno rozhraní auditního logu s filtrováním a stránkováním. V logu se zaznamenávají operace s orchestracemi, webhook akcemi, silences a okny plánovaných prací, přičemž důvěrné hodnoty jsou odstraňovány z zobrazených dat;
- V webovém rozhraní byla přidána tmavá téma a uživatelská nastavení jazyka a stylu. Byla přidána francouzská lokalizace, rozšířeny překlady v sekcích orchestrace a údržby, byla opravena úprava pravidel pro mapování SSO skupin;
- Byla vylepšena funkčnost heartbeat kontrol: bylo vyloučeno opětovné vytváření událostí o prodlení, obnovení signálu správně uzavírá alert a odesílá oznámení o vyřešení problému, bylo sjednoceno zobrazení časových razítek;
- Byla připravena dokumentace pro nasazení do Kubernetes pomocí Helm. Do Helm chartu byl přidán samostatný zpracovatel Slack Socket Mode, potřebný pro funkci interaktivních tlačítek pro potvrzení a uzavření incidentů;
- Byla posílena ochrana odchozích HTTP požadavků, regulárních výrazů a citlivých dat, centralizována zpracování UTC a časových zón, přepracovány výpočty rozvrhů rotací a rozšířeno pokrytí automatickými testy.
Před aktualizací se doporučuje vytvořit zálohu databáze. Nevyhnutelné změny schématu se provádějí standardním mechanismem migrací IncidentRelay. Pro postupné zavádění Event Orchestration vývojáři doporučují nejprve použít režimy shadow a hybrid, zkontrolovat trasování vykonávání pravidel a až poté přepnout orchestrace do aktivního režimu.
Zdroj: opennet.ru
