Nový Zabbix 8.0 LTS je téměř zde!

Tomáš Heřmánek
22 min
Hodnocení:

Obsah aktuality

Verze Zabbix 8.0 je téměř zde!

Nová verze Zabbix 8.0 přinese řadu zajímavých novinek.

Kontaktuje nás pro konzultaci zdarma KONTAKTUJTE NÁS PRO KONZULTACI A UKÁZKU ZDARMA

Připravili jsme pro Vás tématické webináře

Přihlásit se na webináře

Školení pro poslední LTS verzi (Zabbix 7.0) VÍCE INFORMACÍ O ŠKOLENÍ
Můžete se také proklikat naším DEMO Zabbixem. Přihlášení proveďte pomocí tlačítka „sign in as guest„ PŘIHLÁSIT SE DO DEMO ZABBIXU

Nový korelační engine CEP (Complex Event Processing)

Jednou z hlavních novinek Zabbixu 8.0 je nový korelační engine CEP, tedy Complex Event Processing. Navazuje na dosavadní práci s událostmi, ale posouvá ji o úroveň dál: místo jednoduchého posuzování jednotlivých problémů umožňuje vyhodnocovat souvislosti mezi více událostmi, pracovat s časovým oknem, tagy, skupinami hostů a následnými operacemi.

V praxi to řeší jeden z nejčastějších problémů monitoringu. Jeden reálný incident často vygeneruje desítky až stovky událostí. Výpadek sítě, databáze, storage nebo centrální služby se může projevit na mnoha hostech a aplikacích najednou. Bez další logiky pak administrátor neřeší jeden incident, ale dlouhý seznam problémů, které spolu souvisí. CEP má pomoct z těchto událostí vytvořit srozumitelnější obraz.

Smyslem CEP není jen zobrazit, že vznikl problém. Cílem je umožnit nad proudem událostí dělat pokročilejší logiku: seskupovat související problémy, vyhodnocovat je v časovém okně, doplňovat jim tagy, měnit závažnost, potlačovat méně důležité události nebo rozlišovat mezi příčinou a následky.

Konfigurační pravidla najdete v Data collection > Event processing. Ve stejném seznamu jsou vedle nových CEP pravidel i původní event correlation pravidla, filtr Type je umí oddělit. Sloupec Info ukazuje chybu pravidla za běhu a tlačítko Reset time windows zahodí rozpracovaná časová okna po změně pravidla.

Event processing v Zabbixu s pravidly Complex Event Processing

Detail nastavení

Detail pravidla Complex Event Processing v Zabbixu 8.0

Na obrázku je detail CEP pravidla. V horní části se nastavuje, jaké eventy má pravidlo zachytit, uprostřed je logika časového okna a seskupování a ve spodní části jsou operace, které Zabbix nad odpovídajícími eventy provede.

  • Name je provozní identifikace pravidla. U větších instalací dává smysl do názvu dostat účel pravidla, například lokalitu, službu, typ incidentu nebo očekávaný výsledek korelace.
  • Type of calculationConditions tvoří vstupní filtr. Pravidlo může eventy vybírat podle Event name, Tag name, Tag value, Severity, Host, Host group a nově také Time period. Tag name a Tag value jsou samostatné podmínky s operátory Equals, Does not equal, ContainsDoes not contain, u severity je k dispozici Is more than or equal. V příkladu se pracuje s host group pro New York, tagem lokality a minimální severity. Právě tady se rozhoduje, které eventy se do korelační logiky vůbec dostanou.
  • Time window určuje režim zpracování v čase.
    • None znamená reakci bez časového okna.
    • Simple drží odpovídající eventy po dobu nastavenou v Duration.
    • Cause and symptoms grouping je určený pro vztah příčina versus symptomy.
    • Tag correlation páruje eventy podle tagů.
    • Pattern match vyhodnocuje vzor událostí. Vzor se popisuje JavaScriptem v poli Script, který má přístup k eventům v okně.
  • Duration definuje délku okna. Hodnota 10m znamená, že se související eventy sledují v desetiminutovém intervalu a mohou být vyhodnocené jako jeden korelační kontext. V poli lze použít i uživatelské makro.
  • Capacity omezuje počet eventů v okně. Přepínač Unlimited / Limited a číslo nebo makro určuje, kolik eventů se v okně drží. Po dosažení limitu je nejstarší event z okna vyřazen. Na takovou situaci pak mohou navazovat operace spouštěné při Event evicted, například změna severity nebo doplnění tagu.
  • Group by říká, jak se eventy uvnitř okna rozdělí do skupin. Jsou to tři nezávislé checkboxy Host group, HostTag, které jde kombinovat, a u tagů lze zadat více názvů najednou, například lokalitu a službu. U tagů je potřeba počítat s přesným názvem včetně velikosti písmen. U režimu Cause and symptoms grouping není Group by povinné.
  • Event count tag se používá u režimů, kde je důležitý počet souvisejících eventů. Výsledek se může propsat do tagu, takže je přímo u problému vidět rozsah korelace.
  • Operations jsou výstup pravidla. Tady se nastavuje, co má Zabbix s eventy udělat: přidat nebo upravit tag, změnit severity, potlačit symptom, změnit název eventu nebo jinak ovlivnit jeho další zpracování.
  • Stop after this rule zastaví vyhodnocování dalších CEP pravidel pro stejný event po zpracování aktuálního pravidla. To je důležité pro prioritizaci pravidel a pro situace, kdy jedno pravidlo incident jednoznačně klasifikuje.
  • Sort order určuje pořadí vyhodnocování. Nižší hodnota se zpracuje dříve, při shodě rozhoduje název pravidla, takže spolu se Stop after this rule umožňuje řídit prioritu celé korelační logiky.

Možnosti operací uvnitř CEP pravidla vypadají takto:

Popup Operation details v CEP pravidle Zabbixu 8.0

V dialogu Operation details se nejdřív nastavuje, kdy se má operace spustit (Execute when) a na které eventy se má vztahovat. Výběr eventů řeší vlastní blok Conditions se stejnou logikou jako u pravidla: And/Or nebo Custom expression a podmínky typu Tag name, Tag value, Problem is opened, Problem is symptom, First event in time window, Last event in time window, Problem is suppressedEvent is cloned. Stejná CEP logika tak může nad příčinou, symptomy nebo jen nad prvním eventem v okně provést jinou akci.

  • Event occurred se spustí ve chvíli, kdy do pravidla vstoupí nová odpovídající událost. Hodí se pro okamžité doplnění kontextu, například tagu nebo upraveného názvu.
  • Event added to window nastane až ve chvíli, kdy je event skutečně zařazen do časového okna. Od Event occurred se liší tím, že už jde použít podmínky First event in time windowLast event in time window.
  • Event evicted nastane, když událost z časového okna vypadne, například kvůli limitu kapacity nebo posunu času. Díky tomu lze odlišit eventy, které už do aktuální korelační skupiny nepatří.
  • Window closed se vyhodnotí při uzavření časového okna, tedy po době určené hodnotou Duration. To dává smysl pro akce, které mají proběhnout až po nasbírání celé skupiny eventů.
  • Pattern matched patří k režimu Pattern match, kde se vyhodnocuje vzor událostí skriptem. Typicky se používá ve chvíli, kdy nestačí samotný počet nebo společný tag, ale záleží i na posloupnosti nebo kombinaci eventů.

Spouštěče mají pevné pořadí Event occurred > Event added to window > Event evicted > Window closed > Pattern matched a operace v pravidle musí být takto seřazené. Které spouštěče jsou k dispozici, závisí na typu okna: u None je jen Event occurred, Pattern matched je jen u Pattern match. Podle spouštěče se mění i nabídka operací, například Discard jde použít jen při Event occurredPattern matched.

