Naša ekipa je zelo vesela, da lahko delimo novico, da je bila izdana odprta sistemska rešitev za spremljanje s prosto dostopnim izvorno kodo !

Ali je različica 4.2 odgovor na glavno vprašanje življenja, vesolja in spremljanja na splošno? Poglejmo!
Spomnimo se, da je Zabbix univerzalni sistem za spremljanje zmogljivosti in dostopnosti strežnikov, inženirskih in omrežnih naprav, aplikacij, podatkovnih baz, sistemov virtualizacije, kontejnerjev, IT storitev, spletnih storitev.
Zabbix izvaja celoten cikel od zbiranja podatkov, njihove obdelave in preoblikovanja, analize prejetih podatkov, pa vse do shranjevanja teh podatkov, vizualizacije in pošiljanja obvestil z uporabo pravil eskalacije. Sistem prav tako nudi prilagodljive možnosti razširitve metod zbiranja podatkov in obvestil ter avtomatizacijo preko API. Enotni spletni vmesnik omogoča centralizirano upravljanje konfiguracij spremljanja in razporejanje pravic dostopa različnim uporabniškim skupinam. Koda projekta se prosto distribuira pod licenco .
Zabbix 4.2 je nova različica, ki ni LTS z krajšo dobo uradne podpore. Uporabnikom, ki se osredotočajo na dolge cikle uporabe programske opreme, priporočamo uporabo LTS različic, kot sta 3.0 in 4.0.
Torej, pogovorimo se o novostih in glavnih izboljšavah različice 4.2:
Več uradnih platform

