PagerDuty ehk miks operatsiooniosakond ei saa öösel magada

Mida keerulisem on süsteem, seda rohkem kasvab see igasuguste hoiatustega. Ja nendele samadele hoiatustele tuleb reageerida, need koondada ja visualiseerida. Arvan, et see on paljudele närvilisuseni tuttav olukord.

Lahendus, mida arutatakse, ei ole kõige ootamatum, kuid otsing ei anna sellel teemal täisväärtuslikku artiklit.

Seetõttu otsustasin jagada FunCorpi kogemust ja rääkida sellest, kuidas on valveprotsess üles ehitatud, kes helistab, miks ja kuidas seda kõike vaadata saab.

PagerDuty ehk miks operatsiooniosakond ei saa öösel magada

Mis on PagerDuty?

Nii et kõigi nende probleemide lahendamiseks hakkasime otsima mugavat tööriista. Pärast mõningast otsimist valisime PagerDuty. PD tundus meile üsna terviklik ja sisutihe lahendus suure hulga integratsioonide ja seadistustega. Milline ta on?

Lühidalt öeldes on PagerDuty intsidentide töötlemise platvorm, mis suudab erinevate integratsioonide kaudu töödelda sissetulevaid intsidente, seadistada töökorraldusi ja seejärel hoiatada valves olevat inseneri olenevalt intsidendi tasemest (kõrgel tasemel - kõne, madalal - tõuge rakendusest / SMS) .

Kes on korrapidaja?

See on ilmselt esimene koht, kust alustada PD seadistamist.

FunCorpis, nagu ka teistes ettevõtetes, on valveametniku aukoht. See edastatakse insenerilt insenerile üks kord päevas. PagerDuty märguandele reageerib nn esimene ja teine ​​rida. Oletame, et saabub kõrge prioriteediga häire ja kui 10 minutit pärast esimeselt liinilt valvekorrapidajale helistamist sellele ei reageerita (st seda ei kanta üle kinnituse või lahendatud olekusse), läheb kõne teisele. valveinsener. See on konfigureeritud PagerDuty enda eskalatsioonipoliitika kaudu.

PagerDuty ehk miks operatsiooniosakond ei saa öösel magada

Kui teine ​​korrapidaja ei vasta, naaseb teade peamine korrapidaja juurde.

Seega ei saa ükski sissetulev kõrge prioriteediga hoiatus jääda töötlemata. 

Nüüd vaatame, kust intsidendid võivad tulla.

Milliseid integratsioone me kasutame?

PD saab erinevatelt teenustelt palju erinevaid intsidente. Meil on hetkel umbes 25 sellist teenust ja nende töötlemiseks kasutame mõningaid valmisintegratsioone.

  • Prometheus

Peamine mõõdikute kogumise süsteem on Prometheus. Habres on sellest juba palju kirjutatud, ütlen vaid, et meil on neid mitu erineva keskkonna jaoks: üks kogub mõõdikuid virtuaalmasinatest ja dokkidest, teine ​​Amazoni teenustest, kolmas riistvaramasinatest. Telegrafi kasutatakse peamiselt mõõdikute eksportijana.

  • E-POST

Ka siin on minu meelest pealkirjast kõik selge. Seda integratsiooni kasutatakse teatiste saatmiseks teatud skriptidest, mida cron käivitab. PD annab teile kindla aadressi, kuhu te kirju saadate. Sellise integratsiooniga teenust luues saab määrata prioriteedid, millises järjekorras saabuvaid juhtumeid töödeldakse, kuidas täpselt märguannet koostada (iga saabuva kirja kohta, sissetuleva kirja kohta + kindel reegel jne).

PagerDuty ehk miks operatsiooniosakond ei saa öösel magada

  • Lõtv

Minu meelest väga huvitav integratsioon. On aegu, kui midagi juhtub, kuid juhtumid seda ei hõlma. Seetõttu lisasime intsidendi loomiseks Slacki integratsiooni. See tähendab, et saate kirjutada ettevõtte Slackile /callofduty kõik on aeglane ja läheb varsti katki ja PD töötleb seda ja saadab juhtumi valveinsenerile.

Me teeme:

PagerDuty ehk miks operatsiooniosakond ei saa öösel magada

Me näeme:

PagerDuty ehk miks operatsiooniosakond ei saa öösel magada

  • API

HTTP integratsioon. Tegelikult pole siin midagi eriti huvitavat, lihtsalt POST-i päring koos JSON-vormingus kehaga. Näiteks midagi huvitavat: me kasutame seda välise jälgimise abil https://www.statuscake.com/. See teenus kontrollib meie saitide juurdepääsetavust erinevatest maailma paikadest. Juhul, kui saame vastuvõetamatu vastusekoodi (näiteks 502), luuakse intsident ja seejärel järgib kõik ülalkirjeldatud ahelat. StatusCake ise suudab jälgida sisemisi URL-e, SSL-sertifikaati või domeeni aegumist.

  • LibreNMS

Tegemist on järjekordse seiresüsteemiga, selle kohta saad täpsemalt lugeda nende kodulehelt https://www.librenms.org/. Tema abiga jälgime serveritest võrguliideseid ja iDRAC-i.

PagerDuty ehk miks operatsiooniosakond ei saa öösel magada

Samuti olid sellised integratsioonid nagu Datadog, CloudWatch. Saate lähemalt näha, mis nendega juhtus siin.

Visualiseerimine

Peamine intsidentidest teatamise süsteem on Slack. Kõik PD-sse tulevad intsidendid kirjutatakse spetsiaalsesse vestlusesse ja kui nende olek muutub, kuvatakse see ka vestluses.

PagerDuty ehk miks operatsiooniosakond ei saa öösel magada

Kui avanes võimalus kuvada laes rippuvate monitoride ekraanidel kasulikke andmeid, mõistsime ühtäkki, et meil (devopsi osakonnas) pole neile midagi kuvada. Seal on suurepärane Grafana, kuid see ei hõlma kõike ja töötajad reageerivad hoiatustele, mitte diagrammidele.

Pärast põhjalikku, kuid ebaõnnestunud otsingut GitHubis PD jaoks kokkuvõtliku ja informatiivse „tahvli“ leidmiseks, otsustasime kirjutada omaenda – ainult sellega, mida vajame. Kuigi algul oli mõte kuvada PD liides ise, tundus see veelgi ebamugavam.

Selle kirjutamiseks peate hankima PD-lt kirjutuskaitstud õigustega võtme.
Ja see on see, mida me saime:

PagerDuty ehk miks operatsiooniosakond ei saa öösel magada

Ekraanil kuvatakse praegused avatud intsidendid, praeguse valitud ajakava järgi valves oleva inseneri nimi ja kõrge prioriteediga intsidendita aeg (kõrge prioriteediga intsidendi paneel on punasega esile tõstetud).

Vaadake selle teostuse allikaid siit.

Selle tulemusena saime mugava armatuurlaua kõigi meie vahejuhtumite vaatamiseks. Mul on hea meel, kui mõni teist leiab, et meie kogemus on kasulik.

Allikas: www.habr.com

Lisa kommentaar