Spodní část Operation je samotná akce, kterou Zabbix nad vybranými eventy provede. Nejde tedy jen o filtr, který události najde, ale také o následné zpracování. Podle typu operace se vedle výběru akce zobrazí další pole, například nový název eventu, cílová severity, název tagu nebo hodnota tagu.

  • Set name přepíše název eventu, v hodnotě fungují makra. Praktické je to ve chvíli, kdy chcete z několika technických hlášek udělat čitelnější incidentový název.
  • CloseDiscard pracují s životním cyklem eventu. Jedna varianta event uzavře, druhá ho může vyřadit z dalšího zpracování, pokud už v daném korelačním kontextu nemá přinášet hodnotu.
  • Set severity, Increase severityDecrease severity umožňují upravit závažnost podle toho, co CEP zjistí. Samostatný problém může mít nižší prioritu, ale v kombinaci s dalšími eventy může jít o vážnější incident.
  • Suppress potlačí vybraný event, typicky symptom, který už nechcete ukazovat stejně výrazně jako pravděpodobnou příčinu. Nastavuje se buď Duration, nebo Indefinitely. Opačná operace Unsuppress potlačení zruší. Potlačení se zapisuje do historie eventu jako CEP akce.
  • Add tag, Set tagSet tag value doplní nebo upraví tagy. To je užitečné pro další filtrování, notifikace, dashboardy i návaznou automatizaci.
  • Increase tag valueDecrease tag value pracují s hodnotou tagu jako s čítačem nebo číselným kontextem, například pro počet souvisejících eventů v korelační skupině.
  • Rename tagRemove tag pomáhají normalizovat metadata eventů, aby se dál v Zabbixu pracovalo s jednotným názvoslovím.
  • Clone firstClone last vytvoří kopii první nebo poslední události v okně. Jsou k dispozici při Event evicted, Window closedPattern matched a dávají smysl tam, kde chcete z nasbírané skupiny vyrobit jeden souhrnný event.
  • Close (window) uzavře celé časové okno předčasně. Hodí se v Pattern match scénářích, kdy je vzor nalezen a není důvod čekat na vypršení Duration.
  • U režimu Cause and symptoms grouping Zabbix sám označí první event v okně jako příčinu a ostatní jako symptomy; v detailu eventu je pak vidět akce Set as symptom s odkazem na CEP pravidlo.

Příklad: incident v lokalitě New York

Pro představu si vezměme jednoduchý scénář: v lokalitě New York vznikne během krátké doby více problémů na edge gateway, databázovém clusteru a aplikačním serveru. Každý problém dává sám o sobě smysl, ale pro operátora je důležitější vědět, že pravděpodobně patří ke stejnému incidentu.

Před korelací

Pohled Problems v Zabbixu před korelací CEP

Bez korelace jde o běžný seznam problémů. Vidíme více událostí se společným kontextem, například site=nyc, region=us-east nebo podobné služby, ale Zabbix je v této podobě stále zobrazuje hlavně jako samostatné problémy. Operátor si vztah mezi nimi musí odvodit z názvů, hostů, severity a tagů.

  • problémy vznikly ve stejném časovém úseku,
  • část z nich má stejné lokalizační tagy, například site=nycregion=us-east,
  • některé události mohou být označené jako kandidáti pro další analýzu, například ai.candidate=yes,
  • bez další logiky ale není na první pohled jasné, co je hlavní příčina a co jsou jen následné symptomy.

Po korelaci

Pohled Problems v Zabbixu po korelaci CEP s root cause nahoře a otevřenými tagy

Po zpracování CEP pravidlem se události začnou chovat jako související skupina. V příkladu je databázový problém označený jako pravděpodobná příčina a ostatní problémy jsou vedené jako symptomy. V pohledu Problems je vidět také počet navázaných symptomů a výstupní tag cep.count=5, který dává informaci o rozsahu korelace přímo do metadat události.

  • Root cause zůstává viditelný jako hlavní problém, na který se má operátor zaměřit jako první.
  • Symptomy nezmizí, ale jsou svázané s hlavní příčinou. Dávají kontext, aniž by se tvářily jako samostatné incidenty stejné důležitosti.
  • Společné tagy, například cep.scope=nyc-outage-window, umožní pozdější filtrování, reporting nebo navázání notifikací a automatizace.
  • Count tag, například cep.count=5, ukazuje počet souvisejících symptomů nebo rozsah zasažené skupiny přímo v event datech.

Praktický dopad je v tom, že monitoring nepředkládá jen delší seznam jednotlivých problémů. Události dostanou kontext: co spolu pravděpodobně souvisí, co vypadá jako příčina, které problémy jsou následky a jak velká skupina událostí do incidentu patří.

CEP proto vnímáme jako jednu z hlavních změn Zabbixu 8.0. Nejde o náhradu dosavadní práce s problémy, ale o novou úroveň event managementu: Zabbix může nad událostmi udržovat kontext, spojovat je do souvisejících skupin a automaticky doplňovat informace, které administrátor jinak hledá ručně.

Z provozního pohledu: časová okna se ukládají do databáze a přežijí restart serveru, CEP má vlastní workery s interním itemem pro statistiky a sekcí v diaginfo, a v API přibylo cep_ruleid ve výstupu event.getproblem.get. Změny provedené CEP se ukazují v historii eventu jako samostatný typ akce.

Původní global event correlation pravidla v rozhraní zůstávají, ale jsou vedená jako legacy/deprecated cesta vedle nového CEP. Prakticky to znamená, že stávající pravidla nezmizí, ale nový vývoj směřuje k části Event processing a CEP.

Mobilní aplikace Zabbix a push notifikace

Zabbix 8.0 přináší oficiální mobilní aplikaci a k ní nový typ media type Push. Notifikace o problémech tak chodí přímo do telefonu, bez e-mailu, SMS brány nebo webhooku třetí strany. Na straně serveru je to nová infrastruktura: správa spárovaných zařízení, oprávnění v user roles a šifrovaný kanál mezi serverem a aplikací.

Jak to funguje

Zabbix server neposílá push zprávy přímo. Mezi serverem a mobilní platformou stojí Bridge Adapter, samostatná služba s JSON-RPC rozhraním přes HTTP(S), na kterou se server obrací při párování zařízení (device.init) i při každé notifikaci (device.notify). Server jí předává události problem.created, problem.updatedproblem.resolved včetně severity, priority, titulku a těla zprávy.

Bridge Adapter není součástí instalace Zabbix serveru a ve zdrojových kódech Zabbixu žádná jeho implementace není, server dostane jen jeho URL. Zabbix mobilní aplikaci prezentuje jako „integrated with Zabbix Cloud“, takže je pravděpodobné, že adapter bude služba provozovaná Zabbixem (podobně jako proxy v Zabbix Cloud), ne komponenta, kterou si nasadíte sami. Jestli a za jakých podmínek bude dostupný pro on-premise instalace, Zabbix zatím nezveřejnil.

Obsah notifikace je šifrovaný pro konkrétní zařízení. Každý telefon má při párování vygenerovaný vlastní šifrovací klíč, bridge adapter vidí jen zašifrovaný payload a nevidí text problému. Přihlašování aplikace k API používá DPoP tokeny (proof-of-possession, podpis ES256) s ochranou proti opakovanému použití, takže odcizený token bez klíče zařízení nejde zneužít.

Konfigurace serveru

Celá funkce je ve výchozím stavu vypnutá. Zapíná se v zabbix_server.conf:

EnableMobileDevices=1
BridgeAdapterURL=https://bridge-adapter.example.com:10005/rpc
# volitelně: připojit se jinam, než říká URL (např. přes tunel)
BridgeAdapterConnectTo=127.0.0.1:10054

Dokud je EnableMobileDevices=0, položky Devices se ve frontendu vůbec nezobrazí a API metody device.* nejsou dostupné. Bez dostupného bridge adapteru párování skončí chybou Cannot initialize mobile device, cannot connect to bridge-adapter.

Párování zařízení

Uživatel si telefon přidá sám v User settings > Devices > Add device. Frontend vygeneruje QR kód s platností 10 minut (odpočet běží přímo v dialogu), aplikace ho naskenuje a zařízení se po dokončení objeví v seznamu jako Active. Žádné ruční opisování adres serveru nebo API tokenů.

Zabbix 8.0 - dialog Add device s QR kódem pro spárování mobilní aplikace

QR kód je deep link zabbix://v1/link_device a nese vše, co aplikace k párování potřebuje: identifikátor a název Zabbix serveru, ID zařízení, adresu bridge adapteru, dva jednorázové enrollment tokeny (pro Zabbix a pro bridge) a veřejný klíč adapteru. Identifikátor serveru je nová Zabbix server ID viditelná v System information, takže aplikace umí rozlišit více Zabbixů.

