La mijlocul lunii mai a fost lansată versiunea Zabbix 5.0, iar noi am organizat o serie de întâlniri online în diverse limbi pentru a demonstra comunității toate modificările și noutățile. Vă invităm să vizionați prezentarea directorului executiv și creatorului Zabbix, Alexei Vladychev, în care a explicat pas cu pas ce este nou în Zabbix 5.0.

Zabbix 4.2 și Zabbix 4.4
Să începem cu modificările introduse în versiunea Zabbix 4.0, în legătură cu utilizarea versiunilor LTS.
În versiunea Zabbix 4.2, care a fost lansată în aprilie 2019, au apărut următoarele funcționalități:
- Monitorizare de înaltă frecvență prin throttling, care asigură scalabilitate și creșterea NVPS, ceea ce înseamnă o detectare mai rapidă a problemelor și direcționarea notificărilor fără o mare încărcare pe Zabbix.
- Colectarea datelor folosind agentul HTTP.
- Suport pentru colectarea datelor de la Prometheus Pro.
- Preprocesarea suportă validarea și JavaScript, care permite transformarea oricăror date colectate.
- Preprocesarea pe partea de proxy, care asigură o scalabilitate mai eficientă prin intermediul proxy-ului.
- Gestionarea îmbunătățită a etichetelor — metainformație la nivel de evenimente și probleme, cu care este ușor de lucrat, deoarece etichetele sunt suportate atât la nivel de șabloane, cât și la nivel de noduri de rețea.
În septembrie anul trecut a fost lansată versiunea Zabbix 4.4, care oferea următoarele funcționalități:
- Un nou agent Zabbix.
- Suport pentru Webhook pentru notificări și alertări, care permite integrarea cu sisteme externe.
- Suport pentru TimescaleDB.
- Baza de cunoștințe integrată pentru metrici și declanșatori a devenit vizibilă pentru utilizatorii Zabbix. De exemplu, utilizatorii pot folosi descrierea elementelor de date și a declanșatorilor în Monitoring > Latest data.
- Un nou standard pentru șabloane.
Zabbix 5.0
Astăzi vom vorbi despre versiunea LTS a Zabbix 5.0, care va fi suportată timp de 5 ani. Suportul pentru versiunea 4.4 se va încheia în termen de o lună. Versiunea LTS Zabbix 3.0 va fi suportată încă 3,5 ani.
Zabbix asigură monitorizarea multor lucruri, lista cărora poate fi detaliată pe pagina , unde sunt prezentate șabloanele pentru monitorizare și pluginurile, inclusiv pentru noul agent.

Șabloanele disponibile pentru monitorizare și integrare
În plus, există posibilități de integrare cu diverse sisteme, inclusiv sisteme de ticketing, sisteme ITSM și sisteme de livrare de mesaje prin Webhook.

Posibilitățile de integrare
În Zabbix 5.0, suportul încorporat pentru integrarea cu diverse sisteme de ticketing și sisteme de notificare a fost extins:

Integrarea cu diverse sisteme
Lista șablonilor încorporați pentru monitorizarea aplicațiilor și dispozitivelor a fost extinsă:

Șabloane încorporate pentru monitorizarea aplicațiilor și dispozitivelor
Toate actualizările sunt disponibile pentru descărcare în .
Orice utilizator sau dezvoltator poate participa la Zabbix cu contribuții gata realizate - șabloane sau plugin-uri, folosind o procedură simplă:
- Semnarea Acordului de Contribuție Zabbix (ZCA) pe .
- Publicarea unui Pull Request pe .
- Examinarea cererii de către echipa de dezvoltare. Dacă pluginul sau șablonul respectă standardele Zabbix, acesta este inclus în produs, iar munca acelui dezvoltator va fi oficial susținută de echipa Zabbix.
Zabbix este un software open-source, disponibil pentru vizionare, studiu și modificare. Utilizatorului i se oferă posibilitatea de a folosi liber produsul, de a participa la îmbunătățirea programului sau de a utiliza codul pentru noi aplicații. Pe de altă parte, echipa Zabbix depune eforturi pentru a asigura că Zabbix poate fi instalat ușor pe diverse platforme.
Dezvoltatorii Zabbix oferă pachete pentru aproape toate distribuțiile populare și diverse platforme de virtualizare. În plus, Zabbix poate fi instalat cu un singur clic în cloudul public. De asemenea, Zabbix este disponibil pe platformele Red Hat Openshift sau OpenStack.

