Naša tím je veľmi rád, že môže zdieľať novinku, že bol vydaný voľný systém monitorovania s otvoreným zdrojovým kódom !

Je verzia 4.2 odpoveďou na hlavný otázka života, vesmíru a monitorovania ako takého? Pozrime sa na to!
Pripomeňme, že Zabbix je univerzálny systém na monitorovanie výkonnosti a dostupnosti serverov, inžinierskeho a sieťového vybavenia, aplikácií, databáz, virtualizačných systémov, kontajnerov, IT služieb, webových služieb.
Zabbix realizuje celý cyklus od zberu údajov, ich spracovania a transformácie, analýzy získaných údajov a končí uskladnením týchto údajov, vizualizáciou a rozosielaním upozornení pomocou pravidiel eskalácie. Systém tiež poskytuje flexibilné možnosti rozšírenia metód zberu údajov a upozornení, ako aj možnosti automatizácie cez API. Jediné webové rozhranie realizuje centralizované riadenie konfigurácií monitorovania a rozdelenie práv prístupu rôznym skupinám používateľov. Kód projektu je voľne distribuovaný pod licenciou .
Zabbix 4.2 je nová verzia, ktorá nie je LTS s kratšou dobou oficiálnej podpory. Používateľom, ktorí sa zameriavajú na dlhý cyklus prevádzky softvéru, odporúčame používať verzie LTS, ako sú 3.0 a 4.0.
Takže, poďme sa porozprávať o novinkách a hlavných vylepšeniach verzie 4.2:
Viac oficiálnych platforiem

