Il nostro team è molto lieto di condividere la notizia che è stato rilasciato un sistema di monitoraggio gratuito e open source
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
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
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.
È 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.
Al momento ce ne sono di più
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.
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.
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".
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!
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!
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!
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!
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.
Le possibilità sono davvero infinite!
Supporto TimescaleDB
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.
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.
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.
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!
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.
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.
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 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.
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.
Mostra l'ora esatta
Qui è tutto semplice, ora Zabbix mostra l'ora esatta quando passi il mouse sul grafico.
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
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.
Non dimenticare il popolare
Link utili
-
-
-
Fonte: habr.com