Vydání Zabbix 4.2

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 Zabbix 4.2!

Vydání Zabbix 4.2

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í GPLv2.

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

Vydání Zabbix 4.2
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.

Vydání Zabbix 4.2
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.

Vydání Zabbix 4.2
Hledání metrik pomocí filtru v jazyce dotazů PromQL

V současnosti existuje více než 300 integrací a receptů pro monitorování 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í.

Vydání Zabbix 4.2
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).

Vydání Zabbix 4.2
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."

Vydání Zabbix 4.2
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!

Vydání Zabbix 4.2
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!

Vydání Zabbix 4.2
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í!

Vydání Zabbix 4.2

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!

Vydání Zabbix 4.2

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ší.

Vydání Zabbix 4.2
Spojujeme JSON s informacemi o procesech s LLD

Možnosti jsou skutečně neomezené!

Podpora TimescaleDB

Vydání Zabbix 4.2

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.

Vydání Zabbix 4.2
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.

Vydání Zabbix 4.2
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.

Vydání Zabbix 4.2

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!

Vydání Zabbix 4.2
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ě.

Vydání Zabbix 4.2
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ů.

Vydání Zabbix 4.2
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ů.

Vydání Zabbix 4.2
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.

Vydání Zabbix 4.2

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í.

Vydání Zabbix 4.2
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.

Vydání Zabbix 4.2

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 nových binárních souborů (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. Přihlaste se!

Nezapomínejme na populární Telegram kanál 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 skupinu pro nováčky.

Užitečné odkazy

— Release notes
— Upgrade notes
— Originální článek

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster