È uscita la versione 4.2 di Zabbix

Il nostro team è lieto di annunciare il rilascio di un sistema di monitoraggio open source. Zabbix 4.2!

È uscita la versione 4.2 di Zabbix

La versione 4.2 è la risposta alla domanda fondamentale sulla vita, l'universo e il monitoraggio? Scopriamolo insieme!

Ricordiamo che Zabbix è un sistema versatile per monitorare le prestazioni e la disponibilità di server, attrezzature ingegneristiche e di rete, applicazioni, database, sistemi di virtualizzazione, contenitori, servizi IT e servizi web.

Zabbix copre l'intero ciclo, dalla raccolta dei dati, alla loro elaborazione e trasformazione, all'analisi dei dati, fino alla memorizzazione, visualizzazione e invio di avvisi tramite regole di escalation. Il sistema offre inoltre flessibili opzioni di estensione dei metodi di raccolta dei dati e avvisi, oltre a opportunità di automazione tramite API. Un'interfaccia web unificata consente una gestione centralizzata delle configurazioni di monitoraggio e la distribuzione dei diritti di accesso a diversi gruppi di utenti. Il codice del progetto è distribuito liberamente sotto licenza. GPLv2.

Zabbix 4.2 è una nuova versione non LTS con un ciclo di supporto ufficiale ridotto. Per gli utenti che puntano a un lungo ciclo di vita dei prodotti software, consigliamo di utilizzare le versioni LTS, come le 3.0 e 4.0.

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

Maggiore supporto per piattaforme ufficiali

È uscita la versione 4.2 di Zabbix
Oltre ai pacchetti ufficiali già 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. Queste includono JMX, SNMP, WMI, HTTP/HTTPS, RestAPI, XML Soap, SSH, Telnet, agenti e script, e altre fonti. E ora diamo il benvenuto al supporto di Prometheus!

In effetti, la raccolta di dati da esportatori Prometheus era già possibile 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 per il linguaggio delle query PromQL. L'uso di metriche dipendenti permette di raccogliere e processare i dati in maniera ottimale: una sola richiesta per i dati, e poi li distribuiamo secondo le metriche necessarie.

È uscita la versione 4.2 di Zabbix
Otteniamo il valore di una specifica metrica

È importante notare che attualmente la rilevazione a basso livello può utilizzare i dati raccolti per la creazione automatica delle metriche. In questo caso, Zabbix converte i dati ottenuti nel formato JSON, con cui è molto comodo lavorare.

È uscita la versione 4.2 di Zabbix
Troviamo le metriche utilizzando un filtro nel linguaggio delle query PromQL

Al momento 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 che hanno esportatori Prometheus ufficiali o supportati dalla comunità. Questo riguarda il monitoraggio di servizi popolari, contenitori e risorse cloud.

Monitoraggio ad alta frequenza ed efficace

Vogliamo rilevare i problemi il prima possibile? Certamente, non ci sono dubbi! Questo approccio porta spesso a dover interrogare troppo frequentemente i dispositivi e raccogliere dati, il che provoca un maggiore carico sul sistema di monitoraggio. Come evitarlo?

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

Supponiamo che stiamo monitorando lo stato di un'applicazione critica. Ogni secondo verifichiamo se la nostra applicazione funziona o meno. Allo stesso tempo, nel sistema Zabbix arriva un flusso continuo di dati con 1 (funziona) e 0 (non funziona). Ad esempio: 1111111111110001111111111111…

Quando la nostra applicazione funziona correttamente, Zabbix riceve un flusso di sole unità. È necessario elaborarli? In generale, no, poiché siamo interessati solo ai cambiamenti nello stato dell'applicazione e non vogliamo raccogliere e conservare così tanti dati. Ecco perché il throttling consente di saltare il valore se è identico a quello precedente. In definitiva, otterremo solo dati sui cambiamenti di stato, ad esempio 01010101… È un'informazione sufficiente per rilevare problemi!

I valori mancanti vengono semplicemente ignorati da Zabbix, non vengono registrati nella storia e non influenzano in alcun modo i trigger. In termini di Zabbix, i valori mancanti non esistono.