Pachetele Zabbix pentru distribuții și platforme
Suport pentru Zabbix Agent 2 pentru Windows și Linux
Noul Zabbix Agent 2 este una dintre cele mai bune soluții de pe piață.
- Oferă o arhitectură bazată pe pluginuri și suportă scripturi pentru colectarea de date, care pot funcționa continuu.
- Susține verificări active paralele, conexiuni permanente la sisteme externe, ceea ce este util, de exemplu, pentru monitorizarea eficientă a bazelor de date.
- Susține capcane și evenimente, ceea ce este important pentru monitorizarea, de exemplu, a dispozitivelor MQTT.
- Noua versiune a agentului se instalează ușor (deoarece noul agent păstrează toate funcționalitățile anterioare).
În plus, noul agent din Zabbix 5.0 oferă suport pentru stocarea persistentă a datelor. Informațiile care nu au fost trimise anterior erau stocate doar în memoria tampon a agentului, iar în noua versiune este disponibilă configurarea stocării acestor informații pe disc.

Stocarea permanentă a datelor
Acest lucru este important în cazul monitorizării sistemelor critice și a comunicațiilor instabile, deoarece un număr mare de date esențiale este salvat până la trimiterea acestora către serverul Zabbix. Opțiunea este, de asemenea, utilă pentru conexiunile prin satelit, care pot fi indisponibile pentru perioade îndelungate.
IMPORTANT! În Zabbix 5.0 a fost păstrat suportul pentru Zabbix Agent 1.
Schimbările în sistemul de securitate în Zabbix 5.0
1. În noua versiune este suportat un proxy HTTP pentru webhook, care permite realizarea de conexiuni între serverul Zabbix și sistemele externe de notificare într-un mod mai sigur și gestionabil.
Dacă este necesară integrarea serverului Zabbix în rețeaua locală cu un sistem extern, de exemplu, JIRA în cloud, se poate menține conexiunea printr-un proxy HTTP, ceea ce îmbunătățește controlabilitate și fiabilitatea conexiunii.
2. Atât pentru agentul vechi, cât și pentru cel nou există opțiunea de a alege exact ce verificări trebuie să fie disponibile pe un anumit agent. De exemplu, se poate limita numărul de verificări, creând efectiv liste albe și negre, definind cheile acceptate.
- Listă albă pentru verificările legate de MySQL
AllowKey=mysql[*] DenyKey=* - Listă neagră pentru a interzice toate scripturile shell
DenyKey=system.run[*] - Listă neagră pentru a interzice accesul la /etc/password
DenyKey=vfs.file.contents[/etc/passwd,*]
3. Este posibilă alegerea algoritmilor de criptare pentru toate componentele Zabbix, pentru a evita utilizarea de cifruri nesigure pentru conexiunile TLS. Acest lucru este important pentru monitorizarea mediilor care aplică anumite standarde de securitate.

Alegerea algoritmilor de criptare pentru conexiunile TLS
4. În Zabbix 5.0 a apărut suportul pentru conexiuni criptate cu baza de date. În prezent, este disponibilă doar conexiunea criptată cu PostgreSQL și MySQL.

Conexiuni criptate cu baza de date
5. Zabbix 5.0 a trecut de la MD5 la SHA256 pentru stocarea hash-urilor parolelor utilizatorilor în baza de date, deoarece în prezent acesta este cel mai sigur algoritm.
6. Zabbix 5.0 suportă macrocomenzi secrete pentru stocarea oricăror informații confidențiale, cum ar fi parole și token-uri API, la care utilizatorii finali nu au acces.

Macrocomenzi secrete
7. Toate conexiunile Zabbix cu sisteme externe și conexiunile interne cu agenții sunt sigure. Este acceptată criptarea utilizând certificate TLS sau prin utilizarea unei chei pre-publicate (pre-shared key encryption) pentru conexiunea cu agenții și cu proxy-urile, fie prin HTTPS. Securitatea pe partea agenților poate fi întărită prin liste albe și negre. Interfața funcționează prin HTTPS.

Conexiuni sigure
8. Suport SAML pentru a asigura un punct unic de autentificare de la un furnizor de servicii de identificare de încredere, astfel încât datele de autentificare ale utilizatorului să nu părăsească limitele firewall-ului.

Identificare SAML
Suportul SAML permite integrarea Zabbix cu diverși furnizori locali și în cloud de servicii de identificare, cum ar fi Microsoft ADFS, OpenAM, SecurAuth, Okta, Auth0, precum și Azure, AWS sau Google Cloud Platform.
Ușurința de utilizare a Zabbix 5.0
1. Interfața utilizatorului, optimizată pentru ecrane largi. Am mutat meniul din partea de sus, unde întotdeauna lipsește spațiu, în partea stângă a ecranului. Meniul este în continuare afișat în modul complet, minim și ascuns.