Poleg že obstoječih uradnih paketov, ponujamo tudi nove slike za:
- RaspberryPi, Mac OS/X, SUSE Enterprise Linux Server 12
- MSI za Windows agenta
- Docker slike
Vgrajena podpora za Prometheus za spremljanje aplikacij
Zabbix zna zbirati podatke na različne načine (push/pull) z različnih virov podatkov. To so JMX, SNMP, WMI, HTTP/HTTPS, RestAPI, XML Soap, SSH, Telnet, agenti in skripte ter drugi viri. In zdaj pozdravite podporo za Prometheus!
Strogo, zbiranje podatkov iz izvoznikov Prometheus je bilo možno tudi prej zahvaljujoč tipu podatkovnih elementov HTTP/HTTPS in regularnim izrazom.
Kljub temu nova različica omogoča kar najbolj učinkovito delo s Prometheusom zaradi vgrajene podpore za jezik poizvedb PromQL. Uporaba odvisnih metrik omogoča zbiranje in obdelavo podatkov na najbolj učinkovit način: enkrat smo poiskali podatke, nato pa jih razporedimo po potrebnih metrikah.
Pridobimo vrednost določene metrike
Pomembno je omeniti, da lahko trenutno nizkotone zaznavanje uporablja zbrane podatke za samodejno ustvarjanje metrik. V tem primeru Zabbix pretvori pridobljene podatke v format JSON, s katerim je zelo enostavno delati.
Poiščimo metrike z uporabo filtra v jeziku poizvedb PromQL
Trenutno obstaja več kot tujih storitev in aplikacij s pomočjo Zabbixa. Podpora za Prometheus bo omogočila dodati cel nabor aplikacij, ki imajo uradne ali skupnostno podprte Prometheus izvoznik. To vključuje spremljanje priljubljenih storitev, kontejnerjev in oblačnih virov.
Učinkovito visoko frekvenčno spremljanje
Želimo odkriti težave čim hitreje? Seveda, brez dvoma! Najpogosteje tak pristop pomeni, da moramo preveč pogosto povpraševati naprave in zbirati podatke, kar povečuje obremenitev sistema za spremljanje. Kako se temu izogniti?
Uvedli smo mehanizem za omejevanje (throttling) v pravilih predobdelave. Omejevanje nam v bistvu omogoča spregledati enake vrednosti.
Recimo, da spremljamo stanje kritične aplikacije. Vsako sekundo preverjamo, ali naša aplikacija deluje ali ne. Pri tem v Zabbix prihaja neprekinjen tok podatkov iz 1 (deluje) in 0 (ne deluje). Na primer: 1111111111110001111111111111…
Ko je z našo aplikacijo vse v redu, v Zabbix prihaja tok samo enic. Ali je potrebno obdelovati te podatke? Na splošno ne, saj nas zanima samo sprememba stanja aplikacije, ne želimo zbirati in shranjevati toliko podatkov. Tako, omejevanje omogoča, da spregledamo vrednost, če je identična prejšnji. Na koncu dobimo le podatke o spremembi stanja, na primer, 01010101… To je povsem dovolj informacij za odkrivanje težav!
Zabbix preprosto ignorira spregledane vrednosti, te se ne zapišejo v zgodovino in ne vplivajo na sprožilce. Z vidika Zabbixa spregledane vrednosti ne obstajajo.
Ignoriramo ponavljajoče se vrednosti
Odlično! Zdaj lahko zelo pogosto sprašujemo naprave in hkrati takoj odkrijemo težave, ne da bi shranjevali nepotrebne informacije v bazo podatkov.
A kako je s grafikonima? Bude prazni zbog nedostatka podataka! Kako saznati prikuplja li Zabbix podatke, ako će većina tih podataka biti propuštena?
I na to smo pomislili! Zabbix nudi još jedan oblik throttlinga, throttling s kontrolnim točkama provjere (throttling with heartbeat).
Jednom u minuti provjeravamo je li metrike aktivna
U tom slučaju, Zabbix će, unatoč ponavljajućem toku podataka, zadržati barem jednu vrijednost u navedenom vremenskom intervalu. Ako se podaci prikupljaju svakih sekundu, a interval je postavljen na jednu minutu, Zabbix će pretvoriti svakosekundni tok jedinica u svakominutni tok. Nije teško primijetiti da to dovodi do 60 puta većeg kompresije prikupljenih podataka.
Sada smo sigurni da se podaci prikupljaju, funkcija okidača nodata() radi i s grafikonima je sve u redu!
Validacija prikupljenih podataka i obrada grešaka
Nitko od nas ne želi prikupljati netočne ili nepouzdane podatke. Na primjer, znamo da senzor temperature treba vraćati podatke u rasponu od 0°C do 100°C i svaka druga vrijednost se trebala smatrati greškom i/ili ignorirati.
To je sada moguće putem ugrađenih pravila za preprocesiranje za validaciju podataka prema usklađenosti ili nesukladnosti s regularnim izrazima, rasponom vrijednosti, JSONPath i XMLPath.
Sada možemo upravljati reakcijom na grešku. Ako je temperatura izvan raspona, možemo jednostavno ignorirati takvu vrijednost, postaviti zadanu vrijednost (na primjer, 0°C), ili definirati svoju poruku o grešci, poput 'Senzor je oštećen' ili 'Zamijenite bateriju.'
Temperatura treba biti od 0 do 100, ostalo ignoriramo
Dobar primjer korištenja validacije je mogućnost provjere ulaznih podataka na prisutnost poruke o grešci i postavljanje te greške za cijelu metriku. Ovo je vrlo korisna funkcionalnost prilikom primanja podataka iz vanjskih API-ja.
Bilo koja transformacija podataka pomoću JavaScript-a
Ako nam ugrađena pravila preprocesiranja nisu dovoljna, sada nudimo potpunu slobodu korištenjem proizvoljnih skripti na jeziku JavaScript!
Samo jedna linija koda za pretvorbu stupnjeva Fahrenheita u Celzijuse
To omogoča neomejene možnosti obdelave vhodnih podatkov. Praktična korist te funkcionalnosti je ta, da zdaj ne potrebujemo zunanjih skriptov, ki smo jih uporabljali za kakršne koli operacije s podatki. Vse to je zdaj mogoče opraviti s pomočjo JavaScript.
Zdaj so možne transformacije podatkov, agregacije, filtri, aritmetske in logične operacije ter še mnogo več!
Pridobivamo koristne informacije iz izhoda Apache mod_status!
Testiranje predobdelave
Zdaj nam ni več treba ugibati, kako delujejo naši zapleteni scenariji predobdelave. Pojavila se je priročna preverba pravilnosti delovanja predobdelave neposredno iz vmesnika!
Obdelujemo milijone metrik na sekundo!
Do Zabbix 4.2 se je predobdelava izvajala izključno na strežniku Zabbix, kar je omejevalo možnosti uporabe proxyjev za porazdelitev obremenitve.
Od različice Zabbix 4.2 dobimo neverjetno učinkovito razširitev obremenitve s podporo za predobdelavo na strani proxyjev. Zdaj se tem ukvarjajo proxyji!
V kombinaciji s throttlingom ta pristop omogoča izvajanje visoko frekvenčnega obsežnega spremljanja in izvajanje milijonov preverjanj na sekundo, ne da bi obremenjevali osrednji strežnik Zabbix. Proxyji obdelujejo ogromne količine podatkov, pri čemer do strežnika Zabbix zaradi throttlinga prispe le njihova majhna količina, za en do dva reda manj.
Bolj preprosto nizkotežno odkrivanje
Ponovimo, da je nizkotežno odkrivanje (LLD) zelo močan mehanizem za samodejno odkrivanje vseh vrst virov za spremljanje (datotečnih sistemov, procesov, aplikacij, storitev itd.) ter samodejno ustvarjanje osnovnih elementov podatkov, sprožilcev, omrežnih vozlišč in drugih objektov. To izjemno prihrani čas, poenostavi konfiguracijo in omogoča uporabo enega predloge za omrežna vozlišča, ki imajo različne vire za spremljanje.
Nizkotežno odkrivanje je zahtevalo posebej oblikovan JSON. Vse, tako ne bo več!
Zabbix 4.2 omogoča nizkolegendarno odkrivanje (LLD), ki uporablja poljubno oblikovane podatke v formatu JSON. Zakaj je to pomembno? To omogoča komunikacijo z zunanjimi API-ji, na primer, brez uporabe skriptov in uporabo pridobljenih informacij za avtomatsko ustvarjanje omrežnih vozlišč, elementov podatkov in sprožilcev.
V povezavi s podporo za JavaScript to ustvarja fantastične možnosti za ustvarjanje predlog delovanja z različnimi viri podatkov, kot so na primer oblačni API-ji, API-ji aplikacij, podatki v formatih XML, CSV in tako naprej.
Povezujemo JSON z informacijami o procesih z LLD
Možnosti so resnično neomejene!
Podpora za TimescaleDB
Kaj je TimescaleDB? To je običajen PostgreSQL plus razširitveni modul ekipe TimescaleDB. TimescaleDB obljublja boljšo zmogljivost s pomočjo učinkovitejših algoritmov in strukture podatkov.
Poleg tega je še ena prednost TimescaleDB avtomatsko particioniranje tabel z zgodovino. TimescaleDB je hitrost in enostavnost vzdrževanja! Čeprav moram omeniti, da naša ekipa še ni izvedla resnega primerjanja zmogljivosti s standardnim PostgreSQL.
Trenutno je TimescaleDB precej mlad in hitro razvijajoč se izdelek. Uporabite z previdnostjo!
Enostavno upravljanje s oznakami
Če je bilo prej možno upravljati oznake le na ravni sprožilcev, je zdaj upravljanje oznak veliko bolj fleksibilno. Zabbix podpira oznake za predloge in omrežna vozlišča!
Vse odkrite težave dobijo oznake ne le sprožilca, temveč tudi omrežnega vozlišča ter predlog tega omrežnega vozlišča.
Določamo oznake za omrežno vozlišče
Bolj fleksibilna avto-registracija
Zabbix 4.2 omogoča filtriranje omrežnih vozlišč po imenu z uporabo regularnih izrazov. To omogoča ustvarjanje različnih scenarijev odkrivanja za različne skupine omrežnih vozlišč. Še posebej je koristno, če uporabljamo kompleksna pravila imenovanja naprav.
Bolj fleksibilno omrežno odkrivanje
Še eno izboljšanje je povezano z imenovanjem omrežnih vozlišč. Pojavila se je možnost upravljanja z imeni naprav pri omrežnem odkrivanju in pridobivanje imena naprave iz vrednosti metrike.
To je zelo potrebna funkcionalnost, zlasti pri omrežnem odkrivanju s SNMP in Zabbix agentom.
Samodejno dodelimo lokalno ime omrežnega vozlišča kot vidno ime
Testiranje funkcionalnosti obaveštavanja
Sada možeš direktno iz web-interfejsa poslati testnu poruku i proveriti da li način obaveštavanja funkcioniše. Ova funkcionalnost je posebno korisna za testiranje skripti integracije Zabbixa sa raznim sistemima obaveštavanja, sistemima zadataka i drugim spoljnim programima i API-evima.
Daljinsko praćenje komponenata infrastrukture Zabbix
Pojavila se mogućnost daljinskog praćenja unutrašnjih metrika Zabbix servera i proxy-a (metrika performansi i funkcionalnosti komponenata Zabbix-a).
Zašto je to potrebno? Ova funkcionalnost omogućava praćenje unutrašnjih metrika servera i proxy-a sa spoljne strane, što omogućava brzo otkrivanje i obaveštavanje o problemima čak i kada su svi komponeneti preopterećeni ili, na primer, kada postoji veliki broj neodposlatih podataka na proxy-u.
Podrška za HTML format za email poruke
Sada nismo ograničeni samo na običan tekst i možemo formirati lepe e-mail poruke, zahvaljujući podršci za HTML format. Vreme je da naučimo HTML + CSS!
Poruke su lakše za čitanje čak i uz minimalnu upotrebu HTML-a
Pristup spoljnim sistemima iz mrežnih karti
Pojavila se podrška za čitav niz novih makroa u korisničkim URL-ovima za bolju integraciju karata sa spoljnim sistemima. To omogućava jednim ili dva klika na ikonu čvora mreže otvaranje, na primer, tiketa u sistemu zadataka.
Jednim klikom otvaramo tiket u Jira
Pravila otkrivanja mogu biti zavisni elementi podataka
Zašto je to potrebno — možete pitati. To omogućava korišćenje podataka glavne metrike kako za otkrivanje, tako i za neposredno prikupljanje podataka. Na primer, u slučaju prikupljanja podataka sa Prometheus eksportera, Zabbix će izvršiti jedan HTTP zahtev i odmah iskoristiti dobijene informacije za sve zavisne elemente podataka: vrednosti metrika i pravila niskog nivoa otkrivanja.
Novi način vizualizacije problema na mapama
Pojavila se podrška za animirane GIF slike na mapama za bolje vizualizovanje problema.
Problematični uređaji su postali uočljiviji
Izvlačenje podataka iz HTTP zaglavlja u Web-monitoringu
U Web-monitoringu je dodana mogućnost odabira podataka iz dobijenog HTTP zaglavlja.
To omogoča ustvarjanje večstopenjskih scenarijev za spletno spremljanje ali spremljanje API-jev drugih ponudnikov, z uporabo avtorizacijskega žetona, pridobljenega v enem od korakov.
Izvlečemo AuthID iz HTTP naslova
Zabbix Sender uporablja vse IP naslove
Zabbix Sender zdaj pošilja podatke preko vseh IP naslovov iz parametra ServerActive datoteke s konfiguracijo agenta.
Nov priročen filter v konfiguraciji sprožilcev
Stran za konfiguracijo sprožilcev je dobila napreden filter za hitro in enostavno iskanje sprožilcev po določenih kriterijih.
Izbiramo sprožilce, povezane s storitvijo K8S
Prikazujemo natančen čas
Tukaj je vse preprosto, zdaj Zabbix prikazuje natančen čas, ko z miško premikamo po grafu.