È uscita la versione 4.2 di Zabbix
Ignora i valori ripetuti

Ottimo! Ora possiamo interrogare i dispositivi molto frequentemente, identificando immediatamente i problemi senza conservare informazioni inutili nel database.

E per quanto riguarda i grafici? Saranno vuoti a causa della mancanza di dati! E come possiamo capire se Zabbix sta raccogliendo dati, se la maggior parte di essi verrà ignorata?

Ci abbiamo pensato anche noi! Zabbix offre un altro tipo di throttling, il throttling con punti di controllo (throttling with heartbeat).

È uscita la versione 4.2 di Zabbix
Controlliamo una volta al minuto se la metrica è attiva

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

Ora siamo certi che i dati vengano raccolti, la funzione 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.

Ora è possibile grazie alle regole di validazione dei dati integrate nel preprocessing per la conformità o non conformità a 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, impostare un valore predefinito (ad esempio, 0°C), oppure definire un nostro messaggio di errore, come "Sensore danneggiato" o "Sostituire la batteria".

È uscita la versione 4.2 di Zabbix
La temperatura deve essere compresa tra 0 e 100, tutto il resto viene ignorato.

Un buon esempio di utilizzo della validazione è la capacità di controllare i dati in ingresso per la presenza di un messaggio 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 utilizzando JavaScript.

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

È uscita la versione 4.2 di Zabbix
Basta una riga di codice per convertire i gradi Fahrenheit in gradi Celsius.

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

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

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

Testiamo il preprocessing

Ora non dobbiamo più indovinare come funzionano i nostri complessi script di preprocessing. È disponibile un comodo controllo dell'accuratezza del preprocessing direttamente dall'interfaccia!

È uscita la versione 4.2 di Zabbix

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 la distribuzione del carico.

A partire dalla versione Zabbix 4.2 otteniamo una scalabilità del carico incredibilmente efficiente grazie al supporto del preprocessing dal lato proxy. Ora sono i proxy a occuparsene!

È uscita la versione 4.2 di Zabbix

In combinazione con il throttling, questo approccio consente di eseguire un monitoraggio su larga scala ad alta frequenza e di effettuare milioni di controlli al secondo, senza sovraccaricare il server centrale di Zabbix. I proxy elaborano enormi volumi di dati, ma a causa del throttling, solo una piccola parte di questi arriva al server Zabbix, da uno a due ordini di grandezza in meno.

Rilevamento a basso livello più semplice

Ricordiamo che il rilevamento a basso livello (LLD) è un meccanismo molto potente per la scoperta automatica di qualsiasi tipo di risorsa 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 sulla base di queste risorse. Questo fa risparmiare incredibilmente tempo, semplifica la configurazione e consente di utilizzare un solo modello per i nodi di rete che hanno diverse risorse da monitorare.

Il rilevamento a basso livello richiedeva un JSON formattato specificamente in input. Tutto questo non sarà più necessario!

Zabbix 4.2 consente che la scoperta a basso livello (LLD) utilizzi dati formattati in JSON in modo arbitrario. Perché è importante? Questo consente 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.

Insieme al supporto per JavaScript, questo crea fantastiche opportunità per creare modelli di lavoro con diverse fonti di dati, come ad esempio API cloud, API di applicazioni, dati nei formati XML, CSV e altro ancora.

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

Le possibilità sono davvero illimitate!

Supporto per TimescaleDB

È uscita la versione 4.2 di Zabbix

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

Inoltre, un altro vantaggio di TimescaleDB è il partizionamento automatico delle tabelle storiche. TimescaleDB significa velocità e facilità di gestione! Devo però notare che il nostro team non ha ancora effettuato un confronto serio delle prestazioni con il normale PostgreSQL.

Attualmente, TimescaleDB è un prodotto relativamente giovane e in rapida crescita. Usalo con cautela!

Gestione facile dei tag

In passato, la gestione dei tag era possibile solo a livello di trigger, ma ora è molto più flessibile. Zabbix supporta i tag per i modelli e i nodi di rete!

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

