IncidentRelay 2.0, sistem otvorenog koda za upravljanje pozivima, usmjeravanje upozorenja i odgovor na incidente, je objavljen. Može se implementirati na samostalno hostovanom serveru. Projekat je namijenjen SRE-ovima, DevOps-ovima i infrastrukturnim timovima koji traže lokalnu alternativu platformama za upravljanje pozivima zasnovanim na oblaku. Kod je napisan u Pythonu i distribuiran pod MIT licencom.
IncidentRelay prihvata događaje od Prometheus Alertmanagera, Grafana Alertinga, Zabbixa, Sentryja, LibreNMS-a, RMON-a, AWS SNS/CloudWatcha, Datadoga, Uptime Kume i prilagođenih webhook handlera. Nakon normalizacije, događaj se povezuje sa uslugom, timom i rotacijom, primjenjuju se pravila usmjeravanja i politike eskalacije, a obavještenje se šalje trenutnom dežurnom handleru. Podržane metode isporuke uključuju Mattermost, Slack, Telegram, Discord, Microsoft Teams, e-poštu, webhook, push browser/PWA i provajdere glasovnih poziva.
Glavna inovacija u verziji 2.0 je mehanizam Orkestracije događaja, koji pruža zaseban sloj za obradu događaja između dolaznih integracija i životnog ciklusa upozorenja. Ključne promjene uključuju:
- Dodan je vizualni editor pravila orkestracije. Pravila se mogu primijeniti globalno ili na određenu uslugu, grupirati u ugniježđene grupe uvjeta i sekvencijalno mijenjati za prioritet, nivo ozbiljnosti, oznake, naredbu, rutu, metod grupiranja, politike obavještavanja i eskalaciju.
- Implementirane akcije za potiskivanje, odbacivanje i pauziranje obrade događaja, izdvajanje vrijednosti pomoću regularnih izraza i JSON Path-a, dijeljenje stringova, kreiranje varijabli i konvertovanje vrijednosti;
- Konfiguracija orkestracije je podijeljena 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čin rada. U shadow načinu rada, rezultati izvršavanja pravila se pohranjuju za analizu, ali ne utječu na stvarno usmjeravanje. Za prelazni period dostupni su naslijeđeni, hibridni i načini kompatibilnosti s orkestracijom.
- Dodani su alati za simulaciju i ponavljanje događaja. Oni vam omogućavaju testiranje pravila na normaliziranom događaju ili originalnom integracijskom korisnom teretu bez generiranja pravog upozorenja. Za analizu rezultata obezbijeđeni su tragovi izvršenja, podaci o objašnjenju i metrike shadow moda.
- Implementirane su višekratno upotrebljive webhook akcije koje se izvršavaju asinhrono nakon obrade događaja. Zaglavlja se pohranjuju šifrirana, tajne 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 lista dozvoljenih internih adresa.
- Dodana je integracija sa Uptime Kuma, koji prihvata standardne webhook poruke o statusu monitora. Implementirana je normalizacija statusa Aktivno i Neaktivno, detekcija važnosti, obrada oznaka i novi tip dolazne rute, uptime_kuma.
- Parametri apply_to_existing i reactivate_on_end su dodani utišanjima i planiranim radnim prozorima. Prvi primjenjuje supresiju na već otvorena upozorenja, dok drugi određuje hoće li se nastaviti njihova obrada nakon završetka perioda supresije. Obavještenja, podsjetnici i lanci eskalacije se pauziraju i vraćaju u prvobitno stanje;
- Za lične API tokene, uvedene su odvojene dozvole za čitanje i izmjenu za grupe, timove, korisnike, rute, kanale, usluge, rotacije, politike, prozore održavanja, provjere otkucaja srca, SSO i orkestracije. Stare agregirane dozvole resources:read, resources:write i * su zadržane radi unatrag kompatibilnosti.
- Dodan je interfejs za evidenciju revizije sa 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 interfejs sada ima tamnu temu i korisnički definirane postavke jezika i dizajna. Dodana je lokalizacija za francuski jezik, prošireni su prijevodi za odjeljke orkestracije i održavanja, a poboljšano je i uređivanje pravila za podudaranje SSO grupa.
- Poboljšane provjere otkucaja srca: eliminirano je ponovljeno kreiranje zakašnjelih događaja, oporavak signala ispravno zatvara upozorenje i šalje obavještenje o rješavanju problema, a standardiziran je i prikaz vremenskih oznaka;
- Pripremljena je dokumentacija za implementaciju Kubernetes-a korištenjem Helm-a. Helm grafikonu je dodan namjenski program za rukovanje Slack Socket Mode-om, koji je neophodan za interaktivne dugmad 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 kreiranje sigurnosne kopije baze podataka. Potrebne promjene sheme se izvode korištenjem ugrađenog mehanizma migracije IncidentRelay-a. Za postepenu 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
