Monitorování infrastruktury: sledování dostupnosti a výkonu

Monitorování infrastruktury: Sledování dostupnosti a výkonu

Proč sledovat dostupnost a výkon

Monitorování infrastruktury je základním kamenem spolehlivosti IT služeb. Umožňuje včas detekovat incidenty, měřit plnění SLA, plánovat kapacitu a optimalizovat náklady. V moderních prostředích (virtualizace, kontejnery, cloud, hybridní prostředí) je nutné kombinovat více přístupů – syntetická měření dostupnosti typu blackbox, metriky z aplikací typu whitebox, logování a distribuované trasování. Tento článek poskytuje ucelený přehled metrik, architektur, nástrojů a postupů se zaměřením na Zabbix a Prometheus.

Terminologie: SLA, SLO, SLI a error budget

  • SLI (Service Level Indicator): měřitelný ukazatel kvality služby – například dostupnost HTTP 200, latence p95, poměr chyb.
  • SLO (Service Level Objective): cílová hodnota pro SLI, např. latence p95 < 200 ms, dostupnost ≥ 99,9 %.
  • SLA (Service Level Agreement): smluvně závazná dohoda se sankcemi.
  • Error budget: povolený prostor pro nedostupnost či chyby v daném období; řídí tempo změn a míru rizika.

Typy metrik: dostupnost, latence, chybovost, kapacita

  • Dostupnost: binární výsledek syntetického testu nebo doba dostupnosti služby (např. dostupnost TCP/443, HTTP 2xx).
  • Latence: p50/p90/p95/p99, rozlišení server/klient, time to first byte, DNS lookup, TLS handshake.
  • Chybovost: míra chyb 5xx, kolize v DB, saturace front.
  • Kapacita a využití: CPU, paměť, diskové I/O, síť, file descriptors, spojení, pauzy GC, velikost front.
  • Byznysové metriky: transakce/min, míra konverze, opuštění košíku – pro korelaci IT a jeho dopadu.

Blackbox vs. whitebox monitorování

  • Blackbox: syntetické sondy zvenčí (HTTP, ICMP, TCP). Odpovídají na otázku „je služba dostupná z pohledu uživatele?“
  • Whitebox: metriky z aplikací a infrastruktury (exportéry, integrace SDK). Umožňují analýzu root cause a plánování kapacity.

Architektura Promethea

  • Pull model: Prometheus periodicky stahuje metriky z exportérů přes HTTP endpoint /metrics.
  • Časové řady (TSDB): vysoce efektivní ukládání metrik s indexy a downsamplingem; retence podle potřeby.
  • Service discovery: dynamické vyhledávání cílů (Kubernetes, Consul, cloudoví poskytovatelé, statické cíle).
  • PromQL: dotazovací jazyk pro výpočty SLI, kvantily, rate a predikce saturace.
  • Alertmanager: směrování alertů, inhibition, grouping, deduplikace, tiché režimy, integrace (e-mail, Slack, PagerDuty).
  • Recording rules: předpočítané agregace pro vyšší výkon a konzistentní výpočty SLO.

Prometheus v praxi: exportéry a syntetická měření

  • Node Exporter pro metriky operačního systému (CPU, RAM, disk, síť).
  • Blackbox Exporter pro syntetická měření HTTP/TCP/ICMP a expiraci TLS certifikátů.
  • kube-state-metrics a cAdvisor pro Kubernetes (stav objektů, kontejnery, limity/requests).
  • DB exportéry (PostgreSQL, MySQL, Redis) a aplikační SDK (instrumentace pomocí knihovny).

Architektura Zabbixu

  • Zabbix server: centrální orchestrátor, výpočty triggerů, ukládání do SQL DB (MySQL/PostgreSQL/TimescaleDB).
  • Zabbix proxy: distribuovaný sběr metrik ve vzdálených lokalitách, odolnost vůči výpadkům konektivity.
  • Zabbix agent/agent2: aktivní i pasivní režim, sběr metrik operačního systému, logů, low-level discovery.
  • Šablony a LLD: předpřipravené objekty, automatická detekce rozhraní/disků/služeb.
  • Triggery a akce: výrazové podmínky, závislosti, eskalace, notifikace a automatické nápravné kroky.

Prometheus vs. Zabbix: kdy který nástroj

  • Prometheus: exceluje v prostředích cloud-native a Kubernetes, kde jsou cíle dynamické, metriky bohaté a pro SLO potřebujete PromQL.
  • Zabbix: vyniká v tradičním IT (servery, sítě, Windows/VMware, SNMP), nabízí bohatou autodetekci, šablony a centrální UI bez nutnosti dalších komponent.
  • Kombinace: Prometheus pro metriky a SLO, Zabbix pro inventář, SNMP, syntetická měření a taktické alerty; sjednocení vizualizace prostřednictvím Grafany.

Vizualizace a dashboardy

  • Grafana: standard pro vizualizaci Promethea i Zabbixu (zásuvné moduly datasource), podpůrné funkce (variables, repeat panels, alerting).
  • Zabbix UI: nativní mapy, widgety, panely SLA, problem view s historií a korelací.
  • Osvědčené postupy: přehledové panely NOC, podrobné zobrazení služeb, byznysové vs. technické pohledy, jasná legenda a prahové hodnoty.

