Ir izlaista IncidentRelay 2.0 — atvērtā pirmkoda sistēma dežūru pārvaldībai, brīdinājumu maršrutēšanai un incidentu reaģēšanai. To var izvietot uz pašhostēta servera. Projekts ir paredzēts SRE, DevOps un infrastruktūras komandām, kas meklē lokālu alternatīvu mākonī balstītām dežūru pārvaldības platformām. Kods ir rakstīts Python valodā un izplatīts saskaņā ar MIT licenci.
IncidentRelay pieņem notikumus no Prometheus Alertmanager, Grafana Alerting, Zabbix, Sentry, LibreNMS, RMON, AWS SNS/CloudWatch, Datadog, Uptime Kuma un pielāgotiem tīmekļa hook apstrādātājiem. Pēc normalizācijas notikums tiek saistīts ar pakalpojumu, komandu un rotāciju, tiek piemēroti maršrutēšanas noteikumi un eskalācijas politikas, un paziņojums tiek nosūtīts pašreizējam dežūrējošajam apstrādātājam. Atbalstītās piegādes metodes ietver Mattermost, Slack, Telegram, Discord, Microsoft Teams, e-pastu, tīmekļa hook, pārlūkprogrammas/PWA push un balss zvanu pakalpojumu sniedzējus.
Galvenais jauninājums 2.0 versijā ir notikumu orķestrēšanas mehānisms, kas nodrošina atsevišķu notikumu apstrādes slāni starp ienākošajām integrācijām un brīdinājuma dzīves ciklu. Galvenās izmaiņas ietver:
- Pievienots vizuālas orķestrācijas noteikumu redaktors. Noteikumus var piemērot globāli vai konkrētam pakalpojumam, grupēt ligzdotās nosacījumu grupās un secīgi modificēt pēc prioritātes, nopietnības līmeņa, etiķetēm, komandas, maršruta, grupēšanas metodes, paziņojumu politikām un eskalācijas.
- Ieviestas darbības notikumu apstrādes apspiešanai, atmešanai un apturēšanai, vērtību iegūšanai, izmantojot regulāras izteiksmes un JSON ceļu, virkņu sadalīšanai, mainīgo izveidei un vērtību konvertēšanai;
- Orķestrācijas konfigurācija ir sadalīta rediģējamos melnrakstos un nemaināmās publicētās versijās. Tiek atbalstīta konfigurācijas pārskatīšana, publicēšana, atgriešanās pie iepriekšējās versijas un komentāru pievienošana izmaiņām;
- Ir pieejami atspējoti, ēnu un aktīvie režīmi. Ēnu režīmā noteikumu izpildes rezultāti tiek saglabāti analīzei, bet neietekmē faktisko maršrutēšanu. Pārejas periodā ir pieejami mantotie, hibrīda un orķestrācijas saderības režīmi.
- Ir pievienoti notikumu simulācijas un atkārtošanas rīki. Tie ļauj pārbaudīt noteikumus normalizētā notikumā vai sākotnējā integrācijas slodzē, neģenerējot reālu brīdinājumu. Rezultātu analīzei ir nodrošinātas izpildes izsekošanas, skaidrojošie dati un ēnu režīma metrikas.
- Ir ieviestas atkārtoti izmantojamas tīmekļa aizķeres darbības, kas tiek izpildītas asinhroni pēc notikumu apstrādes. Galvenes tiek glabātas šifrētā veidā, slepenie dati ir paslēpti API un žurnālos, un piekļuve privātiem tīkliem pēc noklusējuma ir aizliegta. Var konfigurēt taimautus, atkārtotus mēģinājumus un atļauto iekšējo adrešu sarakstu.
- Pievienota integrācija ar Uptime Kuma, kas pieņem standarta tīmekļa hook ziņojumus par monitora statusu. Ir ieviesta augšupvērsta un lejupvērsta statusa normalizācija, svarīguma noteikšana, tagu apstrāde un jauns ienākošā maršruta veids uptime_kuma.
- Apklusināšanas periodiem un ieplānotajiem darba logiem ir pievienoti parametri apply_to_existing un reactivate_on_end. Pirmais attiecas uz jau atvērtu brīdinājumu slāpēšanu, bet otrais nosaka, vai atsākt to apstrādi pēc slāpēšanas perioda beigām. Paziņojumi, atgādinājumi un eskalācijas ķēdes tiek apturētas un atjaunotas;
- Personīgajiem API tokeniem ir ieviestas atsevišķas lasīšanas un modificēšanas atļaujas grupām, komandām, lietotājiem, maršrutiem, kanāliem, pakalpojumiem, rotācijām, politikām, apkopes periodiem, periodisko kontrolpārbaudēm, SSO un orķestrācijām. Vecās apkopotās resursu lasīšanas, resursu rakstīšanas un * atļaujas ir saglabātas atpakaļsaderības labad.
- Pievienota audita žurnāla saskarne ar filtrēšanu un lappušu numerāciju. Žurnālā tiek reģistrētas darbības, kas saistītas ar orķestrācijām, tīmekļa āķiem, klusināšanas pogām un ieplānotiem darba logiem, no attēlotajiem datiem noņemot sensitīvas vērtības.
- Tīmekļa saskarnei tagad ir tumša tēma un lietotāja definēti valodas un dizaina iestatījumi. Ir pievienota lokalizācija franču valodā, paplašināti tulkojumi orķestrēšanas un uzturēšanas sadaļām, kā arī uzlabota SSO grupas atbilstības noteikumu rediģēšana.
- Uzlabotas sirdsdarbības pārbaudes: novērsta atkārtota nokavētu notikumu izveide, signāla atjaunošana pareizi aizver brīdinājumu un nosūta paziņojumu par problēmas risināšanu, un laika zīmogu attēlošana ir standartizēta;
- Ir sagatavota dokumentācija Kubernetes ieviešanai, izmantojot Helm. Helm diagrammai ir pievienots īpašs Slack Socket režīma apstrādātājs, kas ir nepieciešams interaktīvajām incidentu apstiprināšanas un aizvēršanas pogām.
- Esam pastiprinājuši izejošo HTTP pieprasījumu, regulāro izteiksmju un sensitīvu datu drošību, centralizētu UTC un laika joslu apstrādi, pārstrādātus rotācijas grafika aprēķinus un paplašinājuši automatizēto testu pārklājumu.
Pirms jaunināšanas ieteicams izveidot datubāzes dublējumu. Nepieciešamās shēmas izmaiņas tiek veiktas, izmantojot IncidentRelay iebūvēto migrācijas mehānismu. Pakāpeniskai notikumu orķestrēšanas ieviešanai izstrādātāji iesaka vispirms izmantot ēnu un hibrīdrežīmus, pārbaudīt noteikumu izpildes izsekošanu un tikai pēc tam pārslēgt orķestrēšanu uz aktīvo režīmu.
Avots: opennet.ru
