È uscita Zabbix 4.2

Il nostro team è molto felice di condividere la notizia che è stata rilasciata una nuova versione del sistema di monitoraggio open source. Zabbix 4.2!

È uscita Zabbix 4.2

È la versione 4.2 la risposta alla domanda fondamentale sulla vita, l'universo e il monitoraggio in generale? Scopriamolo!

Ricordiamo che Zabbix è un sistema universale per il monitoraggio delle prestazioni e della disponibilità di server, attrezzature ingegneristiche e di rete, applicazioni, database, sistemi di virtualizzazione, contenitori, servizi IT, servizi web.

Zabbix implementa un ciclo completo dalla raccolta dei dati, alla loro elaborazione e trasformazione, all'analisi dei dati ottenuti, fino alla conservazione di questi dati, visualizzazione e invio di avvisi utilizzando regole di escalation. Inoltre, il sistema offre flessibili opportunità di espansione dei metodi di raccolta dati e avvisi, nonché possibilità di automazione tramite API. Un'unica interfaccia web realizza la gestione centralizzata delle configurazioni di monitoraggio e della distribuzione dei diritti di accesso tra diversi gruppi di utenti. Il codice del progetto è distribuito liberamente sotto licenza. GPLv2.

Zabbix 4.2 è una nuova versione non LTS con un periodo di supporto ufficiale ridotto. Consigliamo agli utenti che puntano a un ciclo prolungato di utilizzo dei prodotti software di utilizzare le versioni LTS, come le 3.0 e 4.0.

Quindi, parliamo delle novità e dei principali miglioramenti della versione 4.2:

Più piattaforme ufficiali

È uscita Zabbix 4.2
Oltre ai pacchetti ufficiali esistenti, offriamo anche nuove build per:

  • RaspberryPi, Mac OS/X, SUSE Enterprise Linux Server 12
  • MSI per l'agente Windows
  • Immagini Docker

Supporto integrato per Prometheus per il monitoraggio delle applicazioni

Zabbix è in grado di raccogliere dati in vari modi (push/pull) da diverse fonti di dati. Si tratta di JMX, SNMP, WMI, HTTP/HTTPS, RestAPI, XML Soap, SSH, Telnet, agenti e script, e altre fonti. E ora diamo il benvenuto al supporto per Prometheus!

A rigor di termini, la raccolta di dati dagli esportatori di Prometheus era possibile anche in precedenza grazie al tipo di elementi dati HTTP/HTTPS e alle espressioni regolari.

Tuttavia, la nuova versione consente di lavorare con Prometheus in modo estremamente efficiente grazie al supporto integrato del linguaggio di interrogazione PromQL. L'uso di metriche dipendenti consente di raccogliere e elaborare i dati in modo ottimale: si richiedono i dati una sola volta e poi li distribuiamo alle metriche necessarie.

È uscita Zabbix 4.2
Otteniamo il valore di una metrica specifica

È importante notare che attualmente il rilevamento a basso livello può utilizzare i dati raccolti per generare automaticamente metriche. In questo caso, Zabbix trasforma i dati ricevuti in formato JSON, con cui è molto comodo lavorare.

È uscita Zabbix 4.2
Troviamo metriche utilizzando il filtro nel linguaggio di query PromQL

Attualmente esistono più di 300 integrazioni e ricette per il monitoraggio di servizi e applicazioni di terze parti tramite Zabbix. Il supporto per Prometheus permetterà di aggiungere un intero insieme di applicazioni con esportatori ufficiali o supportati dalla comunità di Prometheus. Questi monitoraggi riguardano servizi, contenitori e risorse cloud popolari.

Monitoraggio efficace ad alta frequenza

Vogliamo rilevare i problemi il più rapidamente possibile? Certo, non ci sono dubbi! Spesso, questo approccio porta a dover interrogare i dispositivi troppo frequentemente e raccogliere dati, il che provoca un maggiore carico sul sistema di monitoraggio. Come evitarlo?

Abbiamo implementato un meccanismo di throttling nelle regole di preprocessamento. Il throttling, in sostanza, ci consente di saltare valori identici.

Supponiamo di monitorare lo stato di un'applicazione critica. Ogni secondo controlliamo se la nostra applicazione funziona o meno. Allo stesso tempo, Zabbix riceve un flusso continuo di dati da 1 (funziona) e 0 (non funziona). Ad esempio: 1111111111110001111111111111…