Administrátor má přehled všech zařízení v Users > Devices: název, Device ID, uživatel, role, kdy bylo spárováno a kdy bylo naposledy aktivní. Stavy jsou New (vygenerovaný QR, ještě nenaskenovaný), ActiveOrphaned. Zařízení jde filtrovat podle uživatele, role nebo skupiny a odebrat; administrátor může QR vygenerovat i za jiného uživatele.

Zabbix 8.0 - seznam Users > Devices se zařízením ve stavu New“ class=“wp-image-26904″/></a></figure>
<h3 class=Oprávnění

V user roles přibyla samostatná sekce Devices: zapnutí funkce pro roli, akce Manage own devicesManage user devices a výchozí přístup k nově přidaným akcím. Vedle toho je v UI elementech nová položka Users > Devices. Lze tak například povolit push notifikace všem, ale správu cizích zařízení nechat jen helpdesku.

Zabbix 8.0 - sekce Devices v user role

Media type Push

Nový typ media type Push stojí vedle Email, SMS, Script a Webhook. Formulář je minimální: název, typ a popis, k tomu indikátor Bridge adapter connection, který rovnou ukáže, jestli server adapter má nakonfigurovaný. Výchozí šablony zpráv pro problém, recovery a update vypadají například {HOST.NAME} - {EVENT.NAME}[RESOLVED] {HOST.NAME} - {EVENT.NAME}, makra fungují jako u ostatních typů.

Zabbix 8.0 - media type Push s indikátorem Bridge adapter connection

U uživatele se pak médium nastavuje jako obvykle, jen Send to není adresa, ale volba Active devices (všechna aktivní zařízení uživatele) nebo Selected devices. Akce a eskalace se konfigurují stejně jako u jiných media typů, push je jen další krok v eskalaci.

Zabbix 8.0 - uživatelské médium typu Push s volbou Active devices / Selected devices

Co to znamená v praxi

Pro menší týmy je to první cesta k notifikacím na mobil bez placené SMS brány nebo externí služby. Pro větší prostředí je důležité, že párování je samoobslužné, zařízení jsou centrálně vidět a dají se odebrat, a že obsah notifikací neopouští Zabbix v čitelné podobě. Mobilní aplikace je pro Zabbix nová oblast, takže s ní počítejte spíš jako se základem, který se bude v 8.0.x dál rozvíjet.

Nový vzhled: téma Dark blue, písmo Inter a zaoblené rozhraní

Zabbix 8.0 je první verze po dlouhé době, která mění nejen funkce, ale i to, jak rozhraní vypadá. Změny jsou tři: nové barevné téma Dark blue, nové písmo vložené přímo do frontendu a modernizované komponenty se zaoblenými rohy a lepší přístupností. Nic z toho nemění rozložení stránek, administrátor se orientuje stejně jako v 7.x.

Téma Dark blue

