Proč monitorování: role metrik, logů a trasování
Monitorování systémů poskytuje včasnou detekci problémů, podklady pro kapacitní plánování a data pro zlepšování spolehlivosti. V praxi kombinujeme tři pilíře observability: metriky (číselné časové řady), logy (události a kontext) a traces (distribuované trasování napříč službami). Pro proaktivní řízení služby definujeme SLI (service level indicators) a cíle SLO, které převádíme do alertů s jasným „runbookem“.
Architektonické přístupy: agent/pull vs. push a úložiště časových řad
- Pull model: centrální systém periodicky „scrapeuje“ cíle (Prometheus). Výhody: jednoduché řízení bezpečnosti (jednosměrné spojení), auto-discovery, snadná škálovatelnost.
- Push model: data se posílají do serveru nebo proxy (Zabbix agent, trapper, aktivní režim). Vhodné pro prostředí bez odchozích portů či krátce žijící joby.
- Time-series storage: kolonkové/TSDB úložiště (Prometheus TSDB) vs. relační historie+trendy (Zabbix). Důležité je nastavit retenční politiku, agregace a kompresi.
Zabbix: kompletní platforma monitoringu
Zabbix je „all-in-one“ systém s agentem, serverem, proxy a webovým UI. Poskytuje široké možnosti monitoringu infrastruktury, aplikací i sítě s důrazem na šablony, detekci a korelaci.
- Agent a agent2: sběr metrik OS, procesů, disků, síťových rozhraní; agent2 přidává pluginy a vyšší flexibilitu.
- Šablony (templates): znovupoužitelné definice items, triggers, graphs a LLD (Low-Level Discovery) pro auto-objev služeb, FS, rozhraní apod.
- SNMP a IPMI: síťové prvky, tiskárny, UPS a servery; podpora SNMPv3 s šifrováním a autenticitou.
- Proxies: distribuovaný sběr v odlehlých lokalitách, buffering při výpadku linky, odlehčení centrálního serveru.
- Preprocessing a závislosti: normalizace hodnot, throttling, dependent items (výpočty bez dalšího dotazu na cíl).
- Triggers a události: bohatý jazyk výrazů, event correlation, maintenance windows, eskalace a ack workflow.
- Historie a trendy: detailní historie v krátké periodě, dlouhodobé agregované trendy pro kapacitní plánování.
Prometheus: cloud-native metriky a dotazovací jazyk PromQL
Prometheus je nástroj zaměřený na metriky a pull sběr. Výstižné pro mikroservisy, Kubernetes a dynamické prostředí.
- Scrape a service discovery: automatické objevování cílů (Kubernetes, EC2, Consul, statické cíle). Exportéry exponují data v OpenMetrics formátu.
- PromQL: mocný jazyk pro agregace, rate/irate, histogramy, label operace a predikce (např. predict_linear).
- Alerting rules & recording rules: předpočítané metriky pro výkon a přesnost, Alertmanager pro deduplikaci, silencing, směrování a inhibition.
- Exportéry: Node Exporter (OS), Blackbox Exporter (syntetické HTTP/TCP/ICMP), MySQL/PG exporter, cAdvisor/Kube-State-Metrics pro kontejnery a K8s.
- Škálování a dlouhodobá data: federation pro hierarchii, remote_write do TSDB back-endů (Thanos/Cortex/Mimir/VictoriaMetrics) s dlouhou retencí a deduplikací.
Grafana a vizualizace
Grafana sjednocuje vizualizace pro oba světy – Zabbix i Prometheus. Pro Zabbix existuje oficiální datový zdroj (plugin), pro Prometheus nativní. Doporučení: jednotná paleta, jasné popisky os, standardní panely pro SLI (dostupnost, chybovost, latence P50/P95/P99) a „drilly“ do detailu.
Alerting: od symptomů k dopadu na uživatele
- Symptom vs. příčina: alerťte hlavně příznaky uživatelského dopadu (např. chybovost 5xx >= prah SLO), teprve sekundárně infrastrukturu (CPU, disk).
- Hlídané prahy a okna: for: v PromQL/Alertmanageru nebo multiple/ok hodnoty v Zabbixu minimalizují „flapping“.
- Runbook a obohacení: každá notifikace má obsahovat popis, kroky nápravy, odkaz na dashboard a ticketing.
- Incident proces: on-call rotace, tiché okno, post-mortem bez hledání viníka, akční položky s due date.
Bezpečnost a compliance
- Šifrování a autentizace: TLS mezi komponentami, OAuth/OIDC pro UI, mTLS pro scrape mezi Prometheem a cíli v interní síti.
- RBAC a least privilege: omezení přístupů k dashboardům, API tokeny s omezeným rozsahem, segregace povinností.
- Citlivá data: neexportovat osobní údaje do metrik, label hodnoty nepoužívat pro tajemství, rotace klíčů a audit logy.
Integrace a hybridní scénáře
- Zabbix → Prometheus/Grafana: plugin datového zdroje pro čtení Zabbixu z Grafany; možné exportovat metriky Zabbixu jako external metrics pro korelace.
- Prometheus → dlouhodobá retence: remote_write do Thanos/Cortex/Mimir, společné dotazy přes querier a globální deduplikace.
- OpenTelemetry: sjednocení metrik, logů a tras; možnost konverzí do Promethea (OTLP → Prometheus remotewrite) a propojování s traces v Jaeger/Tempo.
- Cloudové služby: ingest z AWS CloudWatch, Azure Monitor či GCP; kombinace s on-prem vrstvou a centralizovaným Alertmanagerem.
Monitorování sítí a zařízení
- SNMP v Zabbixu: šablony pro switche, routery, AP, UPS; snmptrapd pro asynchronní události.
- Blackbox syntetika: měření dostupnosti z uživatelského pohledu (HTTP status, TLS expirace, latence, DNS, TCP port).
- Flow/NetFlow/IPFIX: doplnění o provozní statistiky pro troubleshooting a kapacitní plánování.
Kubernetes a kontejnery
- Prometheus Operator: CustomResource (ServiceMonitor/PodMonitor) pro deklarativní scrape, Alertmanager a pravidla jako kód.
- Kube-State-Metrics + cAdvisor: stav objektů (deployments, pods) a metriky kontejnerů; doplnit o events a logs.
- SLI v K8s: chybovost na ingress, latence per služba, saturation (CPU, mem, I/O), kvóty a limity.
Performance, retence a náklady
- Kardinalita: u Promethea omezit počet unikátních kombinací labelů; neživte TSDB vysoce proměnnými identifikátory.
- Sampling a downsampling: recording rules pro agregace, dlouhodobé ukládání trendů místo detailní historie.
- Housekeeping v Zabbixu: optimalizace indexů, partitioning, oddělené storage třídy pro historii vs. trendy.
- FinOps: u cloudu hlídat egress, storage a dotazovou zátěž (cache, předpočty, dashboard hygiene).
Testování monitoringu a spolehlivost samotného systému
- „Who watches the watcher“: healthchecky pro Zabbix server/proxy a Prometheus/Alertmanager; watchdog alerty při výpadku ingestu.
- HA nasazení: Zabbix se zálohovanou DB a proxy ve více AZ; pro Prometheus repliky s Thanos/Cortex a odolností proti ztrátě uzlu.
- Chaos a gamedays: simulace selhání (vypnutá síť, plný disk, vypršelý certifikát) a ověření, že alerts a runbooky fungují.
Postup nasazení: od inventury k dashboardu
- Inventura aktiv: seznam systémů, SLI/SLO, závislosti a kritičnost (tiering).
- Volba nástroje: Zabbix pro heterogenní infrastrukturu a SNMP; Prometheus pro cloud-native a metriky s vysokou kardinalitou.
- „Minimum viable monitoring“: heartbeat, dostupnost, základní OS metriky, důležitá rozhraní, alerty na dopad.
- Šablony a as-code: Zabbix šablony a exporty, v Prometheu/Alertmanageru pravidla v Gitu, CI lint a testy.
- Vizualizace a školení: sjednocené dashboardy v Grafaně, školení on-call, definice eskalací a runbooků.
Porovnání Zabbix vs. Prometheus: stručná matice
| Oblast | Zabbix | Prometheus |
|---|---|---|
| Model sběru | Agent/push i pull, proxy | Pull, pushgateway pro joby |
| Šablony | Bohaté, LLD, triggers | Exportéry, mixin balíčky, pravidla jako kód |
| UI a alerty | Integrované UI, korelace, eskalace | Grafana + Alertmanager, směrování, silencing |
| Retence | Historie+trendy v DB | TSDB lokální; long-term přes Thanos/Cortex |
| Použití | SNMP, servery, síť, heterogenní IT | Cloud-native, K8s, mikroslužby |
Checklist před produkčním spuštěním
- Definované SLI/SLO pro klíčové služby a mapy závislostí.
- Alerty na uživatelský dopad s runbooky a kontakty na on-call.
- Bezpečné nasazení (TLS, RBAC, secrets, audit logy).
- Dashboardy pro provoz, kapacitu a management (shrnutí SLO, chybovost, latence, saturace).
- Testy pravidel (syntetika, silences pro plánované práce) a zálohy konfigurací.
- Plán škálování a retenční politika pro metriky i trendy.
Slovníček pojmů
- LLD (Low-Level Discovery): automatické objevování entit (disky, rozhraní) v Zabbixu.
- Exporter: komponenta, která vystaví metriky pro Prometheus ve formátu OpenMetrics.
- Recording rule: předpočítaná metrika pro rychlé dotazy a stabilní alerty.
- Alertmanager: služba pro deduplikaci a směrování alertů v Prometheus stacku.
- Thanos/Cortex/Mimir: back-endy pro dlouhodobé ukládání a horizontální škálování metrik.
Závěr
Zabbix i Prometheus patří ke špičce monitoringu, ale míří na různé scénáře. Zabbix vyniká v infrastrukturním, agentním a SNMP monitoringu s bohatou korelací událostí a šablonami. Prometheus exceluje v cloud-native světě, kde je klíčová metriková přesnost, auto-discovery a horizontální škálování přes TSDB back-endy. V praxi se nástroje často doplňují – společná vizualizace v Grafaně, jasná SLO a disciplinovaný alerting-as-code dávají organizaci kontrolu nad spolehlivostí a náklady.