Zabbix – komplexní řešení pro monitoring infrastruktury a aplikací

Proč Zabbix pro komplexní monitoring

Zabbix je otevřená platforma pro end-to-end monitoring infrastruktury, aplikací i obchodních služeb. Kombinuje sběr metrik agent/agentless, SNMP, IPMI, JMX, logy, syntetické testy, event processing, korelaci, root cause analýzu a automatizované notifikace s eskalacemi. Díky škálovatelné architektuře (proxy, poller procesy, history cache) a robustnímu API se hodí od malých instalací po globální prostředí s desítkami tisíc hostů.

Architektura a provozní topologie

  • Zabbix Server: jádro systému, odpovědné za plánování dotazů, evaluaci triggerů, ukládání historie a událostí, generování upozornění a integraci s externími médii.
  • Proxy: odlehčují centrální server; sbírají data v pobočkách či segmentech s omezenou konektivitou, ukládají do lokální databáze a periodicky je synchronizují. Umožňují offline buffering.
  • Agent/Agent2: běží na monitored hostech, poskytuje desítky key (CPU, disk, síť, procesy, logy), podporuje plug-iny (Docker, PostgreSQL, Nginx, Windows performance counters) a aktivní i pasivní režim.
  • Databáze: MariaDB/MySQL, PostgreSQL (doporučeno) případně TimescaleDB pro kompresi a partitioning trendů.
  • Frontend: webové uživatelské rozhraní, dashboardy, maps, topology, Business Service Monitoring (BSM) a konfigurace.

Model dat: položky, triggre, události a problémy

  • Items: definují zdroj a typ metrik (Zabbix agent, SNMP, HTTP, trapper, dependent, calculated, JMX, IPMI, script).
  • Preprocessing: parsování JSON/CSV/regex, převody jednotek, normalizace časových razítek, validace; discard unchanged with heartbeat pro úsporu zdrojů.
  • Triggers: logika stavu např. avg(/host/cpu.load,5m)>2, se závislostmi, hysterézí a prioritami. Výsledek generuje událost, která může přejít do stavu problem a následně ok.
  • Tags: klíčové pro směrování notifikací, korelaci a BSM; např. service=checkout, env=prod, region=eu.

Škálování: procesy, fronty a cache

  • Pollery, trappéry, alertery: horizontální škálování zvýšením počtu procesů; sledujte metriky busy % a latence.
  • Cache vrstvy: history cache, value cache, trend cache; zvyšujte velikost dle počtu cache misses.
  • Housekeeper: řízená retence historie, trendů, událostí a auditních záznamů; plánujte mimo špičku.
  • Proxy tiering: více úrovní proxy v rozsáhlých WAN; oddělení domén poruchy a sítí s vysokou latencí.

Šablony (Templates) a Low-Level Discovery (LLD)

  • Templates: znovupoužitelné sady položek, triggerů, grafů a applications; mapujte parametry přes makra (např. {$CPU.MAX}).
  • LLD: automaticky objevuje entity (disky, síťová rozhraní, služby, kontejnery, tabulky v DB) a generuje prototypy položek a triggerů.
  • Parametrizace: přenastavte prahy per host či skupinu pomocí {$THRESHOLD}-makeru a context macros.

Agent vs. agentless: kdy co použít

  • Agent(2): nízká latence, bohaté klíče, log monitoring, aktivní kontrola; ideální pro operační systémy a aplikace s plug-iny.
  • SNMP: síťové prvky, tiskárny, UPS; kombinujte s MIB a LLD tabulek; preferujte bulk dotazy.
  • JMX/IPMI: Java aplikace a serverový hardware (senzory, teploty, ventilátory).
  • HTTP agent: syntetické testy API, extrakce JSON a dohled SLA. Podporuje auth, hlavičky, TLS.
  • Trapper/sender: push metrik z CI/CD, aplikací a serverless funkcí (zabbix_sender).

Integrace s cloudy a kontejnery

  • Kubernetes: Zabbix Agent2 v DaemonSetu + plug-in Docker/K8s; LLD pro pods, services, nodes; metriky z cAdvisor či API serveru; mapování namespace na tagy.
  • Cloud zdroje: monitoring AWS/Azure/GCP přes HTTP agent (CloudWatch/Monitor/Cloud Monitoring API), external checks nebo integrační šablony; cost-aware polling (delší intervaly, caching tokenů).
  • Prometheus exportery: ingest přes HTTP agent a preprocessingu; nebo kombinace s Prometheem (federace) a zobrazení v Zabbix dashboardech.

Logy, syntetika a uživatelský pohled

  • Log monitoring: log[]/logrt[] s regexp filtry, offsety a detekcí patternů; tagujte severity z logu.
  • Syntetické testy: HTTP(S) scénáře, měření TTFB/latencí, ověřování kódů a obsahu; pro více kroků využijte web scenarios.
  • End-user experience: geodistribuované kontroly přes proxy v regionech; korelujte s backend metrikami.

Korelace, závislosti a redukce alert noise

  • Dependencies: definujte závislost edge → core → upstream (např. host vs. router vs. internet) pro potlačení kaskády alertů.
  • Event correlation rules: automatické ack duplicit, slučování periodicky se opakujících událostí, zkracování MTTR.
  • Multiple thresholds a hysteréze: zabrání flappingu (např. Problem při P95>300 ms, OK při P95<250 ms).