Vedle stávajícího Dark přibývá Dark blue: tmavě modrý podklad (#001F42), modré akcenty (#004FA8) a světlý text, navržené tak, aby na velkých obrazovkách v dohledovém centru neoslňovalo, ale zůstalo čitelnější než čistě černé téma. Má vlastní paletu i pro klasické grafy, takže barvy křivek sedí s pozadím.

Dashboard Zabbix 8.0 v tématu Dark blue
Seznam hostů Zabbix 8.0 v tématu Dark blue

Vlastní písmo místo systémového

Frontend nově nese vlastní písmo Inter (variabilní font, včetně kurzívy) a pro japonštinu, korejštinu, čínštinu, gruzínštinu a hebrejštinu Noto Sans. Zabbix tak vypadá stejně na Windows, macOS i Linuxu a nezávisí na tom, jaké fonty má prohlížeč k dispozici. Spolu s tím prošly úpravou formuláře, kde delší texty dřív přetékaly (grafový widget, preprocessing, setup wizard).

Kdo chce zůstat u původního vzhledu, má k dispozici témata Blue (classic)Dark (classic) s dosavadní sadou písem. Seznam témat je tedy: Blue, Blue (classic), Dark, Dark (classic), High-contrast light, High-contrast dark a nově Dark blue.

Výběr tématu v profilu uživatele Zabbix 8.0 včetně Dark blue

Modernizované rozhraní

Vstupní pole, tlačítka, tabulky, filtry, záložky i dashboardové widgety dostaly jednotné zaoblení rohů a upravené okraje. Na první pohled drobnost, v součtu ale rozhraní působí lehčeji a jednotněji. Srovnání stejné obrazovky v 7.4 a 8.0:

Srovnání formuláře GUI nastavení v Zabbix 7.4 a 8.0
Srovnání filtru hostů v Zabbix 7.4 a 8.0

Druhá část modernizace je přístupnost: odkaz Skip to main content pro ovládání z klávesnice (objeví se po stisku Tab), lepší zvýraznění fokusu a opravené kontrasty. Vybraná textová pole se navíc automaticky zvětšují podle obsahu (názvy, výrazy, popisy), takže se dlouhé hodnoty nemusí procházet v jednořádkovém políčku.

Odkaz Skip to main content v Zabbix 8.0

Drobnosti, které s tím souvisí: tooltipy a hintboxy jdou přetáhnout myší jinam, když překrývají to, co potřebujete vidět; automatické spouštění slideshow dashboardů je nově vypnuté a ovládá se parametrem v URL; a většina konfiguračních formulářů běží v modálních oknech s inline validací, takže chyba se ukáže rovnou u pole, ne až po uložení.

Co to znamená v praxi

Pro uživatele je to hlavně jistota, že Zabbix vypadá všude stejně a že se s ním dá pohodlně pracovat i z klávesnice. Pro firmy, které mají vlastní branding frontendu (logo, barvy přes brand.conf.php), se nic nemění, mechanismus zůstává. Pokud máte vlastní moduly nebo widgety s vlastním CSS, počítejte s kontrolou na nových tématech, hlavně na Dark blue a classic variantách.

APM a OpenTelemetry: traces, metriky a logy přímo v Zabbixu

Největší architektonická novinka 8.0 se dá shrnout jednou větou: Zabbix začíná přijímat OpenTelemetry data. Aplikace instrumentované OTel SDK nebo OpenTelemetry Collector posílají traces, metriky a logy přímo do Zabbix proxy, ta je ukládá do ClickHouse a frontend je umí procházet i z nich počítat klasické itemy. Zabbix tím vstupuje do oblasti APM (Application Performance Monitoring), kde dosud bylo potřeba sáhnout po Jaegeru, Tempu nebo komerčních nástrojích.

Skládá se to ze tří částí, které dohromady tvoří jeden řetězec:

  • Sběr: OTLP/gRPC collector v Zabbix proxy (port 4317, jako u každého OTel exporteru).
  • Prohlížení: nová sekce hlavního menu APM s pohledy Traces, Metrics a Logs nad globálním APM datovým zdrojem.
  • Zpracování: nový typ itemu Telemetry query, který z telemetrických dat dělá hodnoty pro triggery, grafy a dashboardy.

Sběr: OpenTelemetry collector v Zabbix proxy

Příjem OTel dat je záležitost výhradně proxy. Zabbix server žádný collector nemá a v zabbix_server.conf pro něj nejsou žádné volby; i v prostředí, kde jste dosud proxy nepotřebovali, tedy pro APM jednu nasadíte. Proxy dostává nový proces APM collector s OTLP/gRPC rozhraním a zapisuje přijatá data do ClickHouse, který je zároveň úložištěm pro nový history backend z 8.0. Konfigurace je v zabbix_proxy.conf:

StartAPMCollectors=1
APMListenIP=0.0.0.0
APMListenPort=4317
TelemetryProvider=clickhouse;url=http://clickhouse:8123,db=zabbix,username=zabbix,password=zabbix
# TLS pro OTLP klienty: APMTLSCAFile, APMTLSCertFile, APMTLSKeyFile

Heslo k ClickHouse jde místo do souboru uložit do HashiCorp Vaultu (vault_path=), stejně jako u databáze serveru. Proxy se buildí s podporou gRPC a protobuf, což je nová závislost, kterou balíčky přinesou s sebou.

Ve frontendu má proxy nový tab APM rozdělený na dvě části. Input: přepínač Data collection enabled a limit Max messages per second (Unlimited / Custom), aby jedna upovídaná aplikace nezahltila úložiště. Process: tabulka Add resource attributes, tedy atributy, které proxy doplní ke všem přijatým datům (například prostředí nebo lokalita), aniž by se musely nastavovat v každé aplikaci. Pokud proxy nemá collector v konfiguračním souboru zapnutý, frontend na to upozorní přímo ve formuláři.

Zabbix 8.0 - tab APM ve formuláři proxy (OpenTelemetry collector)

Prohlížení: Traces, Metrics a Logs

V hlavním menu přibývá hned pod Monitoring nová sekce APM se třemi pohledy. Traces filtruje podle Trace ID, Span ID, názvu služby a operace, scope, délky trvání (min/max), stavu (Ok / Error / Unset) a libovolných atributů s logikou And/Or a vypisuje spany s časem startu, atributy a dobou trvání. Na snímcích níže je seznam spanů z testovacího e-shopu a stejný pohled zúžený na pomalá volání platební brány. Logs hledá v těle záznamu, podle severity (Trace až Fatal) a atributů a přes Trace ID / Span ID propojí log se související trace. Metrics filtruje metriky podle názvu, typu, služby a scope. Všechny tři pohledy používají stejný časový výběr jako zbytek Zabbixu.

Zabbix 8.0 - pohled APM > Traces se spany služeb frontend, checkout, payment a inventory“ class=“wp-image-26932″/></a></figure>
<figure class=Zabbix 8.0 - APM > Traces s filtrem Service name = payment a Min. duration = 1s (pomalá volání platební brány)“ class=“wp-image-26934″/></a></figure>
<p class=Pohledy čtou z globálního APM datového zdroje, který se nastavuje v Administration > Data source > APM: typ databáze (ClickHouse), URL, přihlášení (jméno a heslo, nebo bez autentizace), název databáze a u HTTPS ověření certifikátu a hostname. Je to stejný ClickHouse, do kterého zapisuje proxy, jen z pohledu frontendu; data jsou ve standardních tabulkách OpenTelemetry ClickHouse exporteru (otel_traces), takže se dají číst i jinými nástroji.

Zabbix 8.0 - nastavení globálního APM datového zdroje (ClickHouse)

Zpracování: item typu Telemetry query

Nový typ itemu Telemetry query spojuje svět OTel s klasickým Zabbixem. Místo klíče se skládá dotaz: kategorie (Traces, Metrics, Logs), u metrik typ bodů (Sum, Gauge, Histogram, Exponential histogram), sloupce, které se mají číst, agregované sloupce s funkcí a aliasem a podmínky nad atributy s logikou And/Or nebo vlastním výrazem. Tři časové parametry určují, jak se dotaz vyhodnocuje: Granularity (velikost agregačního bucketu), Time shift (posun okna zpět) a Lookback limit (jak daleko do minulosti dohledávat chybějící data).

Zabbix 8.0 - item typu Telemetry query

Výsledek je obyčejná hodnota itemu, takže nad ní fungují triggery, grafy, dashboardy i eskalace. Typický příklad: 95. percentil doby odpovědi služby checkout za posledních 5 minut jako numerický item s triggerem na překročení 800 ms. Zabbix server (nebo proxy) k tomu potřebuje vlastní TelemetryProvider v konfiguraci a pro tyto dotazy má samostatný timeout timeout_telemetry_query.

Ukázka: od traces k triggeru

Vyzkoušeli jsme celý řetězec na testovací instalaci: do ClickHouse tečou traces fiktivního e-shopu (služby frontend, checkout, payment, inventory) ve formátu OpenTelemetry ClickHouse exporteru a Zabbix server nad nimi počítá Telemetry query itemy. Item pro 95. percentil latence služby checkout vypadá takto: kategorie Traces, agregované sloupce percentile(Duration, 95), avg(Duration)count, podmínka ServiceName equals checkout, granularita 1 minuta, interval 30 s.

Zabbix 8.0 - vyplněný item typu Telemetry query: p95 latence služby checkout

Server dotaz přeloží do ClickHouse SQL a vrátí jednu hodnotu za bucket jako JSON, například {"columns":{"p95":217264910,"avg":186257520,"cnt":29}} (Duration je v nanosekundách). Zbytek je klasický Zabbix: preprocessing JSONPath $.columns.p95Custom multiplier 1.0E-6 udělají z hodnoty milisekundy, item má jednotku ms. Stejným způsobem vznikly itemy pro průměrnou latenci, počet požadavků za minutu, p95 platební brány a počet HTTP 5xx chyb na /api/checkout (podmínka nad SpanAttributes s klíčem http.route).

Zabbix 8.0 - preprocessing Telemetry query itemu: JSONPath a Custom multiplier
Zabbix 8.0 - Latest data s hodnotami Telemetry query itemů v milisekundách

Nad itemy fungují triggery jako u čehokoli jiného: last(/Zabbix server/apm.checkout.latency.p95)>800 hlídá latenci, last(/Zabbix server/apm.checkout.errors)>=3 počet chyb za minutu. Když se v testovacím provozu zvedla chybovost platební brány, trigger vystřelil a v Problems je problém s tagy service: checkout, ze kterých se dá rovnou skočit do filtru v pohledu Traces.

Zabbix 8.0 - graf p95 latence z Telemetry query itemů s linkou triggeru
Zabbix 8.0 - Problems s triggerem nad Telemetry query itemem

Co to znamená v praxi

Pro týmy, které už mají aplikace instrumentované OpenTelemetry, znamená 8.0 možnost mít infrastrukturní monitoring a APM v jednom nástroji, se stejnými uživateli, oprávněními a notifikacemi. Počítejte s tím, že to přináší nový povinný stavební kámen, ClickHouse, a s tím i nároky na disk a provoz. Rozumný začátek je jedna proxy s collectorem pro jedno prostředí a několik Telemetry query itemů na klíčové služby; pohledy Traces a Logs pak slouží k dohledání příčiny, když trigger vystřelí.

Bezpečnost a řízení: Vault AppRole, feature flags, API vypnuté ve výchozím stavu

Zabbix 8.0 přináší několik změn, které nejsou vidět na dashboardu, ale zajímají každého, kdo Zabbix provozuje pro víc týmů nebo zákazníků: bezpečnější výchozí nastavení (API vypnuté v rolích, žádné staré protokoly na trapperu), lepší práci se secrets (HashiCorp Vault AppRole) a nástroje, jak instalaci osekat na to, co administrátor opravdu chce povolit (feature flags, regulární výrazy pro klíče agentů, omezení uživatelů na konkrétní proxy).

HashiCorp Vault: AppRole místo tokenu

Přihlášení do HashiCorp Vaultu dosud vyžadovalo statický token v konfiguraci serveru i frontendu. 8.0 přidává AppRole: server dostane VaultAppRoleIDVaultAppSecretID, frontend $DB['VAULT_APP_ROLE_ID']$DB['VAULT_APP_SECRET_ID'], a token si vyžádá sám. Pro bezpečnostní tým to znamená standardní způsob, jak Zabbixu vydat identitu s omezenou politikou a rotovat secret ID, místo dlouhodobě platného tokenu v souboru.

### zabbix_server.conf
Vault=HashiCorp
VaultURL=https://vault.example.com:8200
VaultDBPath=secret/zabbix/db
VaultAppRoleID=8a1c2f7e-0b3d-4c5e-9f10-1a2b3c4d5e6f
VaultAppSecretID=...

Instalační průvodce frontendu má v kroku Configure DB connection nový přepínač Vault authentication type: Token / AppRole. Stejná volba platí i pro heslo k ClickHouse u APM datového zdroje (vault_path=TelemetryProvider).

Zabbix 8.0 - instalační průvodce, HashiCorp Vault s autentizací AppRole

API vypnuté ve výchozím stavu

Nové uživatelské role mají Access to API vypnutý, a to pro všechny typy rolí včetně Super admin. Kdo API potřebuje (integrace, skripty, náš Zabbix MCP server), musí ho v roli zapnout a ideálně rovnou omezit allow listem metod. Stávající role při upgradu zůstávají, jak jsou, změna se týká rolí vytvořených v 8.0. Je to konec doby, kdy měl každý účet s heslem automaticky i plný programový přístup.

Zabbix 8.0 - sekce Access to API v user role s vypnutým přístupem

Feature flags: co v instalaci vůbec nesmí být

Do zabbix.conf.php přibývá pole $ZBX_FEATURE_FLAGS, kterým se na úrovni systému vypnou celé funkce frontendu, bez ohledu na oprávnění uživatelů:

$ZBX_FEATURE_FLAGS['modules_config_enabled'] = false;   // žádné moduly a&nbsp;widgety třetích stran
$ZBX_FEATURE_FLAGS['http_auth_enabled'] = false;        // zákaz HTTP autentizace
$ZBX_FEATURE_FLAGS['media_type_denylist'] = ['script', 'webhook'];  // zákaz editace vybraných media typů
$ZBX_FEATURE_FLAGS['banners_enabled'] = false;          // bez informačních bannerů

Po vypnutí modulů zmizí položka Administration > General > Modules a nikdo, ani Super admin, ji přes UI nezapne. Zamýšlené použití je zřejmé: managed a regulovaná prostředí, kde má o rozsahu instalace rozhodovat provozovatel, ne každý administrátor zvlášť.

Zabbix 8.0 - menu Administration > General bez položky Modules po nastavení feature flagu“ class=“wp-image-26950″/></a></figure>
<figure class=Zabbix 8.0 - přímý přístup na stránku Modules s vypnutým feature flagem končí Access denied

Trapper bez starých protokolů a regulární výrazy pro klíče agentů

Trapper serveru a proxy přestal přijímat starší, ne-JSON varianty protokolu z dob před Zabbixem 4.x. Kdo má někde zapomenutého velmi starého agenta nebo vlastní skript, který posílá data v původním textovém formátu, musí ho před upgradem převést na JSON protokol; vše novější se nemění.

V konfiguraci agenta (i agenta 2) přibývají AllowKeyRegexpDenyKeyRegexp. Dosud šlo klíče povolovat jen zástupnými znaky, teď jde napsat pravidlo jako PCRE2 výraz, který musí odpovídat celému klíči. Všechna pravidla AllowKey, DenyKey, AllowKeyRegexpDenyKeyRegexp se skládají do jednoho seznamu v pořadí, v jakém jsou v souboru, a rozhoduje první shoda:

AllowKeyRegexp=^vfs\.fs\.(size|inode)\[/(var|opt)(/[^,]*)?,.*\]$
DenyKey=system.run[*]

Omezení uživatelů na konkrétní proxy

Pro poskytovatele služeb, kteří na jednom Zabbixu obsluhují více zákazníků, je určený Proxy access list v uživatelské skupině: seznam proxy a proxy skupin (allow nebo deny), ke kterým smí uživatelé skupiny přiřazovat hosty a které vidí v discovery. Nově vytvořené skupiny mají výchozí režim allow list, takže bez explicitního povolení uživatel na cizí proxy nedosáhne; hosty monitorované nepřístupnou proxy vidí jako Inaccessible proxy.

Zabbix 8.0 - tab Proxy access list v uživatelské skupině

Identita serveru

Každý server má nově Zabbix server ID (UUID), zobrazené v System information spolu s tlačítkem Export, které vyexportuje přehled systému včetně HA uzlů. ID používá mobilní aplikace k rozlišení instancí a hodí se všude tam, kde se sbírají informace z více Zabbixů, například v supportu nebo v inventáři.

Zabbix 8.0 - System information se Zabbix server ID a tlačítkem Export

Co to znamená v praxi

Před upgradem projděte role a integrace, které API používají, a připravte allow listy metod. Zvažte přechod Vault tokenu na AppRole, u agentů převeďte složité AllowKey masky na regulární výrazy a v prostředích s více týmy nastavte feature flags a proxy access listy dřív, než uživatelé začnou instalaci osidlovat.

Údržby a suppression: ad-hoc údržba z problému, potlačení zapsané v události

Údržby v Zabbixu dosud znamenaly plánování: dopředu založit maintenance na skupinu hostů, nastavit okno a doufat, že nikdo nezapomene. Zabbix 8.0 přidává druhou cestu, ad-hoc údržbu spuštěnou přímo z problému na pár kliknutí, rozšiřuje cíle údržby o triggery a názvy událostí a hlavně zapisuje potlačení údržbou do historie události, takže otázka „proč mi nepřišla notifikace“ má konečně odpověď v UI.

Ad-hoc údržba přímo z Problems

Kontextové menu problému má novou sekci Maintenance se čtyřmi volbami: Suppress host, Suppress trigger, Suppress by event nameSuppress by tags. Každá otevře formulář údržby už předvyplněný podle vybraného problému: název Ad-hoc: název události, začátek teď, konec za výchozí periodu a jako cíl host, trigger, název události nebo tagy problému. Stačí zkontrolovat a uložit.

Zabbix 8.0 - kontextové menu problému se sekcí Maintenance
Zabbix 8.0 - předvyplněná ad-hoc údržba s triggerem a podmínkou na název události

Stejný odkaz Suppress trigger je i v dialogu Update problem, a při hromadné aktualizaci více problémů se z něj stane Suppress triggers s odpovídajícím počtem triggerů. Délku okna určuje nové pole Default maintenance period v profilu uživatele (výchozí 1 hodina), takže operátor, který typicky řeší incidenty do 30 minut, si nastaví 30m a ad-hoc údržba se za něj nikdy nezapomene ukončit. Volby se zobrazí jen uživatelům, kteří mají v roli povolené vytváření údržeb a mají editační práva na daný host nebo trigger.

Zabbix 8.0 - dialog Update problem s odkazem Suppress trigger
Zabbix 8.0 - profil uživatele s polem Default maintenance period

Údržba na trigger a na název události

Formulář údržby má vedle skupin a hostů nový cíl Triggers a novou podmínku Event name (Contains / Does not contain). Operátory tagů se rozšířily o Does not equalDoes not contain. Dá se tak potlačit jen jeden konkrétní trigger na hostu, u kterého se čeká na výměnu disku, a zbytek monitoringu nechat běžet, nebo potlačit všechny problémy s „certificate expires“ v názvu napříč hosty, dokud se nevyřídí obnova certifikátů. V API k tomu patří parametry triggeridsevent_namesmaintenance.create / maintenance.updateselectTriggers, selectEventNamesmaintenance.get:

{
  "jsonrpc": "2.0",
  "method": "maintenance.create",
  "params": {
    "name": "Ad-hoc: certificate renewal",
    "active_since": 1788080400,
    "active_till": 1788084000,
    "groupids": ["2"],
    "event_names": [{"operator": 2, "value": "certificate expires"}],
    "timeperiods": [{"timeperiod_type": 0, "period": 3600}]
  },
  "id": 1
}

Potlačení údržbou je vidět v historii události

Doteď údržba problém tiše skryla a po jejím skončení nezbyla žádná stopa, proč konkrétní událost nevyvolala akci. Server v 8.0 zapisuje každé potlačení i odpotlačení údržbou jako záznam v historii události, spolu s údržbou, která ho způsobila, a časem, do kdy potlačení platilo. V Event details se objeví v sekci Actions jako ikona přeškrtnutého oka s nápovědou Suppressed till … / Maintenance: …, po skončení údržby přibude Unsuppressed by maintenance. Stejná informace je v API: event.getselectAcknowledges vrací záznamy s action 512 (potlačeno) nebo 1024 (odpotlačeno), maintenanceidsuppress_until. Součástí změny je i přesnější zpracování překrývajících se údržeb a úprav běžící údržby.

Zabbix 8.0 - Event details se záznamem Suppressed by maintenance

Podmínka Proxy group v discovery a autoregistraci

Akce síťového discovery a autoregistrace mají nový typ podmínky Proxy group (equals / does not equal). Kdo provozuje proxy skupiny per lokalita nebo per zákazník, může teď napsat akci „hosty přihlášené přes skupinu DC Prague zařaď do skupiny Prague a přilinkuj šablonu X“ bez vyjmenovávání jednotlivých proxy, a při přidání proxy do skupiny se nic nemusí měnit. Zároveň byla opravena podmínka Proxy v autoregistraci tak, aby se chovala stejně jako v discovery.

Zabbix 8.0 - podmínka Proxy group v discovery akci

Co to znamená v praxi

Nastavte uživatelům rozumnou Default maintenance period a naučte operátory používat Suppress trigger místo vypínání triggerů, které se pak zapomenou zapnout. Při auditu incidentů si zvykněte otevřít Event details: záznam o potlačení údržbou je nový zdroj pravdy pro otázku, proč se neposlal alert. A v prostředích s proxy skupinami přepište discovery a autoregistrační akce z výčtu proxy na podmínku Proxy group.

Widget Scatter plot

Jednoduše: vezmete dvě metriky (X a Y osa) a Zabbix vám pro každý host/časový úsek vykreslí body. Na jeden pohled tak uvidíte korelaci (nebo naopak její chybění), shluky problémových strojů a anomálie, které v klasickém časovém grafu snadno zaniknou.
Přínosy

  • Vztahy metrik: např. „když roste CPU, roste i RAM?“
  • Outliery: rychlá detekce vyčnívajících serverů.
  • Vizuální triáž: okamžitá priorita, kam se dívat.

Jak funguje

  • Datasety: více sad; každá má X‑Axis item a Y‑Axis item.
  • Filtrování hostů: Host patterns / Host groups / Host tags.
  • Agregace: Aggregation interval (např. 1m) + funkce (např. avg) → jeden bod/okno.
  • Vzhled: volba markeru a velikosti; tooltips s hodnotami; time shift pro srovnání období.

Prahy (thresholds)

Kombinované podmínky pro X a Y mění barvu bodu, např. X ≥ 5 AND Y ≥ 36. Více pravidel = více barev → anomálie jsou okamžitě viditelné. (Na obrázku)

Příklady scénářů

  • CPU load vs. Memory usage
    Osa X: průměrné zatížení CPU
    Osa Y: procento obsazené RAM
    → Hned vidíte, jestli hosty s vysokým CPU mají i vysokou RAM zátěž. Skvělá první diagnostika „CPU bound“ vs. „RAM bound“.
  • Disk usage vs. I/O latency
    Osa X: procento využití disku
    Osa Y: odezva (ms)
    → Odhalí servery s přetíženým storage. Kombinace vysoké využití + vysoká latence je červená vlajka pro I/O.
  • Network traffic vs. Error rate
    Osa X: odchozí / příchozí traffic (bps)
    Osa Y: chybovost (dropped packets, errors)
    → Najdete stroje, které sice nemají velký provoz, ale mají hodně chyb – typicky špatné linky, duplex, MTU, driver.
  • Response time vs. Availability (služby / aplikace)
    Osa X: průměrný response time (ms)
    Osa Y: procento dostupnosti (%)
    → Rozliší „pomalé, ale stabilní“ vs. „rychlé, ale nespolehlivé“ služby. Strategický pohled pro prioritizaci práce týmu.

ClickHouse backend a výrazná vylepšení pro Elastic

Velkou novinkou je podpora ClickHouse databáze jako volitelného úložiště pro historická data. Hlavní motivací je bezesporu propojení s novou podporou JSON typu dat – právě u takového objemu a struktury dat dává analytický backend typu ClickHouse perfektní smysl.

Koncept i konfigurace jsou velmi podobné tomu, co už řada z vás zná z volitelného napojení na Elastic. Zabbix tak může historická data ukládat do alternativního backendu bez zásahu do základní architektury. Do ClickHouse lze ukládat všechna historická data kromě typu BIN, což pokrývá drtivou většinu běžných i pokročilých use-casů.

Velkou výhodou je, že nastavení lze kombinovat i s Elasticem a (nově) i s ClickHouse a rozdělit typy dat podle toho, kde dávají největší smysl – při zachování PostgreSQL jako primárního backendu pro většinu standardní historie.

Typický scénář může být například:

  • LOG / TEXT / CHAR → Elastic(kvůli vyhledávání, fulltextu, práci s logy a “observability” dotazům nad textem)
  • Numerická data (float/uint) → PostgreSQL(jako stabilní a osvědčený time-series backend pro klasické metriky a trendy; jednoduchost, kompatibilita, prověřený provoz)
  • JSON → ClickHouse(kvůli analytickému výkonu nad semi-strukturovanými daty, agregacím, filtrování a “wide” dotazům nad JSON strukturou)

A samozřejmě si můžete strategii otočit podle priorit – např. když chcete maximum dát do analytického backendu, nebo když vám jde naopak o co nejjednodušší architekturu a ClickHouse použít jen tam, kde to reálně přinese největší efekt (typicky právě JSON).

Frontend konfigurace (Zabbix UI / frontend)

Konfigurace ve frontendu je definovaná v /etc/zabbix/web/zabbix.conf.php pomocí pole $HISTORY_PROVIDERS. Každý backend (ClickHouse, Elastic) je uveden jako samostatná položka tohoto pole – proto jsou jednotlivé bloky oddělené čárkou (standardní PHP syntaxe). V praxi tak můžete mít ClickHouse jako primární provider pro vybrané typy a hned pod ním doplnit další provider (např. Elastic) pro str.

Server konfigurace (Zabbix server)

Druhá část nastavení je pak v /etc/zabbix/zabbix_server.conf, kde se jednotlivé providery definují samostatně po řádcích jako opakovaná direktiva HistoryProvider. Na rozdíl od frontendu nejde o “seznam položek”, ale o konfiguraci ve stylu provider;options, přičemž samotné volby (url=..., db=..., username=...) jsou oddělené čárkami.

Použití těchto backendů je navíc velmi snadno ověřitelné přímo v Zabbix server logu – hned při startu serveru se vypíše seznam aktivních history providerů (včetně detekované verze a přiřazených value_types), takže máte okamžitě jistotu, kam se která historická data ukládají.

Data pak ve frontendu vypadají úplně stejně – z pohledu UI není žádný rozdíl mezi tím, zda jsou historická data uložená v PostgreSQL, ClickHouse nebo Elasticu. Zabbix transparentně zobrazuje poslední hodnoty, historii i grafy bez ohledu na použitý backend; výjimkou jsou pouze BIN hodnoty, které zůstávají uložené v primární databázi serveru (PostgreSQL/MySQL).

Elasticsearch

Elastic backend zároveň prošel výraznými interními změnami – největší rozdíl je ve způsobu komunikace. Nově se více spoléhá na recyklaci spojení (connection reuse) a další optimalizace v síťové vrstvě i v práci s požadavky. Výsledkem je, že se tento backend z pohledu Zabbixu citelně zrychlil, a to hlavně v prostředích s vysokou dotazovací frekvencí a velkým objemem ukládaných dat.

Multi-host connection string pro PostgreSQL backend

Za nás je toto jedno z nejlepších praktických vylepšení pro PostgreSQL backend vůbec. Možnost zadat do DBHostvíce host:port adres v jednom řetězci (oddělených čárkou) a nechat Zabbix, aby si při startu sám našel první dostupný read-write uzel, výrazně zjednodušuje nasazení i provoz – hlavně v HA prostředích. V praxi to často znamená méně závislostí na externím load balanceru a elegantnější, “self-contained” konfiguraci přímo v Zabbixu.

Nová možnost ukládání dat ve formátu JSON

Konečně jsme se dočkali: do (téměř) nativního světa práce s JSON v Zabbixu přibyla i možnost taková data ukládat přímo do databáze – ve formátu JSON. Funkce je dostupná jak na straně proxy, tak na straně serveru. Jde o podobný koncept, jaký už známe z binárních dat, která používáme například pro ukládání screenshotů. Samozřejmostí je i podpora partitioningu nad novou tabulkou. Podpora se promítá také do Elastic implementace.

Ještě jedna důležitá výhoda: na rozdíl od binárního ukládání lze tento typ využít nejen u master itemů, ale také u dependent itemů.

Primární využití vidíme u velkého množství master itemů. Maximální velikost takto uložených dat v rámci jednoho zápisu je 128 MiB.

Stejně jako u typu Binary, který znáte už od verze 7.0, ani zde není možné vytvářet triggery – a ani to není cílem takto ukládaných dat. Důvodem je, že by takové triggery mohly extrémně zatěžovat value cache na serveru. Jde tedy spíš o technické (kapacitní/výkonnostní) omezení – aby se data vešla do paměti používané value cache – než o to, že by to technicky nešlo implementovat.

Přibyl Export a Import dashboardů

Konečně přibyla i možnost exportu a importu dashboardů. Podobnou věc jste sice mohli řešit už přes API, ale bylo potřeba přesně namapovat jednotlivé entity podle jejich ID – jinak import neproběhl.

Teď máte v rozhraní k dispozici dvě tlačítka: jedno pro Export (ve formátu, jak ho ze Zabbixu znáte) a druhé pro Import.

Tlačítko Import najdete v pravém horním rohu přehledu dashboardů, hned vedle Create dashboard.

Samotný import je intuitivní: můžete vytvářet úplně nové dashboardy a pokud už existují, můžete aktualizovat ty stávající. Import samozřejmě umí přenést i stránky (pages), pokud je v dashboardech používáte.

Při importu se jednotlivé objekty nevyhledávají podle ID, ale podle názvů. V našem příkladu došlo k přejmenování hostu z „Zabbix server“ na „Zabbix server RENAMED“ a systém pak už nebyl schopen hosta najít. Řešení je ale jednoduché: vazbu lze snadno upravit přímo ve frontendu, případně úpravou exportovaného souboru.

Před samotným importem navíc uvidíte přehled, které části se přidají, které se smažou a které se aktualizují – a to včetně konkrétních změn.


Clustering v GeoMap widgetu

V widgetu GeoMap si teď můžete nastavit různé chování shlukování hostů na mapách. Na výběr máte Auto(původní/výchozí chování) a novou možnost Zoom level. U Zoom level se shlukování mění při definovaném prahu přiblížení – například když je práh nastavený na 8, při přiblížení se rozbalí do jednotlivých prvků jen několik markerů; když ho snížíte na 5, mnohem více markerů zůstane ve shlucích, takže mapa zůstane přehlednější a „seskupená“ až do momentu, kdy přiblížíte ještě víc.

Ukázkové video ke Clusteringu v GeoMap

Vizuální indikátor zděděného tagu

Zabbix teď dělá ze zděděných tagů plnohodnotnou součást UI, takže na první pohled poznáte, jestli tag pochází ze šablony / nadřazeného objektu, nebo jestli byl vytvořen přímo na aktuální úrovni. To je zvlášť praktické ve velkých prostředích, kde má mnoho objektů stejné názvy a spoléháte na tagy pro routování, filtrování a konzistentní klasifikaci napříč hosty, šablonami, položkami a triggery.

V seznamových pohledech jsou zděděné tagy označené malou ikonou stránky/dokumentu na levé straně „pilulky“ tagu a po najetí myší se zobrazí tooltip typu „Inherited tag“ (jak je zvýrazněno na screenshotu). Tagy bez této ikony nejsou zděděné – byly přidané přímo na dané úrovni. V příkladu níže je většina tagů zděděná, zatímco initMAX je nezděděný tag vytvořený lokálně, takže je rozdíl okamžitě vidět.

Vlastní tagy u triggerů z trigger prototypů

Tato funkce umožňuje přiřazovat vlastní tagy triggerům, které jsou vytvářené z trigger prototypů.

Je to obzvlášť užitečné pro řízení notifikací (odesílat / neodesílat upozornění podle tagů) a pro označování triggerů podle konkrétních služeb, týmů nebo případů použití. Díky tomu je možné přesnější směrování alertů, filtrování a korelace na úrovni služeb.

Možnost upravit tabulkové zobrazení u vybraných stránek

Tato funkce vám umožní přizpůsobit tabulky v seznamových přehledech na podporovaných stránkách pomocí nastavení sloupců v pravém horním rohu. Můžete zobrazit nebo skrýt celé sloupce a měnit jejich šířkupřejmenování je aktuálně dostupné pouze u duplicitních sloupců tagů (jak je vidět na screenshotu).

Kde je to dostupné:

  • Monitoring → Hosté (Hosts)
  • Monitoring → Nejnovější data (Latest data)
  • Monitoring → Problémy (Problems)
  • Sběr dat (Data collection) → Hosté (Hosts)
  • Sběr dat (Data collection) → Šablony (Templates)

Všechny změny se ukládají do vašeho uživatelského profilu, takže rozložení je osobní a nesdílí se s ostatními uživateli. Zároveň plánujeme aktualizovat i náš User Filter Manager, aby tuto funkcionalitu také podporoval: https://www.initmax.com/product/user-filter-manager/

Na druhém screenshotu můžete vidět příklad duplicitního sloupce „Tags“, kde je možné použít filtrování a zároveň tento duplicitní sloupec s tagy také přejmenovat. Je to opravdu super funkce, která výrazně usnadňuje udržet pohledy s velkým množstvím tagů přehledné a zaměřené jen na to podstatné.

Here’s a short video showing how you can resize columns and hide them in the Triggers view.

Tady je krátké video, které ukazuje, jak můžete v přehledu Triggers měnit šířku sloupců a skrývat je.

Ukládání SAML certifikátů přímo do databáze

Nově můžete nastavit ukládání SAML certifikátů přímo do databáze Zabbixu. Stačí v konfiguračním souboru (nejčastěji /etc/zabbix/web/zabbix.conf.php) frontendu nastavit:

$SSO['CERT_STORAGE'] = 'database';

Díky tomu již nemusíte nahrávat certifikáty přímo na souborový systém serveru. Toto řešení přináší řadu výhod, zejména:

  • Snadnou konfiguraci přímo z webového rozhraní,
  • Jednotnou správu certifikátů v případě nasazení v režimu High Availability (HA),
  • Zjednodušení administrace celého SAML nastavení.

Přehled drobných vylepšení

Audit log export do CSV

Audit log dostává CSV export. Je to menší změna, ale v praxi velmi užitečná. U větších instalací se auditní záznamy často předávají mimo Zabbix, archivují se, porovnávají nebo se používají při kontrole změn. Přímý export snižuje potřebu ručního kopírování nebo dodatečných skriptů.

Bezpečnější výchozí nastavení pro trapper itemy

Zabbix doplňuje výchozí hodnotu pro Allowed hosts u trapper itemů a přidává globální makro {$TRAPPER.ALLOWED_HOSTS}. To pomůže hlavně u šablon, importů a hromadné správy, kde je lepší mít jednotný a snadno upravitelný výchozí režim místo ručního doplňování na mnoha místech.

Nové klíče agenta net.if.get a vfs.dev.get

Agent dostává dva nové klíče pro discovery: net.if.get vrátí síťová rozhraní a vfs.dev.get bloková zařízení (Linux a AIX) jako jeden JSON se všemi atributy, bez skládání z několika položek. Šablony Linux a AIX by Zabbix agent jsou na ně už přepsané a hodí se i pro vlastní LLD pravidla.

DNS přes c-ares s cache a failoverem

Server, proxy i agent umí DNS dotazy řešit knihovnou c-ares s cache a failoverem mezi resolvery (volba při buildu, funguje i pro agenta na Windows). Výpadek nebo zpomalení jednoho DNS serveru už nezastaví polling hostů zadaných jménem.

Cache engine ID u SNMPv3

SNMPv3 si po prvním zjištění cachuje engine ID zařízení a nepotřebuje tak před každým dotazem úvodní výměnu. U velkých SNMP sítí to znamená znatelně méně paketů a rychlejší polling.

Monitoring cache trendových funkcí

Nová interní položka zabbix[tcache,cache,paccessed] ukazuje využití cache trendových funkcí a health šablony Zabbix server a proxy ji rovnou sbírají. Proxy navíc lépe škrtí odesílání dat, když je její history cache pod tlakem, místo aby server zahltila.

HTTP agent a LLD: volnější vstupy

HTTP agent přijme v těle požadavku i formálně nevalidní JSON nebo XML, discovery pravidlo typu HTTP agent má volbu převodu odpovědi na JSON a LLD makra se resolvují i ve vnořeném JSONu v prototypech. VMware položky *.alarms.get vracejí detaily entit a skutečné jméno hosta.

Agent 2: Oracle přes TLS, Ceph jako loadable plugin

Oracle plugin agenta 2 podporuje TCPS (TLS), Ceph plugin je nově loadable a MySQL plugin používá SHOW REPLICA STATUS vedle staršího SHOW SLAVE STATUS, takže funguje i na aktuálních verzích MySQL.

Nové funkce jsonpath, xmlxpath, contains a substring

Trigger výrazy a makro funkce dostávají jsonpath()xmlxpath() pro vytažení hodnoty z JSON nebo XML položky a contains()substring() pro práci s textem. Spolu s novým typem hodnoty JSON se tak dá s komplexní odpovědí pracovat přímo v triggeru bez preprocessing kroků.

Inline validace formulářů

Prakticky každý formulář ve frontendu prošel přepisem na inline validaci: chyby se ukážou u pole hned, ne až po odeslání. Discovery pravidla a host prototypy se otevírají v modálním okně jako zbytek konfigurace, přibyl odkaz Skip to main content pro čtečky a klávesnici a filtr tagů v Problems přišel o nadbytečné přepínače (prázdný seznam tagů = všechny tagy).

Inverze hodnot v grafu

Widget Graph má u datové sady volbu Invert values: metrika se vykreslí zrcadlově pod osou, takže se do jednoho grafu vejde příchozí a odchozí provoz nebo čtení a zápis disku bez překrývání.

Zabbix 8.0 - widget Graph s volbou Invert values u datové sady

Patterny položek ve widgetu Top items

Sloupce widgetu Top items přijímají patterny položek místo výběru konkrétních položek. Jeden sloupec tak pokryje třeba všechny vfs.fs.size[*,pused] napříč hosty a limit Top N se aplikuje na každý pattern zvlášť.

Zabbix 8.0 - sloupec widgetu Top items s patterny položek

Slideshow dashboardu vypnutá ve výchozím stavu

Nově vytvořené dashboardy mají Start slideshow vypnuté a slideshow se dá zapnout parametrem v URL (&slideshow=1). Hodí se pro sdílené odkazy na obrazovky v dohledovém centru, kde má jeden odkaz rotovat a druhý stát.

Zabbix 8.0 - vlastnosti nového dashboardu s vypnutou volbou Start slideshow

Import a export globálních regulárních výrazů

Globální regulární výrazy mají ImportExport ve stejném YAML/JSON/XML formátu jako šablony, takže je lze verzovat a přenášet mezi instancemi stejně jako zbytek konfigurace.

Zabbix 8.0 - seznam globálních regulárních výrazů s tlačítky Import a Export

Create proxy in Cloud a menu Subscriptions

Stránka proxy dostala tlačítko Create proxy in Cloud pro instalace propojené se Zabbix Cloud a v menu nápovědy nahradila zastaralou položku Support položka Subscriptions.

Zabbix 8.0 - stránka Proxies s tlačítkem Create proxy in Cloud

E-mailová vlákna pro problém a recovery

E-maily ze Zabbixu mají hlavičku Message-ID a správně vyplněné In-Reply-To, takže se problém a jeho recovery v poštovním klientovi sbalí do jednoho vlákna. Makro {EVENT.RECOVERY.TAGS} se nově resolvuje i při ručním uzavření problému.

Housekeeper: mazání událostí a odložené mazání

Housekeeper při smazání triggeru odstraní i jeho události, ne jen problémy, a mazání velkých objemů historie po smazání položek běží přes tabulku odložených úloh, takže samotné smazání položky v UI nečeká na databázi.

Na co si dát pozor při upgradu

Minimální verze

PHP 8.2 (podporováno až PHP 8.5), MySQL a Percona 8.4, MariaDB 10.11 (server se s MariaDB pod 10.5 vůbec nespustí), PostgreSQL 15, TimescaleDB/TigerData 2.20. Nejvyšší podporované verze jsou MySQL 9.7, MariaDB 12.3, PostgreSQL 18 a TimescaleDB 2.29.

Odstraněné API metody

Metody host.massupdate, template.massupdate, hostgroup.massupdate, templategroup.massupdatehostinterface.replacehostinterfaces jsou odstraněné, nahrazují je běžné *.updatemassadd / massremove. Nové uživatelské role mají přístup k API vypnutý (viz kapitola o bezpečnosti).

Odstraněná makra

Končí dlouho deprecated {ACK.DATE}, {ACK.TIME}, {ACK.MESSAGE}, {EVENT.ACK.HISTORY}, {IPADDRESS}, {HOSTNAME}, {TRIGGER.KEY}, {TRIGGER.COMMENT}, {STATUS}, {PROFILE.*}{USER.ALIAS}. Před upgradem projděte media typy, akce a skripty a nahraďte je aktuálními ekvivalenty ({EVENT.UPDATE.*}, {HOST.IP}, {HOST.NAME}, {ITEM.KEY}, {TRIGGER.DESCRIPTION}, {TRIGGER.STATUS}, {INVENTORY.*}, {USER.USERNAME}).

Protokoly

Trapper serveru a proxy nepřijímá starší ne-JSON varianty protokolu z dob před Zabbixem 4.x. Staré agenty a vlastní sendery je potřeba převést na JSON protokol před upgradem.

Nové a aktualizované šablony

Build 8.0 obsahuje 380 šablon.

Nové šablony:

  • Cloud a náklady: Oracle Cloud Costs by HTTP, GCP Cost monitoring by HTTP, Google Cloud Storage by HTTP, GCP Cloud Run Service by HTTP, GCP Application Load Balancer by HTTP, Oracle Cloud Load Balancer by HTTP, Azure Container Apps by HTTP, Azure Sentinel by HTTP
  • Databáze: MariaDB by Zabbix agent / agent active / by ODBC, Percona by Zabbix agent / agent active / by ODBC
  • Kontejnery a virtualizace: Kubernetes Cluster by HTTP, Podman by Zabbix agent / agent active / by HTTP, Microsoft Hyper-V by SSH (cluster i standalone)
  • Aplikace a AI: OpenAI Platform by HTTP, Claude API by HTTP, GitHub organization by HTTP (včetně Copilotu), GLPI by HTTP
  • Síť: Ribbon SBC Edge / SWe core / SWe CE by HTTP, VeloCloud SD-WAN Edge by HTTP, Huawei AR600 by SNMP, Cradlepoint NCM v2 by HTTP a Cradlepoint NCM v2 device by HTTP
  • Ostatní: Domain expiration by RDAP, webhook pro IBM Maximo (zakládání service requestů)

Aktualizované šablony:

  • Linux by Zabbix agent / agent active (nové dashboardy, nové klíče agenta včetně net.if.getvfs.dev.get), Windows by Zabbix agent, AIX by Zabbix agent (vfs.dev.get)
  • MySQL by Zabbix agent a by ODBC (nové metriky, discovery tabulek a replik, nové dashboardy, podpora nové syntaxe), PostgreSQL by Zabbix agent a by ODBC
  • Proxmox VE by HTTP (nested LLD, mapování SMART statusu), VMware (discovery alarmů), Veeam Backup & Replication a Veeam Backup Enterprise Manager by HTTP
  • Microsoft 365 reports by HTTP (Copilot), GitHub repository by HTTP
  • Zabbix server a proxy health (cache trendových funkcí, oprava zpracování chyb ODBC polleru)
  • SNMP šablony (lepší trigger na uptime zařízení), Cisco (regex verze), Meraki (mapování stavů, nový trigger), Ciena 3906 by SNMP (filesystem, CPU load), Vyatta Virtual Router by SNMP
  • AWS Cost Explorer a Azure Cost Management by HTTP (nové dashboardy), globální multicloud VM dashboard
  • Redis by Zabbix agent 2 (makra pro autentizaci), Ceph by Zabbix agent 2 (native connection mode)
  • Nextcloud by HTTP, NetApp AFF A700 by HTTP, MSSQL, Stormshield SNS by SNMP, RabbitMQ (drobné opravy)

Zabbix ke stažení a další užitečné odkazy


Jako oficiální partneři a velcí fanoušci Zabbix platformy jsme schopni Vám poskytnout služby ze všech oblastí Zabbix monitoringu na té nejvyšší úrovni. Pokud by vás zajímala živá ukázka instalací Zabbixu u našich zákazníků, rádi vám ukážeme Zabbix v praxi.

Ohodnotit článek:
×Košík

Váš košík je prázdný.