Quando tutto procede bene con la nostra applicazione, Zabbix riceve un flusso di soli uno. È necessario elaborarli? In effetti no, poiché ci interessa solo il cambiamento di stato dell'applicazione, non vogliamo raccogliere e memorizzare così tanti dati. Quindi, il throttling consente di saltare il valore se è identico al precedente. Alla fine, otterremo solo dati sul cambiamento di stato, ad esempio, 01010101… È informazioni più che sufficienti per rilevare problemi!

I valori saltati vengono semplicemente ignorati da Zabbix, non vengono registrati nella cronologia e non influenzano in alcun modo i trigger. Dal punto di vista di Zabbix, i valori saltati non esistono.

È uscita Zabbix 4.2
Ignoriamo i valori ripetuti

Ottimo! Ora possiamo interrogare molto spesso i dispositivi, scoprendo immediatamente i problemi senza memorizzare informazioni non necessarie nel database.

E i grafici? Saranno vuoti a causa della mancanza di dati! E come capire se Zabbix sta raccogliendo dati, se la maggior parte di questi dati sarà ignorata?

Abbiamo pensato anche a questo! Zabbix offre un altro tipo di throttling, il throttling con punti di controllo (throttling with heartbeat).

È uscita Zabbix 4.2
Controlliamo una volta al minuto se la metrica è viva

In questo caso, Zabbix, nonostante il flusso di dati ripetuto, conserverà almeno un valore nell'intervallo di tempo specificato. Se i dati vengono raccolti ogni secondo e l'intervallo è di un minuto, Zabbix trasformerà il flusso di dati al secondo in un flusso di dati al minuto. Non è difficile notare che questo porta a una compressione di 60 volte dei dati raccolti.

Ora siamo certi che i dati vengono raccolti, la funzione del trigger nodata() funziona e i grafici sono a posto!

Validazione dei dati raccolti e gestione degli errori

Nessuno di noi vuole raccogliere dati errati o inaffidabili. Ad esempio, sappiamo che un sensore di temperatura dovrebbe restituire dati nell'intervallo da 0°C a 100°C, e qualsiasi altro valore dovrebbe essere considerato errato e/o ignorato.

Adesso è possibile grazie alle regole di validazione dei dati integrate nel preprocessamento, che possono verificare la corrispondenza o l'assenza di corrispondenza con espressioni regolari, intervalli di valori, JSONPath e XMLPath.

Ora possiamo gestire la reazione agli errori. Se la temperatura è al di fuori dell'intervallo, possiamo semplicemente ignorare quel valore, assegnare un valore predefinito (ad esempio, 0°C), oppure definire un nostro messaggio di errore, come "Sensore danneggiato" o "Sostituire la batteria".

È uscita Zabbix 4.2
La temperatura deve essere tra 0 e 100, il resto viene ignorato

Un buon esempio di utilizzo della validazione è la possibilità di controllare i dati in ingresso per la presenza di messaggi di errore e di impostare questo errore per l'intera metrica. Questa è una funzionalità molto utile quando si ricevono dati da API esterne.

Qualsiasi trasformazione dei dati tramite JavaScript

Se le regole di preprocessamento integrate non sono sufficienti, ora offriamo piena libertà utilizzando script arbitrari in JavaScript!

È uscita Zabbix 4.2
Basta una sola riga di codice per convertire gradi Fahrenheit in gradi Celsius

Questo apre infinite possibilità per l'elaborazione dei dati in entrata. Il vantaggio pratico di questa funzionalità è che ora non abbiamo più bisogno di script esterni che usavamo per qualsiasi operazione con i dati. Ora tutto questo può essere fatto tramite JavaScript.

Ora sono possibili trasformazioni dei dati, aggregazione, filtri, operazioni aritmetiche e logiche e molto molto altro!

È uscita Zabbix 4.2
Estraiamo informazioni utili dall'output di Apache mod_status!

Testiamo il preprocessing

Ora non dobbiamo più indovinare come funzionano i nostri complessi scenari di preprocessing. È disponibile un facile controllo della correttezza del preprocessing direttamente dall'interfaccia!

È uscita Zabbix 4.2

Elaboriamo milioni di metriche al secondo!

Fino a Zabbix 4.2, il preprocessing era gestito esclusivamente dal server Zabbix, il che limitava le possibilità di utilizzo dei proxy per distribuire il carico.