Druga novovetja
- Izveden je bolj predvidljiv algoritem za spreminjanje vrstnega reda postavitve pripomočkov na nadzorni plošči.
- Možnost množičnega spreminjanja parametrov prototipov podatkovnih elementov
- Podpora za IPv6 pri preverjanju DNS: „net.dns“ in „new.dns.record“
- Dodana je bila možnost „skip“ za preverjanje „vmware.eventlog“
- Napaka pri izvajanju koraka predobdelave vključuje številko koraka
Kako se posodobiti?
Za prehod s starejših različic je potrebna le namestitev (strežniki in proxy) in novega vmesnika. Zabbix bo samodejno izvedel postopek posodobitve baze podatkov. Namestitev novih agentov ne bo potrebna.
Organiziramo brezplačne webinarje za vse, ki želijo podrobneje izvedeti o Zabbixu 4.2 in imeti možnost postavljati vprašanja ekipi Zabbix.
Ne pozabite na priljubljeni skupnosti Zabbix, kjer lahko vedno dobite nasvete in odgovore na svoja vprašanja v slovenščini od bolj izkušenih kolegov, in, če boste imeli srečo, tudi od samih razvijalcev Zabbixa. Novincem priporočamo .
Koristne poveznice
—
—
—
Izvor: habr.com
