Náš tým je velmi rád, že může sdílet novinku o uvolnění svobodného systému monitorování s otevřeným zdrojovým kódem !

Je verze 4.2 odpovědí na hlavní otázku života, vesmíru a monitorování jako celku? Pojďme se na to podívat!
Připomeňme, že Zabbix je univerzální systém pro monitorování výkonu a dostupnosti serverů, inženýrské a síťové infrastruktury, aplikací, databází, virtualizačních systémů, kontejnerů, IT služeb a webových služeb.
Zabbix realizuje celý cyklus od sběru dat, jejich zpracování a transformace, analýzy získaných dat, po jejich uchovávání, vizualizaci a rozesílání notifikací s využitím eskalačních pravidel. Systém také poskytuje flexibilní možnosti rozšíření metod sběru dat a notifikací a možnosti automatizace přes API. Jediný webový rozhraní realizuje centralizované řízení konfigurací monitorování a distribuci práv přístupu různým uživatelským skupinám. Kód projektu je volně distribuován pod licencí .
Zabbix 4.2 je nová ne LTS verze s kratší dobou oficiální podpory. Uživatelům, kteří se orientují na dlouhý cyklus životnosti softwarových produktů, doporučujeme používat LTS verze, jako jsou 3.0 a 4.0.
A teď se pojďme podívat na novinky a hlavní vylepšení verze 4.2:
Více oficiálních platforem