Interfață optimizată pentru ecran larg
2. Copierea widget-urilor din panouri permite crearea foarte rapidă de noi PANOURI. Pentru asta, în PANOU trebuie să selectezi widget-ul dorit, să dai click pe Copy

Copiere widget
și să inserezi widget-ul în panoul dorit.

Inserarea widget-ului copiat
3. Exportarea graficelor. Pentru a copia un grafic și a-l trimite, de exemplu, prin e-mail, poți obține graficul în format PNG, selectând widget-ul dorit și dând click pe Descarcă imaginea.

Exportarea graficelor
4. Filtrare după etichete: Problem by severity și Problem hosts. A apărut posibilitatea, de exemplu, de a aduna într-un singur centru de date datele despre toate problemele legate de un nod de rețea.

Filtrarea după etichete
5. Suport pentru module pentru extinderea interfeței Zabbix. Pentru a instala un modul independent, trebuie să-l copiezi într-un director specific. Modulele permit extinderea funcționalităților existente ale interfeței, crearea de noi pagini, modificarea structurii meniului, de exemplu, adăugând elemente.
Orice utilizator poate scrie și integra un modul. Pentru asta, modulul se copiază în folderul modules, după care devine vizibil pentru interfață, unde poate fi activat sau dezactivat.

Adăugarea unui nou modul
6. Ușurința de navigare pe resursele legate de nodurile rețelei. În Monitorizare > Gazde este afișată o listă de dispozitive monitorizate de Zabbix: noduri de rețea, servicii, dispozitive de rețea etc. De asemenea, este disponibilă navigarea rapidă către ecrane, grafice și problemele dispozitivelor specifice.
Am eliminat tab-urile Monitorizare > Grafice și Monitorizare > Web-uri, și toată navigarea se face prin Monitorizare > Gazde. Informațiile afișate pot fi filtrate, inclusiv după etichete, ceea ce permite afișarea dispozitivelor dezactivate

Navigarea pe resursele legate de nodurile rețelei
De exemplu, poți selecta dispozitivele care aparțin serviciilor utilizatorilor finali, alegând ‘Serviciu’, precum și stabilind nivelul de importanță al acestor probleme.

Capacități de filtrare
7. Noua operațiune de preprocesare — ‘Înlocuire‘ permite realizarea mai multor lucruri utile, care înainte puteau fi făcute doar cu ajutorul expresiilor regulate, destul de complexe pentru mulți utilizatori.
Replace permite în mod efectiv înlocuirea unei linii sau a unui simbol cu altele, ceea ce permite simplificarea conversiei datelor obținute în format text în reprezentări numerice.

Operatorul Replace
8. Operatorul JSONPath, care permite extragerea numelui atributelor într-o formă convenabilă

Operator pentru JSONPath
9. Afișarea mesajelor de e-mail Zabbix. În versiunile anterioare, toate mesajele de e-mail de la Zabbix în folderul Încoming erau afișate sub formă de listă. Începând cu Zabbix 5.0, mesajele vor fi grupate după probleme.

Gruparea mesajelor de e-mail de la Zabbix
10. Suport pentru macrocomenzi personalizate pentru IPMI pentru numele de utilizator și parolă. Dacă pentru numele de utilizator și parolă sunt utilizate macrocomenzi secrete, accesul la valoarea lor va fi restricționat.

Suport pentru macrocomenzi personalizate
11. Modificare în masă a macrocomenzilor personalizate pentru nodurile rețelei. În noua versiune, poți deschide lista șabloanelor, selecta lista nodurilor de rețea și adăuga macrocomenzi sau schimba valorile macrocomenzilor existente,

Adăugarea și modificarea macrocomenzilor personalizate
și de asemenea să elimini anumite macrocomenzi sau toate macrocomenzile din șabloanele selectate pentru nodurile rețelei.

Eliminarea macrocomenzilor personale sau a tuturor macrocomenzilor
12. Controlul formatului mesajelor la nivelul modului de notificare. În Tipuri de medii a apărut un tab Șabloane media cu șabloanele de mesaje.

Șabloanele metodelor de notificare
Pentru diferite tipuri de mesaje, pot fi definite diverse șabloane.

Definirea șablonului pentru tipurile de mesaje
În versiunile anterioare, era necesar să gestionați aceste mesaje la nivel de acțiuni, definind mesajele și subiectul implicit.

Gestionarea șabloanelor la nivel de acțiuni
În noua versiune, totul poate fi definit la nivel global, iar la nivel de mesaje — rescris setările globale.

Gestionarea șabloanelor la nivel global
Pentru majoritatea utilizatorilor, este suficient să definească formatele șabloanelor la nivel de metode de notificare. Mai mult, după importul unei noi metode de notificare, toate formatele de șabloane corespunzătoare sunt deja parte din aceasta.
13. Aplicarea extinsă a JavaScript. JavaScript este utilizat pentru scripturi de preprocesare, pentru Webhook etc. În linia de comandă, lucrul cu JavaScript nu este simplu.
În Zabbix 5.0 se utilizează o nouă utilitate — zabbix_js, care rulează JavaScript, ce primește date, le procesează și generează valori de ieșire.

Utilitatea zabbix_js

Exemple de utilizare a utilității zabbix_js
14. Suport pentru operații textuale prin expresii de declanșare permet să se verifice versiunile componentelor instalate, să se compare valorile cu anumite constante, constantă ce poate fi un macro personalizat,
{host:zabbix.version.last()}="5.0.0"
{host:zabbix.version.last()}="{$ZABBIX.VERSION}compara ultima valoare cu cea anterioară, de exemplu, când este vorba despre date textuale,
{host:text.last()}<>{host.text.prev()}sau
{host:text.last(#1)}<>{host.text.prev(#2)}sau compară valorile textuale ale diferitelor metrici.
{hostA:textA.last()}={hostB:textB.last()}15. Automatizare și descoperire.
- Sunt disponibile noi verificări JMX pentru obținerea și descoperirea listei contoarelor JMX, ceea ce este foarte util, de exemplu, pentru monitorizarea aplicațiilor Java, precum și pentru automatizarea creării elementelor de monitorizare, metricilor, declanșatoarelor și graficelor.
jmx.get[]și
jmx.discovery[]
Verificări JMX - În noua versiune a apărut o cheie pentru monitorizarea contoarelor de performanță Windows, care este susținută de vechile și noile agenți în limbile română și engleză și permite, de exemplu, descoperirea numărului de procesoare, sisteme de fișiere, servicii etc.

Monitorizarea contoarelor de performanță Windows cu ajutorul cheii perf_counter - Monitorizarea ODBC a devenit mult mai simplă. Anterior, toate parametrii pentru monitorizarea ODBC trebuiau descriși într-un fișier extern /etc/odbc.ini, la care nu se avea acces din partea interfeței Zabbix. În noua versiune, aproape toți parametrii pot fi parte a cheii de metrică.

Cheia de metrică cu descrierea parametruÎn noua versiune, se poate stabili numele serverului și portul la nivel de metrică, iar numele și parola pentru acces pot fi utilizate prin intermediul macros-urilor secrete pentru siguranță.

Utilizarea macros-urilor secrete - Când se folosește protocolul IPMI pentru monitorizarea echipamentelor, a apărut posibilitatea de a crea șabloane mai simple pentru automatizare folosind ipmi.get.

ipmi.get
16. Testarea elementelor de date din interfață. În Zabbix 5.0 a apărut posibilitatea testării unor anumite elemente de date și, mai important, șabloanelor de elemente de date din interfață.

Testarea elementelor de date
Orice probleme apărute sunt afișate în interfață.

Afișarea problemelor în interfață
Un algoritm similar este utilizat pentru șabloanele de elemente de date. În plus, dacă un element de date nu este suportat, pentru a afla motivul eșecului, trebuie doar să apăsați Test.
17. Testarea modalităților de notificare, ceea ce a apărut în Zabbix 4.4, se păstrează, ceea ce este important pentru integrarea Zabbix cu alte sisteme, cum ar fi sistemele de ticketing.

Testarea modalităților de notificare
18. Suport pentru macros-uri personalizate pentru prototipurile elementelor de date. Pentru a determina valorile macros-urilor personalizate, se pot utiliza macros-uri LLD.

Utilizarea macros-urilor LLD pentru determinarea valorilor macros-urilor personalizate
19. Suport pentru date Float64, care sunt necesare în principal pentru monitorizarea unor valori foarte mari, în Zabbix este necesară pentru suportul datelor obținute de la agenții Prometheus.
În cazul instalării Zabbix 5.0, migrarea automată a datelor pe tipul standard Float64 nu se produce. Utilizatorul rămâne cu posibilitatea de a utiliza vechile tipuri de date. Scripturile de migrare pe Float64 se execută manual și schimbă tipurile de date din tabelele istorice. Înlocuirea automată nu este utilizată, deoarece durează foarte mult timp.
20. Îmbunătățirea scalabilității Zabbix 5.0: optimizarea interfeței și eliminarea 'gâturilor de sticlă'
- Au fost eliminate listele derulante pentru selectarea nodurilor de rețea, deoarece această funcție nu este scalabilă.
- Au apărut limite „încorporate” pentru dimensiunile tabelelor. Prezentare generală.
- Au fost adăugate noi funcționalități în Monitoring > Hosts > Graphs.
- A apărut funcția de paginare (Monitoring > Hosts > Web) acolo unde nu exista anterior.
21. Compresie îmbunătățită.
Compresia în Zabbix se bazează pe extensia pentru PostgreSQL - TimescaleDB (începând cu Zabbix 4.4). TimescaleDB asigură secționarea automată a bazei de date și îi îmbunătățește performanța, deoarece performanța TimescaleDB nu depinde practic de dimensiunea bazei de date.
În Zabbix 5.0, Administration > General > Housekeeping se poate configura, de exemplu, compresia datelor mai vechi de 7 zile. Acest lucru reduce semnificativ spațiul pe disc necesar (cu aproape zece ori, conform utilizatorilor), îmbunătățind economia de spațiu pe disc și sporind performanța.

Compresia utilizând TimescaleDB.
22. Configurarea SNMP la nivel de interfață.. În Zabbix 5.0, în loc de trei tipuri de elemente de date, se utilizează doar unul - SNMP agent. Toate atributele SNMP au fost mutate la nivelul interfeței nodurilor de rețea, ceea ce simplifică șabloanele, comutarea între versiunile SNMP etc.

Configurarea SNMP la nivel de interfață.
23. Dependența monitorizării disponibilității nodurilor de rețea de disponibilitatea proxy-ului. permite afișarea problemei de disponibilitate a proxy-ului ca prioritate în cazul în care nodurile de rețea nu sunt disponibile la monitorizarea folosind un declanșator cu funcția nodata:
{HostA:item.nodata(1m)}=1
Disponibilitatea nodurilor de rețea este determinată de disponibilitatea proxy-ului.
Funcția nodata implicit ia în considerare disponibilitatea proxy-ului. Pentru o verificare mai strictă, care nu ia în considerare disponibilitatea proxy-ului, se folosește al doilea parametru - strict:
{HostA:item.nodata(1m,strict)}=124. Gestionarea regulilor de descoperire la nivel de bază. În Zabbix 5.0 a apărut un filtru LLD, care permite vizualizarea inclusiv a regulilor de descoperire nesuportate.

Filtru LLD.
25. Posibilitatea de a elimina confirmarea unei probleme (unacknowledge) permite corectarea erorilor și este utilă în crearea fluxurilor de lucru care depind de confirmarea problemei.

Eliminarea confirmării unei probleme.
26. Modificarea regulilor de descoperire la nivel de bază. —posibilitatea de a adăuga excepții în cadrul detectării obiectelor rezultante din monitorizarea sistemelor de fișiere, ceea ce permite, în cazul detectării la un nivel scăzut, să se creeze sau să nu se creeze anumite obiecte, triggere, elemente de date etc., să se schimbe importanța problemelor, să se adauge etichete pentru anumite obiecte, să se excludă obiecte, de exemplu, sistemele de fișiere temporare, din căutare, să se schimbe intervalul de actualizare a datelor etc.

Excluderea sistemelor de fișiere temporare din detectarea la un nivel scăzut
De exemplu, se poate schimba nivelul de prioritate al triggerelor pentru sistemele de fișiere Oracle detectate, menținând nivelul de prioritate al triggerelor pentru celelalte sisteme de fișiere neschimbat.

Schimbarea nivelului de prioritate al triggerelor pentru anumite sisteme de fișiere
27. Macro-uri noi în Zabbix 5.0 permit îmbunătățirea calității monitorizării.

Macro-uri noi în Zabbix 5.0
28. Alte noutăți în Zabbix 5.0:

Îmbunătățiri în Zabbix 5.0
29. Întreruperea suportului

Funcționalitate nesuportată
Concluzie
Actualizarea la Zabbix 5.0 este foarte simplă! Instalați și rulați noile fișiere binare pentru server și fișierele frontend, iar serverul va actualiza automat baza de date.
Informațiile privind procedura de actualizare Zabbix sunt disponibile la:
IMPORTANT!
- Actualizarea datelor istorice la formatul Float64 nu este obligatorie.
- Datele TimescaleDB sunt disponibile doar pentru citire.
- Versiunea minimă necesară este PHP 7.2.
- DB2 nu este acceptat ca backend pentru serverul Zabbix
(!) Videoclipurile și slide-urile prezentărilor lui Alexey Vladyshev și ale altor speakeri de la Zabbix Meetup Online (rus) pot fi vizionate .
Sursa: habr.com





