V pátek 29. března 2019 byl vydán Zabbix 4.2 ve formě zdrojových kódů a balíčků v oficiálním Zabbix repository. Na stránkách dokumentace je velmi podrobný popis všech nových funkcí. Z plánovaných úkolů v roadmap bylo realizováno 60 %. Dále si popíšeme nové vlastnosti.
Poznámka: Článek je opět hodně technický a je určený pro znalce Zabbixu. Znalost terminologie je tedy nutná.
Nové platformy
V repozitáři jsou nově k dispozici i balíčky pro SUSE Linux Enterprise Server včetně starších verzí 3.0 LTS a 4.0 LTS. Dále je novinkou MSI instalátor pro Windows, který doposud bylo možné použít od suiviperf.com s použitím nullsoft NSIS magic.
- RaspberryPi
- Mac OS/X
- SUSE Enterprise Linux Server 12
- MSI for Windows agent
- Docker images
Předzpracování rozšířené hodnoty položky (Preprocessing)
JavaScript
Nyní je možné aplikovat předzpracování na hodnoty položky na nízké úrovni pomocí JavaScriptu.
Krok s použitím JavaScriptu akceptuje jeden parametr – neprázdný blok kódu v jazyce JavaScript.
Kliknutím na pole parametrů nebo na tlačítko pro zobrazení / úpravy vedle pole parametrů se otevře okno pro zadání bloku kódu.
Pravidla pro ověřování a škrty (throttling)
Nově přidané možnosti předběžného zpracování položky jsou validace a škrcení.
Validace, umožňuje definování přijatelného rozsahu nebo shodu s některým regulárním výrazem. Umožňuje odstranit jasně nesprávné nebo šumové hodnoty, které se mohou objevit. Např. když teplotní čidlo vrací hodnotu mimo chtěný rozsah + 999 °C, normální rozsah je např. –100° C až + 100 °C. Ověření zpracování chyb umožňuje tyto hodnoty šumu zrušit nebo je nahradit nějakou výchozí hodnotou nebo je jednoduše nahradit chybovou zprávou čitelnou člověkem.
Další novinkou je extrakce chybové zprávy uvedené v příchozích datech. Objekt JSON může například obsahovat pole „chyba“. Pokud pole existuje, je předzpracování schopno extrahovat jeho hodnotu a nastavit ji jako chybovou zprávu pro položku.
Další informace naleznete v tématu: Item value preprocessing.
Vlastní zpracování chyb
Ve starší verzi by se položka nepodporovala, pokud by některý z kroků předběžného zpracování selhal. Nyní byla do následujících kroků předběžného zpracování přidána vlastní možnost zpracování chyb:
- Regular expression
- XML XPath
- JSON Path
- Custom multiplier
- Simple change
- Change per second
- Boolean to decimal
- Octal to decimal
- Hexadecimal to decimal
- In range (new validation option)
- Matches regular expression (new validation option)
- Does not match regular expression (new validation option)
- Prometheus pattern
- Prometheus to JSON
Pokud zaškrtnete políčko vlastní, při selhání položka nebude v případě neúspěšného kroku předběžného zpracování podporována a je možné zadat vlastní možnost zpracování chyb, např.:
- discard the value
- set to a specified value
- set a specified error message
Testování kroků předzpracování
Vzhledem k tomu, že se přidávají nové kroky předběžného zpracování položky, průchod předběžného zpracování je patřičně složitější a je zvýšená pravděpodobnost vzniku chyb. Zabbix nově poskytuje uživateli způsob, jak otestovat nakonfigurované kroky předběžného zpracování.
Každý krok může být testován individuálně a všechny kroky mohou být testovány společně pomocí nového tlačítka Test nebo test všech kroků v bloku Akce.
Viz také: Testing preprocessing steps.
Podpora předběžného zpracování na Zabbix proxy
Monitorované položky procházející skrze Zabbix proxy se budou nově preprocessingem provádět na Zabbix proxy.
Vzhledem k novým možnostem předzpracování, jako je například Javascript, ověřování a škrcení, se předzpracování může stát úzkým hrdlem výkonnosti. Předzpracování pomocí proxy serverů nabízí potřebnou škálovatelnost. Vzhledem k tomu, že se nejedná o konfigurovatelné nastavení, je důležité si uvědomit důsledky výkonu.
Low-level discovery
Samostatné zpracování pro zjištění na nízké úrovni
Zpracování pravidel nízkoúrovňového zjišťování bylo rozděleno z procesů sběru dat do vlastního zpracování.
LLD bylo obohaceno o Preprocessing a pro tuto činnost byl vyčleněn separátní interní proces v rámci Zabbix serveru a Zabbix Proxy.
Viz také: StartLLDProcessors parameter
Očekávaná změna formátu při zjišťování na nízké úrovni
Aby bylo možné podpořit předzpracování nízkoúrovňových výsledků zjišťování a vlastních cest na hodnoty makra s nízkými úrovněmi zjišťování (LLD) v dokumentu JSON, změnil se formát JSON vrácený pravidly pro vyhledávání na nízké úrovni. Již se neočekává, že JSON bude obsahovat objekt „data“:
{ "data": [ {}, {} ] }
Zjištění na nízké úrovni nyní přijme normální JSON obsahující pole.
Vestavěné klíče zjišťování byly aktualizovány, aby vrátily pole řádků LLD v kořenovém adresáři dokumentu JSON. Zabbix automaticky extrahuje makro a hodnotu, pokud pole používá syntaxi {#MACRO}
jako klíč. Všechny nové nativní kontroly zjišťování budou používat s novou syntaxi bez prvků „data“. Při zpracování nízkoúrovňové hodnoty zjišťování je nejprve umístěn kořen (pole na $. Nebo $ .data).
Zatímco prvek „data“ byl odstraněn ze všech nativních položek týkajících se zjišťování, pro zpětnou kompatibilitu bude Zabbix stále přijímat notaci JSON s elementem „data“, i když od jeho použití je odrazováno. Pokud JSON obsahuje objekt s pouze jedním prvkem pole „data“, pak automaticky extrahuje obsah prvku pomocí JSONPath $ .data.
Low-level discovery jako závislá položka
Pravidlo nízké úrovně zjišťování nyní může být také závislou položkou v závislosti na běžné položce. Pravidlo zjišťování na nízké úrovni nemůže být závislé na jiném nízkoúrovňovém zjišťovacím pravidle.
Viz take: konfigurace
Preprocessing a vlastní makra v nízkoúrovňovém zjišťování
Konfigurace nízkoúrovňového zjišťování získala další možnosti předběžného zpracování výsledku zjišťování a extrahování vlastních maker z předzpracovaného výsledku. Chcete-li lépe porozumět změnám v toku dat zjišťování, porovnejme to s předchozími verzemi:
Before Zabbix 4.2 | Discovery rule → Discovery rule filter |
In Zabbix 4.2 | Discovery rule → Preprocessing → Custom macros → Discovery rule filter |
Je důležité pochopit, že tato logika funguje v pořadí zleva doprava, stejně jako při definování pravidla: nejprve se objeví objev, pak se na něj aplikuje volitelně předzpracování, pak se mohou extrahovat vlastní makra a pak se použijí podmínky filtru k výsledku.
Preprocessing LLD
Pravidla zjišťování na nízké úrovni nyní mají krok předběžného zpracování obsahující následující možnosti:
- Regular expression match
- JSONPath (structured data)
- Javascript
- Does not match regular expression (validation)
- Check for error in JSON (validation)
- Discard unchanged with heartbeat (throttling)
- Prometheus to JSON
Další informace naleznete v tématu: Preprocessing in low-level discovery rules.
Extrakce makra LLD pomocí JSONPath
Pravidla nízkoúrovňového zjišťování nyní také přijímají extrahování uživatelsky definovaných hodnot makra LLD (low-level discovery) pomocí vlastní cesty zadané v syntaxi JSONPath.
Makro LLD = Mapování JSONPath lze nyní definovat, kde každé makro je definováno vlastní cestou JSON k umístění hodnot. Hodnoty, na které odkazuje definovaná cesta JSON, se používají k nahrazení makra v polích prototypu položky, spouštěče atd.
Další podrobnosti naleznete v tématu: Custom macros in low-level discovery rules.
Prometheus integrace
Integrace s Prometheus nabízí možnosti sledovat jakýkoliv objekt, který vystavuje metriky ve formátu Prometheus, včetně Kubernetes, Docker, GitLab, Ceph, Collectd, atdd, InfluxDB, InfluxDB Telegraf a dalších.
Zabbix používá pro přístup k metrikám Prometheus položky typu HTTP agent a potom používá předběžnou přípravu k dotazování metrik pro konkrétní hodnoty.
Viz: Prometheus checks.
Podpora TimescaleDB
V nové verzi Zabbix byla přidána podpora databáze časových řad ve formě experimentální podpory TimescaleDB, databázového řešení založeného na PostgreSQL, které automaticky rozděluje data do časově založených bloků, což podporuje rychlejší výkon v měřítku.
Migrační skript je k dispozici pro migraci z existujících tabulek PostgreSQL do rozvržení TimescaleDB.
Další podrobnosti viz: Migrace na TimescaleDB.
Aktuálně TimescaleDB nepodporuje Zabbix proxy.
Použití hodnoty položky k pojmenování objevených hostitelů
Dříve názvy nových hostitelů přidané pomocí discovery pravidel, používaly buď název DNS, nebo v případě jeho neexistence adresu IP. V nové verzi je možné dát mnohem více popisného pojmenování objeveným hostům pomocí hodnot položek zjišťování, které byly získány buď z agenta Zabbix nebo z agenta SNMP agenta:
Kontroly Zabbix agenta nebo SNMP agenta jsou uvedeny jako možnosti pojmenování v nových polích Host name a Visible name, kromě možnosti zadat jako název název DNS nebo adresu IP.
Šablony a značky hostitele
Možnost označit tagem událost byla funkce Zabbixu od 3.2, nicméně, dříve, značkování bylo omezeno na jednotlivé spouštěče. V nové verzi lze tagování použít na úrovni šablony a hostitele:
- Tagy na úrovni šablony
- Tagy Na úrovni hostitele
Značky lze definovat na nové kartě ve formulářích pro konfiguraci šablony a hostitele, například pro šablonu:
V konfiguraci spouštěče jsou nyní tagy také rozděleny na vlastní kartu. Možnost „Inherited and trigger tags“ umožňuje zobrazit tagy definované na úrovni šablony (nikoli však na úrovni hostitele), pokud trigger pochází z této šablony:
Událost, která se stane, zdědí všechny značky z celého řetězce šablon, hostitelů, spouštěčů. Úplně identické kombinace tag: hodnota jsou sloučeny do jednoho, místo aby byly duplikovány při označování události.
Viz také: Tags
Animovaná podpora GIF v mapách
Nyní je podporováno nahrávání animovaných obrázků GIF pro použití v mapách Zabbix. Pro podporu animovaného uploadu GIF je nyní požadovaná minimální verze knihovny GD 2.0.28.
HTML notifikace
E-mailová oznámení lze nyní odeslat ve formátu HTML. Formát HTML umožňuje více e-mailů s bohatými funkcemi, které obsahují barevná písma, odkazy, interaktivní prvky, styl společnosti atd.
Formát HTML lze vybrat ve volbě Formát zprávy při konfiguraci e-mailu jako typu média v nabídce Správa → Typy médií.
Testování typů médií
Nyní je možné otestovat, zda nakonfigurovaný typ média funguje. Chcete-li to provést v seznamu typů médií, klepněte na tlačítko Test v posledním sloupci.
Otevře se testovací okno, kde můžete zadat adresu odesílatele a odeslat testovací předmět a tělo kliknutím na Test.
Ve stejném okně se zobrazí zpráva o úspěchu testu nebo neúspěchu.
Podpora regulárních výrazů v podmínce akce automatické registrace
Shoda regulárních výrazů je nyní podporována při konfiguraci podmínek pro akce automatické registrace aktivních agentů. Je podporován, pokud používá shody a neodpovídá operátorům pro podmínky názvu hostitele a metadat hostitele.
Všimněte si, že obsahuje a neobsahuje operátory, které byly podporovány před provedením pouze shody řetězců.
Webové monitorování
Vyhledávání obsahu na základě regulárních výrazů i v hlavičkách
Zatímco dříve bylo možné načíst pouze záhlaví, nebylo možné v nich hledat odpovídající obsah. Nyní je možné vyhledávat i záhlaví regulárního výrazu buď v proměnných nebo v požadovaném řetězci.
Kromě toho byla do kroků monitorování webu přidána možnost Režim načítání, která umožňuje:
- Retrieve body only
- Retrieve headers only
- Retrieve both body and headers
Frontend
Tato část uvádí různá vylepšení frontendu:
Mass update
Hromadná aktualizace prototypů položek
Nyní je také možné hromadně aktualizovat prototypy položek používané v pravidlech vyhledávání na nízké úrovni. Chcete-li aktualizovat vlastnosti několika prototypů položek najednou, označte zaškrtávací políčka před položkami a klikněte na položku Mass update:
Filtrování
Filtrování triggerů
V seznamu triggerů bylo do filtru přidáno několik nových možností.
- Nyní je možné ve filtru specifikovat více hostitelů a skupin hostitelů, což umožňuje zobrazit spouštěče více než jednoho hostitele, což značně zvyšuje použitelnost takových funkcí jako hromadná aktualizace.
- Je také možné filtrovat několika závažnostmi.
Filtrování položek
Ve filtru položek je také k dispozici možnost specifikovat více filtrů a skupin hostitelů ve filtru, které jsou zavedeny ve filtru spouštění (viz výše).
Pokud není ve filtru položek zadán žádný hostitel nebo skupina hostitelů, budou všechny položky zobrazeny namísto žádné a zpráva bude vybrána.
Další informace naleznete v podrobnostech filtru položky.
Makra
Nová makra podporovaná v mapách
Další makra jsou nyní podporována v popisech prvků mapy, názvech adres URL a hodnotách URL:
Viz také: All supported macros.