Kromě již existujících oficiálních balíčků, také nabízíme nové verze pro:
- RaspberryPi, Mac OS/X, SUSE Enterprise Linux Server 12
- MSI pro Windows agenta
- Docker obrazy
Vestavěná podpora Prometheus pro monitorování aplikací
Zabbix umí sbírat data různými způsoby (push/pull) z různých zdrojů dat. To zahrnuje JMX, SNMP, WMI, HTTP/HTTPS, RestAPI, XML Soap, SSH, Telnet, agenty a skripty a další zdroje. A nyní vítáme podporu Prometheus!
Přesněji řečeno, sběr dat z exporterů Prometheus byl možný i dříve díky typu prvků dat HTTP/HTTPS a regulárním výrazům.
Avšak nová verze umožňuje práci s Prometheus co nejefektivněji díky vestavěné podpoře jazyka dotazů PromQL. A využití závislých metrik umožňuje sbírat a zpracovávat data nejefektivněji: jednou se dotazujeme na data, a poté je rozkládáme podle potřebných metrik.
Získání hodnoty konkrétní metriky
Je důležité poznamenat, že nyní může nízkoúrovňové zjišťování využívat shromážděná data k automatickému vytváření metrik. V tomto případě Zabbix převádí získaná data do formátu JSON, se kterým se velmi snadno pracuje.
Hledání metrik pomocí filtru v jazyce dotazů PromQL
V současnosti existuje více než externích služeb a aplikací pomocí Zabbixu. Podpora Prometheus umožní přidat celou řadu aplikací, které mají oficiální nebo komunitou podporované exportéry Prometheus. To zahrnuje monitorování populárních služeb, kontejnerů a cloudových zdrojů.
Efektivní monitoring s vysokou frekvencí
Chceme odhalit problémy co nejrychleji? Samozřejmě, žádné pochybnosti! Nejčastěji takový přístup vede k tomu, že musíme příliš často dotazovat zařízení a shromažďovat data, což zvyšuje zátěž monitorovacího systému. Jak tomu předejít?
Implementovali jsme mechanismus throttlingu v pravidlech předzpracování. Throttling nám v podstatě umožňuje přeskočit identické hodnoty.
Předpokládejme, že sledujeme stav kritické aplikace. Každou sekundu kontrolujeme, zda naše aplikace funguje nebo ne. Do Zabbixu přichází nepřetržitý tok dat 1 (funguje) a 0 (nefunguje). Například: 1111111111110001111111111111...
Když je naše aplikace v pořádku, do Zabbixu přichází proud pouze jedniček. Je nutné je zpracovávat? V podstatě ne, protože nás zajímá pouze změna stavu aplikace, nechceme shromažďovat a uchovávat tolik dat. Throttling nám umožňuje přeskočit hodnotu, pokud je identická s předchozí. Výsledkem bude pouze data o změně stavu, například 01010101... To je úplně dostatečná informace pro odhalení problémů!
Zabbix jednoduše ignoruje přeskočené hodnoty, tyto se neukládají do historie a nijak neovlivňují spouštěče. Z pohledu Zabbixu přeskočené hodnoty neexistují.
Ignorování opakujících se hodnot
Skvělé! Nyní můžeme velmi často dotazovat zařízení a zároveň okamžitě odhalovat problémy bez uchovávání zbytečných informací v databázi.
A co grafy? Ty budou prázdné kvůli nedostatku dat! A jak pochopit, zda Zabbix data sbírá, když většina těchto dat bude ztracena?
Na to jsme také mysleli! Zabbix nabízí další typ zpoždění, zpoždění s kontrolními body (throttling with heartbeat).
Kontrolujeme každou minutu, zda je metrika aktivní
V tomto případě Zabbix, navzdory opakujícímu se toku dat, uloží alespoň jednu hodnotu ve stanoveném časovém intervalu. Pokud jsou data sbírána každou sekundu a interval je nastaven na jednu minutu, Zabbix převede každosekundový tok jedniček na jedníměsíční tok. Není těžké si všimnout, že to vede k 60násobnému zhuštění získaných dat.
Nyní máme jistotu, že data se sbírají, funkce triggeru nodata() funguje a s grafy je všechno v pořádku!
Validace shromážděných dat a zpracování chyb
Nikdo z nás nechce shromažďovat chybné nebo nespolehlivé údaje. Například víme, že teplotní senzor by měl vracet data v rozmezí 0°C až 100°C a jakákoliv jiná hodnota by měla být považována za chybovou a/nebo ignorována.
Nyní je to možné pomocí vestavěných pravidel předzpracování pro validaci dat podle shody nebo neshody s regulárními výrazy, rozsahem hodnot, JSONPath a XMLPath.
Nyní můžeme řídit reakci na chybu. Pokud je teplota mimo rozmezí, můžeme prostě ignorovat takovou hodnotu, nastavit výchozí hodnotu (například 0°C), nebo definovat vlastní chybové hlášení, jako "Senzor je poškozen" nebo "Vyměňte baterii."
Teplota by měla být mezi 0 a 100, ostatní ignorujeme
Dobrou ukázkou použití validace je schopnost zkontrolovat vstupní data na přítomnost chybového hlášení a nastavit tuto chybu pro celou metriku. To je velmi užitečná funkce při získávání dat z externích API.
Jakákoli transformace dat pomocí JavaScriptu
Pokud nám nestačí vestavěná pravidla předzpracování, nyní nabízíme plnou svobodu s použitím libovolných skriptů v jazyce JavaScript!
Pouze jeden řádek kódu pro převod stupňů Fahrenheita na stupně Celsia
Tohle otevírá bezpočet možností pro zpracování příchozích dat. Praktickým přínosem této funkčnosti je, že nyní nepotřebujeme externí skripty, které jsme používali pro jakékoli operace s daty. Nyní to všechno můžeme udělat pomocí JavaScriptu.
Nyní jsou možné transformace dat, agregace, filtry, aritmetické a logické operace a mnohem více!
Získáváme užitečné informace z výstupu Apache mod_status!
Testujeme předzpracování
Nyní nemusíme hádat, jak fungují naše složité scénáře předzpracování. Objevila se pohodlná kontrola správnosti fungování předzpracování přímo z rozhraní!
Zpracováváme miliony metrik za sekundu!
Do verze Zabbix 4.2 se předzpracováním zabýval výhradně server Zabbix, což omezovalo možnosti použití proxy pro distribuci zátěže.
Od verze Zabbix 4.2 získáváme neuvěřitelně efektivní škálování zátěže díky podpoře předzpracování na straně proxy. Nyní se o to starají proxy!
V kombinaci s throttlingem takový přístup umožňuje provádět vysokofrekvenční velkoplošný monitoring a provádět miliony kontrol za sekundu, aniž by se tím zatěžoval centrální server Zabbix. Proxy zpracovávají obrovské objemy dat, přičemž k serveru Zabbix se díky throttlingu dostává pouze jejich malá část, o jedno až dvě řády nižší.
Jednodušší nízkoúrovňové objevování
Připomeňme, že nízkoúrovňové objevování (LLD) je velmi mocný mechanismus pro automatické objevování jakéhokoli druhu zdrojů pro monitoring (souborové systémy, procesy, aplikace, služby atd.) a automatické vytváření na jejich základě datových prvků, spouštěčů, uzlů sítě a dalších objektů. To neuvěřitelně šetří čas, zjednodušuje konfiguraci a umožňuje použít jednu šablonu pro uzly sítě, které mají různé zdroje pro monitoring.
Nízkourovňové objevování vyžadovalo jako vstup speciálně strukturovaný JSON. To už tak nebude!
Zabbix 4.2 umožňuje nízkoúrovňové zjišťování (LLD) používat libovolně formátovaná data ve formátu JSON. Proč je to důležité? Umožňuje to komunikaci například s externími API bez potřeby skriptů a využití získaných informací k automatickému vytváření síťových uzlů, datových prvků a spouštěčů.
V kombinaci s podporou JavaScriptu to vytváří fantastické možnosti pro vytváření šablon, které pracují s různými datovými zdroji, jako jsou cloudová API, API aplikací, data v formátech XML, CSV a další.
Spojujeme JSON s informacemi o procesech s LLD
Možnosti jsou skutečně neomezené!
Podpora TimescaleDB
Co je TimescaleDB? Je to běžný PostgreSQL plus rozšíření od týmu TimescaleDB. TimescaleDB slibuje lepší výkon díky efektivnějším algoritmům a datové struktuře.
Kromě toho je dalším výhodou TimescaleDB automatické partitioning tabulek s historií. TimescaleDB to je rychlost a jednoduchost údržby! I když musím poznamenat, že náš tým dosud neprováděl vážné srovnání výkonu s běžným PostgreSQL.
V současné době je TimescaleDB poměrně mladý a rychle se vyvíjející produkt. Používejte s opatrností!
Jednoduché spravování tagů
Pokud dříve bylo možné spravovat tagy pouze na úrovni spouštěčů, nyní je správa tagů mnohem flexibilnější. Zabbix podporuje tagy pro šablony a síťové uzly!
Všechny zjištěné problémy dostávají tagy nejen spouštěče, ale i síťového uzlu a také šablon tohoto síťového uzlu.
Definujeme tagy pro síťový uzel
Flexibilnější automatická registrace
Zabbix 4.2 umožňuje filtrovat síťové uzly podle názvu pomocí regulárních výrazů. To dává možnost vytvářet různé scénáře zjišťování pro různé skupiny síťových uzlů. Obzvlášť užitečné je to, pokud máme složitá pojmenování zařízení.
Flexibilnější síťové zjišťování
Další vylepšení se týká pojmenovávání síťových uzlů. Objevila se možnost správy názvů zařízení při síťovém zjišťování a získání názvu zařízení z hodnoty metriky.
Je to velmi potřebná funkčnost, zejména při síťovém zjišťování pomocí SNMP a Zabbix agenta.
Automaticky přiřazujeme místní název síťového uzlu viditelnému názvu
Kontrola funkčnosti metod notifikace
Nyní můžete přímo z webového rozhraní odeslat testovací zprávu a zkontrolovat, zda metoda notifikace funguje. Tato funkčnost je obzvlášť užitečná pro testování skriptů integrace Zabbix s různými notifikačními systémy, úkolovými systémy a dalšími externími programy a API.
Dálkový monitoring komponent infrastruktury Zabbix
Byla přidána možnost dálkového monitoringu interních metrik serveru a proxy Zabbix (metrik výkonnosti a funkčnosti komponent Zabbix).
K čemu je to potřeba? Tato funkčnost umožňuje sledovat interní metriky serverů a proxy zvenčí, což umožňuje rychle odhalovat a hlásit problémy, i když jsou samotné komponenty přetíženy nebo například na proxy je velký objem neodeslaných dat.
Podpora formátu HTML pro emailové zprávy
Nyní nejsme omezeni prostým textem a můžeme vytvářet krásné e-mailové zprávy díky podpoře formátu HTML. Je čas začít studovat HTML + CSS!
Zprávy se lépe vnímají i při minimálním použití HTML
Přístup k externím systémům z síťových map
Byla přidána podpora celé řady nových makr v uživatelských URL pro lepší integraci map s externími systémy. To umožňuje otevřít tiket v úkolovém systému jedním nebo dvěma kliknutími na ikonu uzlu sítě.
Jedním kliknutím otevřete tiket v Jira
Pravidlo detekce může být závislým prvkem dat
Proč je to potřeba — ptáte se. To umožňuje použít data základní metriky jak pro detekci, tak pro přímé sbírání dat. Například, v případě sběru dat z exportéra Prometheus, Zabbix provede jeden HTTP požadavek a okamžitě využije získané informace pro všechny závislé prvky dat: hodnoty metrik a pravidla nízkoúrovňové detekce.
Nový způsob vizualizace problémů na mapách
Byla přidána podpora animovaných GIF obrázků na mapách pro výraznější vizualizaci problémů.
Problémové zařízení se stalo nápadnější
Získávání dat z HTTP hlaviček ve webovém monitoringu
Ve webovém monitoringu byla přidána možnost vybírat data z obdržené HTTP hlavičky.
To umožňuje vytvářet vícestupňové scénáře webového monitorování nebo monitorování třetích stran API pomocí tokenu autorizace získaného v jednom z kroků.
Extrahujeme AuthID z HTTP hlavičky
Zabbix Sender používá všechny IP adresy
Zabbix Sender nyní odesílá data na všechny IP adresy z parametru ServerActive konfiguračního souboru agenta.
Nový pohodlný filtr v konfiguraci spouštěčů
Stránka konfigurace spouštěčů dostala rozšířený filtr pro rychlý a pohodlný výběr spouštěčů podle zadaných kritérií.
Vyberáme spouštěče týkající se služby K8S
Zobrazení přesného času
Tady je to jednoduché, nyní Zabbix zobrazuje přesný čas při najetí myší na graf.

Další novinky
- Byl implementován předvídatelnější algoritmus pro změnu pořadí widgetů na dashboardu.
- Možnost hromadné změny parametrů prototypů datových prvků
- Podpora IPv6 pro kontroly DNS: 'net.dns' a 'new.dns.record'
- Přidán parametr 'skip' pro kontroly 'vmware.eventlog'
- Chyba při vykonávání kroku předzpracování obsahuje číslo kroku
Jak se aktualizovat?
Pro přechod z dřívějších verzí je nutná pouze instalace (serverů a proxy) a nového rozhraní. Zabbix automaticky provede proceduru aktualizace databáze. Instalace nových agentů nebude potřeba.
Pořádáme bezplatné webináře pro ty, kteří se chtějí podrobněji dozvědět o Zabbix 4.2 a mít možnost se ptát týmu Zabbix.
Nezapomínejme na populární Zabbix komunity, kde můžete vždy získat konzultace a odpovědi na své otázky v ruštině od zkušenějších kolegů, a pokud budete mít štěstí, tak i od samotných vývojářů Zabbix. Pro nováčky doporučujeme .
Užitečné odkazy
—
—
—
Zdroj: habr.com