Okrem už existujúcich oficiálnych balíčkov, ponúkame aj nové zostavy pre:
- RaspberryPi, Mac OS/X, SUSE Enterprise Linux Server 12
- MSI pre Windows agenta
- Docker obrazy
Vstavaná podpora Prometheus pre monitorovanie aplikácií
Zabbix dokáže zbierať údaje rôznymi spôsobmi (push/pull) z rôznych zdrojov údajov. To sú JMX, SNMP, WMI, HTTP/HTTPS, RestAPI, XML Soap, SSH, Telnet, agenti a skripty a iné zdroje. A teraz vitajte podporu Prometheus!
Prísne vzaté, zber údajov z exportérov Prometheus bol možný aj skôr vďaka typu prvkov údajov HTTP/HTTPS a regulárnym výrazom.
Nová verzia však umožňuje pracovať s Prometheus maximálne efektívne vďaka vstavanou podporou jazyka dopytov PromQL. A použitie závislých metrík umožňuje zbierať a spracovávať údaje najefektívnejšie: raz sa požiadalo o údaje a potom ich rozložíme podľa potrebných metrík.
Získavame hodnotu konkrétnej metriky
Je dôležité poznamenať, že v súčasnosti môže nízkoúrovňové zistenie využívať zhromaždené dáta na automatické vytváranie metrík. V tomto prípade Zabbix prevádza získané dáta do formátu JSON, s ktorým sa veľmi dobre pracuje.
Nájdeme metriky pomocou filtra v jazyku dopytov PromQL
Momentálne existuje viac ako externých služieb a aplikácií pomocou Zabbixu. Podpora Prometheusu umožní pridať celú sadu aplikácií, ktoré majú oficiálnych alebo komunitou podporovaných exportérov Prometheus. Ide o monitorovanie populárnych služieb, kontajnerov a cloudových zdrojov.
Efektívne vysoko frekvenčné monitorovanie
Chceme zistiť problémy čo najrýchlejšie? Samozrejme, bez pochybností! Najčastejšie takýto prístup vedie k tomu, že musíme príliš často dotazovať zariadenia a zhromažďovať dáta, čo spôsobuje väčšie zaťaženie systému monitorovania. Ako tomu predísť?
Implementovali sme mechanizmus obmedzovania (throttling) v pravidlách predspracovania. Obmedzovanie v podstate poskytuje možnosť preskočiť rovnaké hodnoty.
Predpokladajme, že sledujeme stav kritickej aplikácie. Každú sekundu kontrolujeme, či naša aplikácia funguje alebo nie. Zabbix pritom dostáva nepretržitý prúd údajov z 1 (funguje) a 0 (nefunguje). Príklad: 1111111111110001111111111111…
Keď je s našou aplikáciou všetko v poriadku, do Zabbixu prichádza prúd len jednotiek. Je potrebné ich spracovávať? V podstate nie, pretože nás zaujíma iba zmena stavu aplikácie, nechceme zhromažďovať a uchovávať toľko údajov. Takže obmedzovanie umožňuje preskočiť hodnotu, ak je identická s predchádzajúcou. V konečnom dôsledku dostaneme len údaje o zmene stavu, napríklad 01010101… To je úplne dostatočné na zistenie problémov!
Zabbix jednoducho ignoruje preskočené hodnoty, nie sú zaznamenané v histórii a nijako neovplyvňujú spúšťače. Z pohľadu Zabbixu neexistujú preskočené hodnoty.
Ignorovanie opakujúcich sa hodnôt
Skvelé! Teraz môžeme veľmi často dotazovať zariadenia, pričom okamžite zisťujeme problémy bez uchovávania zbytočných informácií v databáze.
A čo grafy? Veď budú prázdne kvôli nedostatku údajov! A ako zistíme, či Zabbix zhromažďuje údaje, ak väčšina z týchto údajov bude prehliadnutá?
Aj na toto sme mysleli! Zabbix ponúka ďalší typ obmedzenia, obmedzenie s kontrolnými bodmi (throttling with heartbeat).
Raz za minútu kontrolujeme, či je metrika aktívna.
V tomto prípade Zabbix, aj keď tok údajov sa opakuje, bude uchovávať aspoň jednu hodnotu v zadanom časovom intervale. Ak sa údaje zhromažďujú raz za sekundu a interval je stanovený na jednu minútu, Zabbix premení sekvenčný tok jednotiek na minútový tok. Nie je ťažké si všimnúť, že to vedie k 60-násobnému zmršteniu získaných údajov.
Teraz sme si istí, že údaje sa zhromažďujú, funkcia spúšťača nodata() funguje a s grafmi je všetko v poriadku!
Validácia zhromaždených údajov a spracovanie chýb
Nikto z nás nechce zhromažďovať chybné alebo nepresné údaje. Napríklad vieme, že teplotný senzor by mal vracať údaje v rozmedzí od 0°C do 100°C a akákoľvek iná hodnota by mala byť považovaná za chybovú a/alebo ignorovaná.
Teraz je to možné pomocou vstavaných pravidiel pre spracovanie v predspracovaní údajov podľa zhody alebo nezhojdenia s regulárnymi výrazmi, rozsahom hodnôt, JSONPath a XMLPath.
Teraz môžeme riadiť reakciu na chybu. Ak je teplota mimo rozsahu, môžeme jednoducho ignorovať túto hodnotu, nastaviť predvolenú hodnotu (napríklad 0°C), alebo stanoviť vlastnú chybovú správu, napríklad „Senzor je poškodený“ alebo „Vymeniť batériu.“
Teplota musí byť od 0 do 100, ostatné ignorujeme.
Dobrým príkladom použitia validácie je možnosť kontrolovať vstupné údaje na prítomnosť chybového hlásenia a nastaviť túto chybu pre celú metriku. Je to veľmi užitočná funkcia pri získavaní údajov z externých API.
Akákoľvek transformácia údajov pomocou JavaScriptu.
Ak nám nestačia vstavané pravidlá spracovania, teraz ponúkame plnú slobodu pomocou vlastných skriptov v jazyku JavaScript!
Iba jeden riadok kódu na pretransformovanie stupňov Fahrenheita na stupne Celzia.
To otvára bezhraničné možnosti spracovania prichádzajúcich údajov. Praktickým prínosom tejto funkčnosti je to, že teraz nepotrebujeme externé skripty, ktoré sme používali na akékoľvek operácie s údajmi. Teraz to všetko môžeme spraviť pomocou JavaScriptu.
Teraz sú možné transformácie údajov, agregácie, filtre, aritmetické a logické operácie a mnoho ďalšieho!
Získavame užitočné informácie z výstupu Apache mod_status!
Testujeme predspracovanie
Teraz sa nemusíme trápiť tým, ako fungujú naše zložité scénáre predspracovania. Objavila sa užitočná kontrola správnosti fungovania predspracovania priamo z rozhrania!
Spracovávame milióny metrík za sekundu!
Pred Zabbixom 4.2 sa predspracovaním zaoberal výhradne server Zabbix, čo obmedzovalo možnosti aplikácie proxy pre rozdelenie záťaže.
Od verzie Zabbix 4.2 získavame neuveriteľne efektívne škálovanie záťaže vďaka podpore predspracovania na strane proxy. Teraz sa o to starajú proxy!
V kombinácii s throttleingom tento prístup umožňuje vykonávať vysokofrekvenčné škálové monitorovanie a uskutočniť milióny overení za sekundu, bez zaťaženia centrálneho servera Zabbix. Proxy spracovávajú obrovské objemy údajov, pričom na server Zabbix sa dostane len ich malá časť, o jednu až dve poradia menej, vďaka throttleingu.
Jednoduchšie nízkoúrovňové objavovanie
Pripomeňme, že nízkoúrovňové objavovanie (LLD) je veľmi mocný mechanizmus na automatické objavovanie akéhokoľvek druhu zdrojov na monitoring (súborové systémy, procesy, aplikácie, služby atď.) a na automatické vytváranie prvkov údajov, spúšťačov, uzlov siete a iných objektov na ich základe. To neuveriteľne šetrí čas, zjednodušuje konfiguráciu a umožňuje používať jeden šablón pre uzly siete, ktoré majú rôzne zdroje na monitoring.
Nízkoúrovňové objavovanie vyžadovalo na vstupe špeciálne formatovaný JSON. Toto už nebude potrebné!
Zabbix 4.2 umožňuje nízkoúrovňové zistenie (LLD) využiť ľubovoľne formátované dáta vo formáte JSON. Prečo je to dôležité? Umožňuje to bez použitia skriptov komunikovať, napríklad, s externými API a využiť získané informácie na automatické vytváranie uzlov siete, elementov dát a spúšťačov.
V kombinácii s podporou JavaScriptu to vytvára fantastické možnosti pre vytváranie šablón práce s rôznymi zdrojmi dát, ako sú napríklad cloudové API, API aplikácií, dáta vo formátoch XML, CSV a ďalšie.
Prepojujeme JSON s informáciami o procesoch s LLD
Možnosti sú skutočne neobmedzené!
Podpora TimescaleDB
Čo je to TimescaleDB? Je to bežný PostgreSQL plus rozšírenie od tímu TimescaleDB. TimescaleDB sľubuje lepší výkon vďaka efektívnejším algoritmom a dátovej štruktúre.
Okrem toho, ďalšou výhodou TimescaleDB je automatické partitovanie tabuliek s históriou. TimescaleDB je rýchlosť a jednoduchosť údržby! Hoci musím poznamenať, že náš tím ešte neuskutočnil vážne porovnanie výkonu s bežným PostgreSQL.
V súčasnosti je TimescaleDB pomerne mladý a rýchlo sa rozvíjajúci produkt. Používajte s opatrnosťou!
Jednoduché riadenie značiek
Ak predtým bolo možné spravovať značky len na úrovni spúšťačov, teraz je riadenie značiek oveľa flexibilnejšie. Zabbix podporuje značky pre šablóny a uzly siete!
Všetky zistené problémy dostávajú značky nielen spúšťača, ale aj uzla siete a šablón tohto uzla siete.
Definujeme značky pre uzol siete
Flexibilnejšia automatická registrácia
Zabbix 4.2 umožňuje filtrovať uzly siete podľa názvu, pomocou regulárnych výrazov. To umožňuje vytvárať rôzne scenáre zistenia pre rôzne skupiny uzlov siete. Najmä užitočné, ak používame zložité pravidlá pomenovania zariadení.
Flexibilnejšie sieťové zistenie
Ďalšie vylepšenie sa týka pomenovania uzlov siete. Objavila sa možnosť správy názvov zariadení pri sieťovom zistení a získania názvu zariadenia z hodnoty metriky.
Toto je veľmi potrebná funkcionalita, najmä pri sieťovom zistení pomocou SNMP a Zabbix agenta.
Automaticky priraďujeme lokálne meno uzla siete k viditeľnému menu
Testovanie funkčnosti notifikačných metód
Teraz si môžete priamo z webového rozhrania poslať testovaciu správu a skontrolovať, či notifikačná metóda funguje. Táto funkcia je obzvlášť užitočná pri testovaní skriptov spájania Zabbixu s rôznymi notifikačnými systémami, úlohami a inými externými programami a API.
Diaľkové monitorovanie komponentov infraštruktúry Zabbix
Objavila sa možnosť diaľkového monitorovania interných metrík Zabbix servera a proxy (metriky výkonu a funkčnosti komponentov Zabbix).
Na čo je to potrebné? Funkcionalita umožňuje sledovať interné metriky serverov a proxy zvonku, rýchlo odhaľovať a upozorňovať na problémy, aj keď sú samotné komponenty preťažené alebo ak napríklad na proxy je veľký objem neodoslaných dát.
Podpora HTML formátu pre e-mailové správy
Teraz nie sme obmedzení iba na jednoduchý text a môžeme vytvárať krásne e-mailové správy, vďaka podpore HTML formátu. Je čas študovať HTML + CSS!
Správy sa ľahšie prijímajú aj pri minimálnom použití HTML
Prístup k externým systémom z mapových uzlov
Objavila sa podpora celého súboru nových makier v užívateľských URL pre lepšiu integráciu máp s externými systémami. To umožňuje otvoriť tiket v systéme úloh jedným alebo dvoma kliknutiami na ikonu uzla siete.
Jedným kliknutím otvárame tiket v Jira
Pravidlo detekcie môže byť závislým prvkom dát
Prečo je to potrebné — pýtate sa. To umožňuje používať dáta hlavnej metriky na detekciu aj na bezprostredné zber dát. Napríklad pri zbere dát z exportéra Prometheus Zabbix vykoná jeden HTTP požiadavok a okamžite použije získané informácie pre všetky závislé prvky dát: hodnoty metrík a pravidlá detekcie na nízkej úrovni.
Nový spôsob vizualizácie problémov na mapách
Objavila sa podpora animovaných GIF obrázkov na mapách pre výraznejšiu vizualizáciu problémov.
Problémové zariadenia sú výraznejšie
Extrahujeme dáta z HTTP hlavičiek vo Web monitoringu
Vo Web monitoringu pribudla možnosť vyberať dáta z prijätej HTTP hlavičky.
Umožňuje vytvárať viacstupňové skripty na webové monitorovanie alebo monitorovanie externých API pomocou autorizačného tokenu získaného v jednom z krokov.
Extrahujeme AuthID z HTTP hlavičky
Zabbix Sender používa všetky IP adresy
Zabbix Sender teraz odosiela dáta na všetky IP adresy z parametru ServerActive konfiguračného súboru agenta.
Praktický nový filter v konfigurácii spúšťačov
Stránka konfigurácie spúšťačov dostala rozšírený filter pre rýchly a pohodlný výber spúšťačov podľa zadaných kritérií.
Vyberáme spúšťače týkajúce sa služby K8S
Zobrazenie presného času
Tu je všetko jednoduché, teraz Zabbix zobrazuje presný čas pri nahoveraní myškou na graf.

Ďalšie novinky
- Bol implementovaný predvídateľnejší algoritmus na zmenu poradia widgetov na dashboarde.
- Možnosť hromadnej zmeny parametrov prototypov dátových prvkov
- Podpora IPv6 pre kontroly DNS: 'net.dns' a 'new.dns.record'
- Pridaný parameter 'skip' pre kontroly 'vmware.eventlog'
- Chyba vykonávania kroku predspracovania obsahuje číslo kroku
Ako sa aktualizovať?
Pre prechod z predchádzajúcich verzií stačí nainštalovať (servery a proxy) a nové rozhranie. Zabbix automaticky vykoná procedúru aktualizácie databázy. Inštalácia nových agentov nebude potrebná.
Organizujeme bezplatné webináre pre tých, ktorí sa chcú podrobnejšie oboznámiť so Zabbix 4.2 a mať možnosť klásť otázky tímu Zabbix.
Nezabúdame na populárny komunity Zabbix, kde vždy môžete získať poradenstvo a odpovede na svoje otázky v slovenčine od skúsenejších kolegov, a ak budete mať šťastie, tak aj od samotných vývojárov Zabbix. Pre začiatočníkov odporúčame .
Užitočné odkazy
—
—
—
Zdroj: habr.com