È uscita la versione 4.2 di Zabbix
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 offre la possibilità di creare diversi scenari di scoperta per diversi gruppi di nodi di rete. È particolarmente utile quando utilizziamo regole di denominazione complesse per i dispositivi.

Scoperta di rete più flessibile

Un altro miglioramento riguarda la denominazione dei nodi di rete. È ora possibile gestire i nomi dei dispositivi durante la scoperta di rete e ottenere il nome del dispositivo dal valore della metrica.

Questa è una funzionalità molto utile, soprattutto durante la scoperta di rete tramite SNMP e l'agente Zabbix.

È uscita la versione 4.2 di Zabbix
Assegnazione automatica del nome host locale al nome visibile

Verifica del funzionamento dei metodi di notifica

Ora è possibile inviare un messaggio di test 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 gestione delle attività e altri programmi esterni e API.

È uscita la versione 4.2 di Zabbix

Monitoraggio remoto dei componenti dell'infrastruttura Zabbix

Ora è possibile monitorare a distanza le metriche interne del server Zabbix e dei proxy (metriche di prestazioni e funzionalità dei componenti Zabbix).

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

Supporto per il formato HTML nelle email

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

È uscita la versione 4.2 di Zabbix
I messaggi sono più facili da comprendere anche con un uso minimo di HTML

Accesso ai sistemi esterni dalle schede di rete

È stata aggiunta la supporto per un'intera gamma di nuovi macro negli URL personalizzati per una migliore integrazione delle schede con i sistemi esterni. Questo consente, con un paio di clic sull'icona del nodo di rete, di aprire, ad esempio, un ticket nel sistema di gestione dei compiti.

È uscita la versione 4.2 di Zabbix
Apriamo un ticket in Jira con un clic

La regola di rilevamento può dipendere da un elemento di dati

Perché è necessario — vi chiederete. Questo 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 effettuerà una richiesta HTTP e utilizzerà immediatamente le informazioni ricevute per tutti gli elementi di dati dipendenti: valori delle metriche e regole di rilevamento a basso livello.

Nuovo modo di visualizzare i problemi sulle schede

È stata aggiunta la supporto per immagini GIF animate sulle schede per una visualizzazione dei problemi più evidente.

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

Estraiamo i dati dagli header HTTP nel monitoraggio web

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

Questo consente di creare scenari di monitoraggio web a più fasi o il monitoraggio di API esterne, utilizzando un token di autorizzazione ottenuto in uno dei passaggi.

È uscita la versione 4.2 di Zabbix
Estraiamo l'AuthID dall'intestazione HTTP

Zabbix Sender utilizza tutti gli indirizzi IP

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

È uscita la versione 4.2 di Zabbix

Un nuovo filtro comodo nella configurazione dei trigger

La pagina di configurazione dei trigger ha ora un filtro avanzato per una selezione rapida e comoda dei trigger in base ai criteri specificati.

È uscita la versione 4.2 di Zabbix
Selezioniamo i trigger relativi al servizio K8S

Mostriamo l'ora esatta

È semplice, ora Zabbix mostra l'ora esatta quando si passa il mouse sul grafico.

È uscita la versione 4.2 di Zabbix

Altre novità

  • È stato implementato un algoritmo più prevedibile per modificare l'ordine di disposizione dei widget nella dashboard.
  • Possibilità di modifica di massa dei parametri dei prototipi degli elementi di dati
  • Supporto IPv6 per i controlli DNS: «net.dns» e «new.dns.record»
  • È stato aggiunto il parametro «skip» per i controlli «vmware.eventlog»
  • L'errore durante l'esecuzione del passo di preprocessamento include il numero del passo

Come aggiornarsi?

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

Organizziamo webinar gratuiti per coloro che vogliono conoscere meglio Zabbix 4.2 e avere la possibilità di fare 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 russo da colleghi più esperti e, se si è fortunati, anche dagli sviluppatori di Zabbix. Per i principianti, raccomandiamo il gruppo per principianti.

Link utili

Note di rilascio
Note di aggiornamento
Articolo originale

Fonte: habr.com

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