Zabbix 4.2 rilasciato

Il nostro team è molto lieto di condividere la notizia che è stato rilasciato un sistema di monitoraggio gratuito e open source Zabbix4.2!

Zabbix 4.2 rilasciato

La versione 4.2 è la risposta alla domanda principale sulla vita, sull'universo e sul monitoraggio in generale? Diamo un'occhiata!

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

Zabbix implementa un ciclo completo dalla raccolta dei dati, all'elaborazione e alla trasformazione degli stessi, all'analisi dei dati ricevuti e alla conclusione con l'archiviazione di questi dati, la visualizzazione e l'invio di avvisi utilizzando le regole di escalation. Il sistema fornisce inoltre opzioni flessibili per espandere la raccolta dati e i metodi di avviso, nonché funzionalità di automazione tramite API. Un'unica interfaccia web implementa la gestione centralizzata delle configurazioni di monitoraggio e la distribuzione dei diritti di accesso a vari gruppi di utenti. Il codice del progetto è distribuito liberamente con licenza GPLv2.

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

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

Altre piattaforme ufficiali

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

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

Supporto Prometheus integrato per il monitoraggio delle applicazioni

Zabbix può raccogliere dati in vari modi (push/pull) da diverse fonti dati. Si tratta di JMX, SNMP, WMI, HTTP/HTTPS, RestAPI, XML Soap, SSH, Telnet, agenti e script e altre fonti. Ora incontra il supporto di Prometheus!

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

Tuttavia, la nuova versione ti consente di lavorare con Prometheus nel modo più efficiente possibile grazie al supporto integrato per il linguaggio di query PromQL. E l'uso di metriche dipendenti ti consente di raccogliere ed elaborare i dati in modo più efficiente: chiedi i dati una volta e poi li sistemiamo in base alle metriche necessarie.

Zabbix 4.2 rilasciato
Ottenere il valore di una metrica specifica

È importante notare che il rilevamento di basso livello ora può utilizzare i dati raccolti per generare automaticamente parametri. In questo caso, Zabbix converte i dati ricevuti nel formato JSON, con cui è molto comodo lavorare.

Zabbix 4.2 rilasciato
Ricerca di metriche utilizzando un filtro nel linguaggio di query PromQL

Al momento ce ne sono di più 300 integrazioni e ricette di monitoraggio servizi e applicazioni di terze parti che utilizzano Zabbix. Il supporto Prometheus ti consentirà di aggiungere un intero set di applicazioni che dispongono di esportatori Prometheus ufficiali o supportati dalla comunità. Si tratta del monitoraggio di servizi, contenitori e risorse cloud popolari.

Monitoraggio efficace ad alta frequenza

Vogliamo rilevare i problemi il più rapidamente possibile? Naturalmente, senza dubbio! Nella maggior parte dei casi, questo approccio ci porta a dover interrogare i dispositivi e raccogliere dati troppo frequentemente, il che comporta un carico maggiore sul sistema di monitoraggio. Come evitarlo?

Abbiamo implementato un meccanismo di limitazione nelle regole di preelaborazione. Il throttling, in sostanza, ci dà l'opportunità 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 (funzionante) e 0 (non funzionante). Ad esempio: 1111111111110001111111111111...

Quando tutto è in ordine con la nostra applicazione, Zabbix riceve un flusso di soli. È necessario elaborarli? In generale no, perché a noi interessa solo cambiare lo stato dell'applicazione, non vogliamo raccogliere e archiviare così tanti dati. Quindi, la limitazione consente di saltare un valore se è identico a quello precedente. Di conseguenza, riceveremo solo dati sul cambio di stato, ad esempio 01010101... Queste sono informazioni abbastanza sufficienti per rilevare problemi!

Zabbix ignora semplicemente i valori mancanti, non vengono registrati nella cronologia e non influenzano in alcun modo i trigger. Dal punto di vista di Zabbix non ci sono valori mancanti.

Zabbix 4.2 rilasciato
Ignora i valori duplicati

Grande! Ora possiamo eseguire il polling dei dispositivi molto frequentemente e rilevare istantaneamente i problemi senza archiviare informazioni non necessarie in un database.

E la grafica? Saranno vuoti per mancanza di dati! E come puoi sapere se Zabbix sta raccogliendo dati se la maggior parte di questi dati manca?

Abbiamo pensato anche a quello! Zabbix offre un altro tipo di limitazione, la limitazione con battito cardiaco.

Zabbix 4.2 rilasciato
Una volta al minuto controlliamo se la metrica è attiva

In questo caso Zabbix, nonostante il flusso di dati ripetuto, memorizzerà almeno un valore nell'intervallo di tempo specificato. Se i dati vengono raccolti una volta al secondo e l'intervallo è impostato su un minuto, Zabbix trasformerà il flusso di unità ogni secondo in un flusso ogni minuto. È facile vedere che ciò porta ad una compressione di 60 volte dei dati ricevuti.

Ora siamo sicuri che i dati vengano raccolti, che la funzione trigger nodata() funzioni e che tutto vada bene con i grafici!

Validazione dei dati raccolti e gestione degli errori

Nessuno di noi vuole raccogliere dati errati o inaffidabili. Sappiamo ad esempio che un sensore di temperatura dovrebbe restituire un dato compreso tra 0°C e 100°C e qualsiasi altro valore dovrebbe essere considerato falso e/o ignorato.

Ora questo è possibile utilizzando le regole di convalida dei dati integrate nella preelaborazione per la conformità o la mancanza di conformità con espressioni regolari, intervalli di valori, JSONPath e XMLPath.

Ora possiamo controllare la reazione all'errore. Se la temperatura è fuori range, possiamo semplicemente ignorare tale valore, impostare un valore predefinito (ad esempio 0°C) o definire il nostro messaggio di errore, ad esempio "Sensore danneggiato" o "Sostituire batteria".

Zabbix 4.2 rilasciato
La temperatura dovrebbe essere compresa tra 0 e 100, ignorare il resto

Un buon esempio dell'uso della convalida è la possibilità di verificare la presenza di un messaggio di errore nei dati di input e di impostare questo errore per l'intera metrica. Questa è una funzionalità molto utile quando si recuperano dati da API esterne.

Qualsiasi trasformazione dei dati utilizzando JavaScript

Se le regole di preelaborazione integrate non fossero sufficienti per noi, ora offriamo completa libertà utilizzando script JavaScript personalizzati!

Zabbix 4.2 rilasciato
Solo una riga di codice per convertire Fahrenheit in Celsius

Ciò apre infinite possibilità per l'elaborazione dei dati in arrivo. Il vantaggio pratico di questa funzionalità è che non abbiamo più bisogno degli script esterni che utilizzavamo per eseguire qualsiasi manipolazione dei dati. Ora tutto questo può essere fatto utilizzando JavaScript.

Ora sono possibili la trasformazione dei dati, l'aggregazione, i filtri, le operazioni aritmetiche e logiche e molto altro ancora!

Zabbix 4.2 rilasciato
Estrazione di informazioni utili dall'output mod_status di Apache!

Testare la preelaborazione

Ora non dobbiamo indovinare come funzionano i nostri complessi script di preelaborazione. Ora c'è un modo conveniente per verificare se la preelaborazione funziona correttamente direttamente dall'interfaccia!

Zabbix 4.2 rilasciato

Elaboriamo milioni di metriche al secondo!

Prima di Zabbix 4.2, la preelaborazione era gestita esclusivamente dal server Zabbix, il che limitava la possibilità di utilizzare proxy per la distribuzione del carico.

A partire da Zabbix 4.2, otteniamo un ridimensionamento del carico incredibilmente efficiente attraverso il supporto per la preelaborazione lato proxy. Ora lo fanno i proxy!

Zabbix 4.2 rilasciato

In combinazione con la limitazione, questo approccio consente un monitoraggio ad alta frequenza e su larga scala e milioni di controlli al secondo, senza caricare il server centrale Zabbix. I proxy elaborano enormi quantità di dati, mentre solo una piccola parte di essi raggiunge il server Zabbix a causa del throttling, uno o due ordini di grandezza in meno.

Individuazione di basso livello più semplice

Ricordiamo che il rilevamento di basso livello (LLD) è un meccanismo molto potente per scoprire automaticamente qualsiasi tipo di risorsa di monitoraggio (file system, processi, applicazioni, servizi, ecc.) e creare automaticamente elementi di dati, trigger, nodi di rete basati su di essi e altri oggetti. Ciò consente di risparmiare tempo incredibile, semplifica la configurazione e consente di utilizzare un modello su host con diverse risorse di monitoraggio.

Il rilevamento di basso livello richiedeva JSON appositamente formattato come input. Ecco, non succederà più!

Zabbix 4.2 consente il rilevamento di basso livello (LLD) per utilizzare dati arbitrari in formato JSON. Perché è importante? Ciò consente di comunicare, ad esempio, con API esterne senza ricorrere a script e utilizzare le informazioni ricevute per creare automaticamente host, elementi dati e trigger.

Insieme al supporto JavaScript, questo crea fantastiche opportunità per creare modelli per lavorare con varie origini dati, come, ad esempio, API cloud, API applicazioni, dati in XML, formati CSV e così via.

Zabbix 4.2 rilasciato
Collegamento di JSON con informazioni sui processi con LLD

Le possibilità sono davvero infinite!

Supporto TimescaleDB

Zabbix 4.2 rilasciato

Cos'è TimescaleDB? Questo è PostgreSQL normale più un modulo di estensione del team TimescaleDB. TimescaleDB promette prestazioni migliori grazie ad algoritmi e struttura dei dati più efficienti.

Inoltre, un altro vantaggio di TimescaleDB è il partizionamento automatico delle tabelle con cronologia. TimescaleDB è veloce e facile da mantenere! Tuttavia, devo notare che il nostro team non ha ancora effettuato un serio confronto delle prestazioni con il normale PostgreSQL.

Al momento, TimescaleDB è un prodotto abbastanza giovane e in rapido sviluppo. Usare con cautela!

Facile gestione dei tag

Se in precedenza 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 host!

Tutti i problemi rilevati ricevono tag non solo del trigger, ma anche dell'host, nonché dei modelli di questo host.

Zabbix 4.2 rilasciato
Definizione dei tag per un nodo di rete

Registrazione automatica più flessibile

Zabbix 4.2 ti consente di filtrare gli host per nome utilizzando le espressioni regolari. Ciò rende possibile creare diversi scenari di rilevamento per diversi gruppi di nodi di rete. È particolarmente conveniente se utilizziamo regole complesse per la denominazione dei dispositivi.

Individuazione della rete più flessibile

Un altro miglioramento riguarda la denominazione dei nodi della rete. È ora possibile gestire i nomi dei dispositivi durante il rilevamento della rete e ottenere il nome del dispositivo da un valore metrico.

Questa è una funzionalità molto necessaria, soprattutto per il rilevamento della rete utilizzando SNMP e l'agente Zabbix.

Zabbix 4.2 rilasciato
Assegna automaticamente il nome host locale a un nome visibile

Verifica della funzionalità dei metodi di notifica

Ora puoi inviarti un messaggio di prova direttamente dall'interfaccia Web e verificare se il metodo di notifica funziona. Questa funzionalità è particolarmente utile per testare script per combinare Zabbix con vari sistemi di avviso, sistemi di attività e altri programmi e API esterni.

Zabbix 4.2 rilasciato

Monitoraggio remoto dei componenti dell'infrastruttura Zabbix

Ora è possibile monitorare da remoto le metriche interne del server e del proxy Zabbix (metriche delle prestazioni e integrità dei componenti Zabbix).

Cosa serve? La funzionalità consente di monitorare le metriche interne di server e proxy dall'esterno, consente di rilevare e notificare rapidamente i problemi anche se i componenti stessi sono sovraccarichi o, ad esempio, c'è una grande quantità di dati non inviati sul proxy.

Supporto del formato HTML per i messaggi di posta elettronica

Ora non siamo limitati al semplice testo e possiamo creare bellissimi messaggi di posta elettronica, grazie al supporto del formato HTML. È ora di imparare HTML + CSS!

Zabbix 4.2 rilasciato
I messaggi sono più facili da comprendere anche con un uso minimo di HTML

Accesso a sistemi esterni da schede di rete

È disponibile il supporto per tutta una serie di nuove macro negli URL personalizzati per una migliore integrazione delle mappe con sistemi esterni. Ciò consente, ad esempio, di aprire un ticket nel sistema di task con uno o due clic sull'icona di un nodo di rete.

Zabbix 4.2 rilasciato
Apri un ticket in Jira con un clic

Una regola di individuazione può essere un elemento dati dipendente

Perché è necessario - chiedi. Ciò consente di utilizzare i dati metrici sottostanti sia per il rilevamento che per la raccolta diretta dei dati. Ad esempio, nel caso della raccolta di dati da un esportatore Prometheus, Zabbix effettuerà una richiesta HTTP e utilizzerà immediatamente le informazioni ricevute per tutti gli elementi di dati dipendenti: valori metrici e regole di rilevamento di basso livello.

Un nuovo modo di visualizzare i problemi sulle mappe

Ora è disponibile il supporto per le immagini GIF animate sulle mappe per una visualizzazione più visibile dei problemi.

Zabbix 4.2 rilasciato
I dispositivi problematici sono diventati più visibili

Estrazione dei dati dalle intestazioni HTTP nel monitoraggio Web

In Monitoraggio Web è stata aggiunta la possibilità di selezionare i dati dall'intestazione HTTP ricevuta.

Ciò consente di creare scenari di monitoraggio Web in più passaggi o di monitoraggio API di terze parti utilizzando il token di autorizzazione ottenuto in uno dei passaggi.

Zabbix 4.2 rilasciato
Estrazione dell'AuthID dall'intestazione HTTP

Zabbix Sender utilizza tutti gli indirizzi IP

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

Zabbix 4.2 rilasciato

Nuovo comodo filtro nella configurazione del trigger

La pagina di configurazione del trigger ora dispone di un filtro ampliato per una selezione rapida e pratica dei trigger in base a criteri specificati.

Zabbix 4.2 rilasciato
Selezione dei trigger relativi al servizio K8S

Mostra l'ora esatta

Qui è tutto semplice, ora Zabbix mostra l'ora esatta quando passi il mouse sul grafico.

Zabbix 4.2 rilasciato

Altre innovazioni

  • Implementato un algoritmo più prevedibile per modificare l'ordine dei widget nella dashboard
  • Possibilità di modificare in massa i parametri dei prototipi degli elementi dati
  • Supporto IPv6 per controlli DNS: "net.dns" e "new.dns.record"
  • Aggiunto il parametro “skip” per i controlli “vmware.eventlog”.
  • L'errore di esecuzione del passaggio di preelaborazione include il numero del passaggio

Come aggiornare?

Per eseguire l'aggiornamento da versioni precedenti, è sufficiente installare nuovi binari (server e proxy) e una nuova interfaccia. Zabbix aggiornerà automaticamente il database. Non è necessario installare nuovi agenti.

Stiamo ospitando webinar gratuiti per coloro che desiderano saperne di più su Zabbix 4.2 e avere l'opportunità di porre domande al team Zabbix. Iscrizione!

Non dimenticare il popolare Canale Telegram Comunità Zabbix, dove puoi sempre ricevere consigli e risposte alle tue domande in russo da colleghi più esperti e, se sei fortunato, dagli stessi sviluppatori Zabbix. Consigliato per i principianti gruppo per principianti.

Link utili

- Note di rilascio
- Note di aggiornamento
- Articolo originale

Fonte: habr.com

Aggiungi un commento