IncidentRelay 2.0, sustav otvorenog koda za upravljanje pozivima, usmjeravanje upozorenja i odgovor na incidente, je objavljen. Može se implementirati na samostalno hostanom poslužitelju. Projekt je namijenjen SRE-ovima, DevOps-ovima i infrastrukturnim timovima koji traže lokalnu alternativu platformama za upravljanje pozivima u oblaku. Kod je napisan u Pythonu i distribuiran pod MIT licencom.
IncidentRelay prihvaća događaje od Prometheus Alertmanagera, Grafana Alertinga, Zabbixa, Sentryja, LibreNMS-a, RMON-a, AWS SNS/CloudWatcha, Datadoga, Uptime Kume i prilagođenih webhook rukovatelja. Nakon normalizacije, događaj se povezuje s uslugom, timom i rotacijom, primjenjuju se pravila usmjeravanja i politike eskalacije, a obavijest se šalje trenutnom dežurnom rukovatelju. Podržane metode isporuke uključuju Mattermost, Slack, Telegram, Discord, Microsoft Teams, e-poštu, webhook, push browser/PWA i pružatelje glasovnih poziva.
Glavna inovacija u verziji 2.0 je mehanizam orkestracije događaja, koji pruža zaseban sloj obrade događaja između dolaznih integracija i životnog ciklusa upozorenja. Ključne promjene uključuju:
- Dodan je vizualni uređivač pravila orkestracije. Pravila se mogu primijeniti globalno ili na određenu uslugu, grupirati u ugniježđene grupe uvjeta i sekvencijalno mijenjati za prioritet, razinu ozbiljnosti, oznake, naredbu, rutu, metodu grupiranja, pravila obavještavanja i eskalaciju.
- Implementirane akcije za potiskivanje, odbacivanje i pauziranje obrade događaja, izdvajanje vrijednosti pomoću regularnih izraza i JSON putanje, dijeljenje stringova, stvaranje varijabli i pretvaranje vrijednosti;
- Konfiguracija orkestracije podijeljena je na nacrte koje se mogu uređivati i nepromjenjive objavljene verzije. Podržani su pregled konfiguracije, objavljivanje, vraćanje na prethodnu verziju i dodavanje komentara promjenama;
- Dostupni su onemogućeni, shadow i aktivni načini rada. U shadow načinu rada rezultati izvršavanja pravila pohranjuju se za analizu, ali ne utječu na stvarno usmjeravanje. Za prijelazno razdoblje dostupni su naslijeđeni, hibridni i načini kompatibilnosti s orkestracijom.
- Dodani su alati za simulaciju i ponavljanje događaja. Oni vam omogućuju testiranje pravila na normaliziranom događaju ili izvornom integracijskom korisnom teretu bez generiranja stvarnog upozorenja. Za analizu rezultata dostupni su tragovi izvršenja, podaci o objašnjenju i metrike shadow moda.
- Implementirane su višekratno upotrebljive webhook akcije koje se izvršavaju asinkrono nakon obrade događaja. Zaglavlja se pohranjuju šifrirana, tajne datoteke su skrivene u API-ju i zapisnicima, a pristup privatnim mrežama je prema zadanim postavkama zabranjen. Mogu se konfigurirati vremenska ograničenja, ponovni pokušaji i popis dopuštenih internih adresa.
- Dodana je integracija s Uptime Kuma, koji prihvaća standardne webhook poruke o statusu monitora. Implementirana je normalizacija statusa Aktivno i Neaktivno, otkrivanje važnosti, obrada oznaka i novi tip dolazne rute, uptime_kuma.
- Parametri apply_to_existing i reactivate_on_end dodani su utišanjima i zakazanim radnim prozorima. Prvi primjenjuje supresiju na već otvorena upozorenja, dok drugi određuje hoće li se njihova obrada nastaviti nakon završetka razdoblja supresije. Obavijesti, podsjetnici i lanci eskalacije pauziraju se i vraćaju;
- Za osobne API tokene uvedena su zasebna dopuštenja za čitanje i izmjenu za grupe, timove, korisnike, rute, kanale, usluge, rotacije, politike, prozore održavanja, provjere otkucaja srca, SSO i orkestracije. Stara agregirana dopuštenja resources:read, resources:write i * zadržana su radi unatrag kompatibilnosti.
- Dodano je sučelje zapisnika revizije s filtriranjem i paginacijom. Zapisnik bilježi operacije koje uključuju orkestracije, webhookove, tišine i zakazane radne prozore, a osjetljive vrijednosti su uklonjene iz prikazanih podataka.
- Web sučelje sada ima tamnu temu i korisnički definirane postavke jezika i dizajna. Dodana je lokalizacija za francuski, prošireni su prijevodi za odjeljke orkestracije i održavanja, a poboljšano je uređivanje pravila za podudaranje SSO grupa.
- Poboljšane provjere otkucaja srca: eliminirano je ponovljeno stvaranje zakašnjelih događaja, oporavak signala ispravno zatvara upozorenje i šalje obavijest o rješavanju problema, a standardiziran je i prikaz vremenskih oznaka;
- Pripremljena je dokumentacija za implementaciju Kubernetes-a pomoću Helm-a. Helm grafikonu je dodan namjenski program za rukovanje Slack Socket Mode-om, što je potrebno za interaktivne gumbe za potvrdu i zatvaranje incidenata.
- Pojačali smo sigurnost odlaznih HTTP zahtjeva, regularnih izraza i osjetljivih podataka, centralizirali rukovanje UTC-om i vremenskim zonama, preradili izračune rasporeda rotacije i proširili automatizirano testiranje.
Prije nadogradnje preporučuje se stvaranje sigurnosne kopije baze podataka. Potrebne promjene sheme izvode se pomoću ugrađenog mehanizma migracije IncidentRelayja. Za postupnu implementaciju orkestracije događaja, programeri preporučuju prvo korištenje shadow i hibridnog načina rada, provjeru tragova izvršenja pravila, a tek zatim prebacivanje orkestracije u aktivni način rada.
Izvor: opennet.ru