Notifikace, eskalace a runbooky

  • Media types: e-mail, SMS, chat (Slack, Teams), webhook na incident management (PagerDuty, Opsgenie, ServiceNow, Jira).
  • Eskalace: více úrovní dle času bez reakce, kalendářní okna (on-call rota), ztišení během údržby.
  • Auto-remediation: remote commands (restart služby, škálování), ověřené runbooky s bezpečnými proměnnými.

Business Service Monitoring (BSM)

  • Model služby: skládání technických signálů do obchodních služeb (např. Checkout) s váhami, dopady a SLA.
  • SLA/SLO reporting: výpočet dostupnosti, penalizační okna, měsíční a roční reporty, export do management nástrojů.
  • Mapy a závislosti: vizuální grafy služeb s indikací problémů a propagací stavu na „business“ úroveň.

Bezpečnost a přístup

  • Role-based Access Control (RBAC): granularita na skupiny hostů, hosty, dashboardy a akce; user roles a user groups.
  • Šifrování: TLS mezi serverem, proxy a agentem; ověřujte certifikáty a hostname.
  • Secret hygiene: makra s hesly ukládejte jako secret macros, auditujte přístupy a změny konfigurace.

Výkon DB: historie, trendy a retence

  • History vs. Trends: historie pro detailní granularitu (sekundy/minuty), trendy pro agregace (hodinové/denní). Nastavte retenci dle hodnoty dat.
  • Partitioning a komprese: TimescaleDB pro automatické chunky a kompresi starších trendů.
  • Optimalizace dotazů: indexy na events, acknowledges, history_uint/history; pravidelná údržba (VACUUM/ANALYZE).

Automatizace a API

  • JSON-RPC API: generativní správa hostů, šablon, hromadné aktualizace; napojení na CMDB a asset management.
  • Discovery a provisioning: síťové auto-discovery, SNMP bulk dotazy, pravidla pro automatické přiřazení šablon, skupin a proxy.
  • Infrastructure as Code: verziujte šablony a dashboardy (export YAML/JSON), CI pro validaci importů.

Praktické šablony a vzory

  • OS a hypervizory: Linux/Windows, VMware vSphere, Hyper-V, KVM; sledování CPU steal, I/O wait, latencí storage.
  • Databáze: PostgreSQL, MySQL, MS SQL – aktivní metriky (checkpoint, bloat, slow queries) a BSM metriky (aplikace P95/P99).
  • Web a API: Nginx/Apache, Node.js/Java; HTTP scénáře, chybovost 5xx, latence, pooly, GC, thread pools.
  • Síť: routovací tabulky, BGP/OSPF session, interface errors/discards, QoS a buffer occupancy.

Dashboards, vizualizace a mapy

  • Widgety: grafy, single value, top N, mapy, problem view, service health.
  • Role-specifické náhledy: NOC wall pro operátory, service view pro manažery, deep dive pro SRE.
  • Integrace s Grafana: datasource plugin a kombinace business metrik s telemetrií.

HA, zálohování a obnova

  • HA pro DB a server: PostgreSQL s replikací (Patroni, Stolon), Zabbix Server v aktivně-pasivním režimu za virtuální IP/load balancerem.
  • Zálohy: dump konfigurace (export), DB snapshoty, test obnovy do izolovaného prostředí; zachovejte proxy history pro re-synchronizaci.
  • DR testy: pravidelné cvičení, metriky RTO/RPO, dokumentované postupy.

Bezpečnostní a compliance monitoring

  • File integrity a audit: kontrola checksum kritických souborů, logins, sudo akcí; korelace s SIEM.
  • Certifikáty a expirace: HTTP agent kontroluje TLS expirace, CRL/OCSP dostupnost; trigger před koncem platnosti.
  • Konfigurační baseline: porovnání klíčových parametrů (sysctl, registry) a detekce driftu.

Best practices pro stabilní provoz

  • Oddělte produkční, staging a lab instance; export/import šablon přes verzovaný repozitář.
  • Nastavte retenci a housekeeping dříve, než se databáze zaplní; sledujte history cache a queue.
  • Standardizujte tagy, severities a názvosloví položek, aby routing a korelace byly deterministické.
  • Udržujte LLD filtry, aby se neobjevovaly efemérní entity (např. dočasné pods) bez přidané hodnoty.
  • Periodicky revidujte prahy pomocí percentilů (P95/P99), nikoli statických hodnot.

Typické chyby a jak se jim vyhnout

  • Příliš častý polling bez potřeby → zbytečná zátěž databáze a front; používejte heartbeat a discard unchanged.
  • Chybějící závislosti mezi triggery → alert storm při výpadku linky.
  • Neřízený růst log kontrol → fragmentace storage; konsolidujte a filtrujte.
  • Jedna masivní instance bez proxy → latence, výpadky při údržbě WAN; zaveďte proxy domény.
  • Makra s tajemstvími v prostém textu → používejte secret macros a RBAC.

Implementační checklist

  • Navržená topologie (server + proxy) a velikosti cache/procesů.
  • Vybraný databázový engine, retence a případně Timescale komprese.
  • Standard šablon, tagů, severit a pojmenování položek.
  • LLD pro klíčové technologie a filtry pro efemérní zdroje.
  • Notifikační media types, eskalace, on-call kalendáře.
  • BSM model a definice SLA/SLO.
  • Bezpečnost: TLS, RBAC, secret macros, audit.