A partire dalla versione Zabbix 4.2 otteniamo un'incredibile efficienza nella scalabilità del carico grazie al supporto per il preprocessing sul lato proxy. Ora se ne occupano i proxy!

È uscita Zabbix 4.2

In combinazione con il throttling, questo approccio consente di eseguire un monitoraggio ad alta frequenza e scalato, effettuando milioni di controlli al secondo senza sovraccaricare il server centrale di Zabbix. I proxy elaborano enormi volumi di dati, e solo una piccola parte di essi, tramite throttling, arriva al server Zabbix, inferiore di uno o due ordini di grandezza.

Rilevamento a basso livello più semplice

Ricordiamo che il rilevamento a basso livello (LLD) è un meccanismo molto potente per la rilevazione automatica di qualsiasi tipo di risorse da monitorare (sistemi di file, processi, applicazioni, servizi, ecc.) e per la creazione automatica di elementi di dati, trigger, nodi di rete e altri oggetti. Questo fa risparmiare tempo incredibile, semplifica la configurazione e consente di utilizzare un solo modello per i nodi di rete che hanno risorse diverse da monitorare.

Il rilevamento a basso livello richiedeva un JSON formattato in modo speciale. Questo non accadrà più!

Zabbix 4.2 consente al rilevamento di basso livello (LLD) di utilizzare dati arbitrariamente formattati in JSON. Perché è importante? Questo permette di comunicare, ad esempio, con API esterne senza dover ricorrere a script e di utilizzare le informazioni ottenute per creare automaticamente nodi di rete, elementi dati e trigger.

In combinazione con il supporto per JavaScript, ciò crea possibilità fantastiche per la creazione di modelli che lavorano con diverse fonti di dati, come ad esempio API cloud, API di applicazioni, dati in formati XML, CSV e molto altro.

È uscita Zabbix 4.2
Colleghiamo JSON con le informazioni sui processi tramite LLD

Le possibilità sono veramente illimitate!

Supporto per TimescaleDB

È uscita Zabbix 4.2

Che cos'è TimescaleDB? È un normale PostgreSQL più un modulo di estensione del team di TimescaleDB. TimescaleDB promette migliori prestazioni grazie a algoritmi e strutture di dati più efficienti.

Inoltre, un altro vantaggio di TimescaleDB è la partizione automatica delle tabelle storiche. TimescaleDB significa velocità e facilità di manutenzione! Tuttavia, devo notare che il nostro team non ha ancora effettuato un'analisi approfondita delle prestazioni rispetto a un normale PostgreSQL.

Al momento, TimescaleDB è un prodotto piuttosto giovane e in rapida evoluzione. Usare con cautela!

Gestione dei tag semplificata

Se prima i tag potevano essere gestiti solo a livello di trigger, ora la gestione dei tag è molto più flessibile. Zabbix supporta i tag per modelli e nodi di rete!

Tutti i problemi rilevati ricevono tag non solo dal trigger, ma anche dal nodo di rete e dai modelli di quel nodo di rete.

È uscita Zabbix 4.2
Definiamo i tag per il nodo di rete

Autoregistrazione più flessibile

Zabbix 4.2 consente di filtrare i nodi di rete per nome, utilizzando espressioni regolari. Questo consente di creare vari scenari di rilevamento per diversi gruppi di nodi di rete. Particolarmente utile quando utilizziamo regole di denominazione complesse per i dispositivi.

Rilevamento di rete più flessibile

Un altro miglioramento riguarda la denominazione dei nodi di rete. È stata introdotta la possibilità di gestire i nomi dei dispositivi durante il rilevamento di rete e di ottenere il nome del dispositivo dal valore della metrica.

Questa è una funzionalità molto utile, specialmente durante il rilevamento di rete tramite SNMP e Zabbix agent.

È uscita Zabbix 4.2
Assegniamo automaticamente il nome locale del nodo di rete come nome visibile

Verifica della funzionalità dei metodi di notifica

Ora è possibile inviare un messaggio di prova direttamente dall'interfaccia web e verificare se il metodo di notifica funziona. Questa funzionalità è particolarmente utile per testare gli script di integrazione di Zabbix con vari sistemi di notifica, sistemi di ticketing e altri programmi e API esterni.

È uscita Zabbix 4.2

Monitoraggio remoto dei componenti dell'infrastruttura Zabbix

È ora possibile monitorare da remoto le metriche interne del server Zabbix e dei proxy (metriche di prestazione e funzionalità dei componenti di Zabbix).

A cosa serve? Questa funzionalità consente di monitorare le metriche interne dei server e dei proxy, permettendo di rilevare rapidamente e segnalare i problemi anche se i componenti stessi sono sovraccarichi o, ad esempio, se ci sono grandi volumi di dati non inviati sul proxy.

Supporto per il formato HTML per le email

Ora non siamo più limitati al semplice testo e possiamo creare email più belle, grazie al supporto per il formato HTML. È tempo di esplorare HTML + CSS!

È uscita Zabbix 4.2
I messaggi sono più facili da percepire anche con un uso minimo dell'HTML

Accesso a sistemi esterni dalle mappe di rete

È stato introdotto il supporto per un intero insieme di nuovi macro negli URL personalizzati per una migliore integrazione delle mappe con sistemi esterni. Ciò consente di aprire, ad esempio, un ticket nel sistema di ticketing con uno o due clic sull'icona del nodo della rete.

È uscita Zabbix 4.2
Apriamo un ticket in Jira con un clic

La regola di rilevamento può essere un elemento dipendente dei dati

Perché è utile, vi chiederete. Ciò consente di utilizzare i dati della metrica principale sia per il rilevamento che per la raccolta diretta dei dati. Ad esempio, nel caso della raccolta dati da un esportatore Prometheus, Zabbix eseguirà una richiesta HTTP e utilizzerà immediatamente le informazioni ricevute per tutti gli elementi di dati dipendenti: valori delle metriche e regole di rilevamento di basso livello.

Nuovo modo di visualizzare i problemi nelle mappe

È stato introdotto il supporto per immagini GIF animate nelle mappe per una visualizzazione dei problemi più evidente.

È uscita Zabbix 4.2
I dispositivi problematici sono diventati più evidenti

Estrazione dei dati dagli header HTTP nel monitoraggio web

Nel monitoraggio web è stata aggiunta la possibilità di selezionare i dati dall'header HTTP ricevuto.

Questo consente di creare scenari di monitoraggio web multi-step o monitoraggio delle API di terze parti, utilizzando un token di autorizzazione ottenuto in uno dei passaggi.

È uscita Zabbix 4.2
Estraiamo l'AuthID dall'intestazione HTTP

Zabbix Sender utilizza tutti gli indirizzi IP

Zabbix Sender ora invia dati su tutti gli indirizzi IP dal parametro ServerActive del file di configurazione dell'agente.

È uscita Zabbix 4.2

Un nuovo filtro utile nella configurazione dei trigger

La pagina di configurazione dei trigger ha acquisito un filtro avanzato per la selezione rapida e facile dei trigger in base a criteri specifici.

È uscita Zabbix 4.2
Selezioniamo i trigger relativi al servizio K8S

Mostriamo l'ora esatta

Qui è tutto semplice, ora Zabbix mostra l'ora esatta quando si passa il mouse sopra il grafico.

È uscita Zabbix 4.2

Altre novità

  • Implementato un algoritmo più prevedibile per modificare l'ordine di disposizione dei widget nel dashboard
  • Possibilità di modifica massiva dei parametri dei prototipi degli elementi di dati
  • Supporto IPv6 per i controlli DNS: "net.dns" e "new.dns.record"
  • Aggiunto il parametro "skip" per i controlli "vmware.eventlog"
  • L'errore durante l'esecuzione del passaggio di pre-elaborazione include il numero del passaggio

Come aggiornarsi?

Per passare da versioni precedenti è necessaria solo l'installazione di nuovi file binari (server e proxy) e della nuova interfaccia. Zabbix eseguirà automaticamente la procedura di aggiornamento del database. Non sarà necessario installare nuovi agenti.

Offriamo webinar gratuiti per chi desidera approfondire Zabbix 4.2 e avere la possibilità di porre domande al team di Zabbix. Iscriviti!

Non dimentichiamo il popolare canale Telegram della comunità Zabbix, dove è sempre possibile ricevere consulenze e risposte alle proprie domande in lingua russa da colleghi più esperti, e, se si è fortunati, anche dagli sviluppatori stessi di Zabbix. Consigliamo ai principianti il gruppo per principianti.

Link utili

Note di rilascio
Note di aggiornamento
Articolo originale

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS - ProHoster