Späť na články
  • Observability
  • DevOps
  • Kubernetes

Efektívne stratégie monitorovania a alertingu v DevOps

Ako monitoring a alerting držia DevOps tímy pred incidentmi: výber zmysluplných metrík, zber logov cez Loki, dashboardy v Grafane a alerty cez Alertmanager.

Pavol KrajkovičSenior Cloud Architect
3 min čítania
Efektívne stratégie monitorovania a alertingu v DevOps

Robustná stratégia monitorovania a alertingu je základným kameňom fungujúceho DevOps workflow. Nezabezpečuje len spoľahlivosť a výkon systémov, ale umožňuje tímom riešiť problémy proaktívne, skôr než sa dostanú ku koncovým používateľom.

Úspešná stratégia monitorovania a alertingu kombinuje správne nástroje, metriky, procesy a automatizáciu, a napĺňa tak cieľ DevOps: rýchlo dodávať kvalitný softvér.

Kde teda začať?

Cesta, ktorou prejde metrika aj log: od scrapnutého targetu až po on-call kanál
Cesta, ktorou prejde metrika aj log: od scrapnutého targetu až po on-call kanál

Definujte dosiahnuteľné ciele a metriky

Na zbieranie zdrojov, ktoré chceme sledovať, existuje množstvo nástrojov. Bez správnej konfigurácie však snaha monitorovať všetko skončí pri záplave neúčinných metrík. Začnime preto najbežnejšími konfiguráciami a nástrojmi, ktoré sa na tieto úlohy hodia najlepšie.

  • Na zber logov potrebujeme riešenie, ktoré dokáže sledovať cieľové umiestnenie logov a preposielať ich do centralizovaného úložiska. Tento účel efektívne plní Loki v kombinácii s Promtailom. Loki je navrhnutý na horizontálnu škálovateľnosť, nákladovú efektívnosť a jednoduchú inštaláciu, čo z neho robí ideálnu voľbu na agregáciu a dotazovanie logov z rôznych zdrojov. Promtail je naproti tomu agent, ktorý posiela obsah lokálnych logov do inštancie Loki, a tým zjednodušuje proces zberu logov.
  • Pre metriky containerov, ako sú celkové reštarty, využitie CPU a pamäte a ďalšie, je riešením Prometheus. Je mimoriadne silný v zbere a ukladaní time-series dát. Pri práci s Docker containermi vie Prometheus zbierať metriky priamo z Docker daemona. V prostredí Kubernetes sa navyše dá spolu s Prometheusom použiť kube-state-metrics. Kube-state-metrics počúva na Kubernetes API serveri a generuje metriky o stave objektov (napríklad deployments, nodes a pods), ktoré potom Prometheus zbiera pre komplexné monitorovanie.
  • Čo sa týka podkladovej infraštruktúry, kľúčové sú metriky súvisiace s fyzickými alebo virtuálnymi strojmi, teda využitie CPU, pamäte, disku a siete. Tu prichádza do hry Node Exporter. Node Exporter je Prometheus exporter, ktorý zbiera hardvérové a OS metriky vystavené *NIX kernelmi, čo umožňuje podrobné monitorovanie systémových zdrojov a výkonu. Tento nástroj je nevyhnutný na získanie prehľadu o prevádzkovom zdraví infraštruktúry, na ktorej bežia vaše aplikácie.

Ekosystém Prometheus, ktorého je Node Exporter súčasťou, podporuje širokú škálu exporterov schopných monitorovať rôzne časti vašich systémov, služieb a infraštruktúry. Každý exporter je navrhnutý tak, aby získal štatistiky z konkrétneho zdroja a vystavil ich vo formáte, ktorý Prometheus dokáže zbierať a ukladať.

Vizuálny prieskum dát v Grafane

Keď máme všetky zdroje pozbierané a metriky uložené, môžeme sa venovať vizualizácii a analýze, kde zohrávajú kľúčovú úlohu nástroje ako Grafana.

  • Grafana nám umožňuje vytvárať dynamické a prehľadné dashboardy, ktoré oživia naše dáta.

Vďaka širokej podpore rôznych data sources, ako sú Loki alebo Prometheus, nám Grafana dovoľuje agregovať a vizualizovať metriky, logy aj traces v jednom ucelenom a prispôsobiteľnom rozhraní.

Každý panel na dashboarde odpovedá na jednu otázku a pomenúva zdroj dát, z ktorého číta
Každý panel na dashboarde odpovedá na jednu otázku a pomenúva zdroj dát, z ktorého číta

Okamžité upozornenia s Alertmanagerom

Metriky pozbierané, vizualizácie nakonfigurované - a predsa nemôžeme Grafanu sledovať nepretržite, pretože množstvo informácií je jednoducho zdrvujúce.

Prichádza Alertmanager, dôležitá súčasť observability ekosystému navrhnutá na zjednodušenie správy upozornení.

Elegantne spravuje alerty generované Prometheusom, efektívne rieši deduplikáciu, zoskupovanie a smerovanie, a zabezpečuje, že notifikácie sú zmysluplné a zvládnuteľné.

Alertmanager sa integruje so širokou škálou notifikačných platforiem, ako napríklad:

  • PagerDuty na plánovanie on-call služieb,
  • Slack na tímovú komunikáciu a
  • Discord na komunikáciu s komunitou,

čím zabezpečuje, že upozornenia sa dostanú k správnym ľuďom cez ich preferované kanály.

Zdieľať článok

Tú ťažšiu časť nechajte na nás.

Kontaktujte nás