Alerting: jak se vyhnout únavě z alarmů

  • Princip „méně a kvalitněji“: alerty pouze při dopadu na uživatele a kapacitních rizicích; varování oddělte od informačních metrik.
  • Alerting založený na SLO: upozorňujte na porušení SLO a rychlost čerpání error budgetu, nikoli na jednotlivé výkyvy.
  • Směrování a eskalace: různé kanály pro různé priority, quiet hours, pohotovostní rozpisy, automatické potlačování duplicit.
  • Runbooky: každý alert má návod k zásahu a odkazy na dashboardy a metriky.

Monitorování sítí: SNMP, NetFlow/sFlow a NPMD

  • SNMP: nativní podpora v Zabbixu, inventář zařízení, rozhraní, chybovost, teplota, napájení.
  • Toky: NetFlow/sFlow/IPFIX pro analýzu zátěže a anomálií.
  • Syntetická měření: měření jitteru a ztrát (ICMP/UDP), dohled nad SLA linek a VPN.

Logy a trasování: proč nestačí jen metriky

  • Logování: EFK/ELK (Elasticsearch/OpenSearch + Fluentd/Fluent Bit + Kibana), korelace s metrikami podle trace-id.
  • Distribuované trasování: OpenTelemetry SDK, Jaeger/Tempo/Zipkin pro trasování požadavků end-to-end a latenci závislostí.
  • Události: auditní logy, bezpečnostní události a jejich vazba na incidenty.

Monitorování Kubernetes a cloudů

  • Kubernetes: kube-state-metrics, cAdvisor, metriky API serveru a etcd; proby readiness/liveness/startup.
  • Cloudoví poskytovatelé: integrace s AWS CloudWatch, Azure Monitor, GCP Operations; ingest do Promethea/Grafany nebo Zabbixu.
  • Autoscaling: signály HPA/VPA z metrik (CPU, vlastní a externí metriky) a jejich dopad na SLO.

Windows, virtualizace a databáze

  • Windows: Zabbix agent/WMI/čítače WinPerf; Prometheus windows_exporter.
  • VMware/Hyper-V: šablony Zabbixu, vSphere/zabbix-vmware; exportéry Promethea.
  • Databáze: specializované metriky (zámky, poměr zásahů do buffer cache, replikační prodleva, dlouhé dotazy) a query sampling.

Plánování kapacity a optimalizace

  • Trendování: dlouhodobé metriky, sezónnost, predikce saturace (Holt-Winters, predict_linear v PromQL).
  • Cost observability: korelace výkonu a nákladů (export cloudového vyúčtování do metrik), rozpočty a alerty.
  • Right-sizing: identifikace nadměrně rezervovaných zdrojů (limit CPU vs. využití, rezerva diskových IOPS).

Procesy: řízení incidentů a post-mortem

  • Detekce → reakce → obnova: měřte MTTD/MTTR, definujte komunikační kanály a role.
  • Post-mortem bez hledání viníka: fakta, časová osa, dopad, kořenové příčiny, úkoly k nápravě, sledování jejich plnění.
  • Chaos engineering: řízené testy odolnosti, ověření alertů a runbooků.

Bezpečnost a compliance v monitoringu

  • Přístup: RBAC, oddělení rolí, auditní stopy, šifrování při přenosu i v klidu.
  • Expozice metrik: zabezpečte endpointy (mTLS, reverse proxy), filtrujte citlivá data.
  • Data retention: zásady uchovávání, anonymizace a mazání v souladu s regulací.

Referenční architektury

  • Cloud-native stack: Prometheus + Alertmanager + Grafana, centrální TSDB (Thanos/Cortex/Mimir) pro federaci a dlouhou retenci, Blackbox Exporter na okraji sítě, OpenTelemetry pro trasování, EFK pro logy.
  • Enterprise stack: Zabbix Server + Proxy (lokality/datacentra), TimescaleDB pro metriky, šablony pro operační systémy/sítě/hypervizory, SNMP discovery, syntetická měření HTTP/SIP, Grafana pro jednotné dashboardy.

Ukázky pravidel alertingu

  • Prometheus (SLO dostupnosti): míra chyb >= 1 % po dobu 5 min a čerpání error budgetu > 2 % za poslední den → page pohotovostní službě.
  • Zabbix (kapacita): volné místo na /var < 10 % po dobu > 15 min, závislost na alertu „zálohy běží“ pro potlačení falešných poplachů.

Antivzory a časté chyby

  • Přemíra metrik bez kurátorského výběru a bez vazby na dopad na byznys.
  • Alerty na každé varování místo přístupu založeného na SLO a korelaci.
  • Chybějící runbooky a eskalace – „co přesně mám dělat, když to pípne?“
  • Nesdílené dashboardy – každý tým má jiný pohled, chybí jednotné „single pane of glass“.

Jak začít a škálovat

  • Definujte SLI/SLO pro klíčové služby, vytvořte první dashboard SLO.
  • Zaveďte konzistentní export metrik a tagování/označování (služba, prostředí, verze, region).
  • Automatizujte nasazování monitoringu (Infrastructure as Code), policy-as-code pro alerty a SLO.
  • Iterujte: měsíční revize alertů, úkoly z post-mortemů, pravidelný úklid metrik.

Závěr

Spolehlivé monitorování stojí na jasně definovaných SLO, kombinaci metrik typu blackbox a whitebox, promyšleném alertingu a disciplinovaném řízení incidentů. Prometheus poskytuje silný základ pro metriky a SLO ve světě cloudu a Kubernetes, Zabbix exceluje v tradičním IT, síťové infrastruktuře a centralizaci dohledu. Vítězí kombinace nástrojů řízená daty, procesy a kulturou neustálého zlepšování.