A metà maggio è stata rilasciata la versione Zabbix 5.0 e abbiamo organizzato una serie di meetup online in diverse lingue per dimostrare alla comunità tutte le modifiche e le novità. Vi proponiamo di dare un'occhiata alla presentazione dell'amministratore delegato e fondatore di Zabbix, Alexey Vladyshev, in cui spiega passo passo cosa c'è di nuovo in Zabbix 5.0.

Zabbix 4.2 e Zabbix 4.4
Iniziamo con le modifiche introdotte nella versione Zabbix 4.0, in relazione all'uso delle versioni LTS.
Nella versione Zabbix 4.2, rilasciata ad aprile 2019, sono state introdotte le seguenti funzionalità:
- Monitoraggio ad alta frequenza tramite throttling, che garantisce scalabilità e aumento di NVPS, significando una rilevazione più rapida dei problemi e l'invio delle notifiche senza un carico eccessivo su Zabbix.
- Raccolta dati tramite HTTP agent.
- Supporto alla raccolta dati da Prometheus Pro.
- La pre-elaborazione supporta la validazione e JavaScript, permettendo di trasformare qualsiasi dato raccolto.
- Pre-elaborazione sul lato proxy, che garantisce una scalabilità più efficace tramite proxy.
- Migliorata gestione dei tag — metainformazioni a livello di eventi e problemi, facili da gestire poiché i tag sono supportati a livello di template e a livello di nodi di rete.
A settembre dello scorso anno è stata rilasciata la versione Zabbix 4.4, che ha proposto le seguenti funzionalità:
- Nuovo agente Zabbix.
- Supporto per Webhook per notifiche e avvisi, permettendo di integrarsi con sistemi esterni.
- Supporto per TimescaleDB.
- La base di conoscenza integrata per metriche e trigger è diventata visibile per gli utenti di Zabbix. Per esempio, gli utenti possono usare la descrizione degli elementi dati e dei trigger in Monitoring > Latest data.
- Nuovo standard per i template.
Zabbix 5.0
Oggi parleremo del rilascio LTS di Zabbix 5.0, che sarà supportato per 5 anni. Il supporto per la versione 4.4 scade tra un mese. Il rilascio LTS di Zabbix 3.0 sarà supportato per altri 3,5 anni.
Zabbix monitora molte cose, la lista delle quali può essere specificata nella pagina , dove sono presentati template per il monitoraggio e plugin, incluso per il nuovo agente.

Template disponibili per monitoraggio e integrazione
Inoltre, ci sono opportunità di integrazione con vari sistemi, inclusi sistemi di ticketing, sistemi ITSM e sistemi di messaggistica tramite Webhook.

Opportunità di integrazione
In Zabbix 5.0 è stata ampliata la supporto integrato per l'integrazione con vari sistemi di ticketing e sistemi di notifica:

Integrazione con vari sistemi
È stato ampliato l'elenco dei modelli integrati per il monitoraggio di applicazioni e dispositivi:

Modelli integrati per il monitoraggio di applicazioni e dispositivi
Tutti gli aggiornamenti sono disponibili per il download su .
Qualsiasi utente o sviluppatore può partecipare a Zabbix con contributi già pronti, come modelli o plugin, seguendo una semplice procedura:
- Firma del Zabbix Contributory Agreement (ZCA) su .
- Pubblicazione di una Pull Request su .
- Esame della richiesta da parte del team di sviluppo. Se il plugin o il modello soddisfa gli standard di Zabbix, viene inserito nel prodotto e il lavoro di tale sviluppatore sarà ufficialmente supportato dal team di Zabbix.
Zabbix è un software open source, disponibile per visualizzazione, studio e modifica. Gli utenti hanno la possibilità di utilizzare liberamente il prodotto, partecipare allo sviluppo del programma o usare il codice per le proprie nuove applicazioni. D'altra parte, il team di Zabbix fa il possibile perché Zabbix sia facilmente installabile su diverse piattaforme.
Gli sviluppatori di Zabbix offrono pacchetti per praticamente tutte le distribuzioni più popolari e varie piattaforme di virtualizzazione. Inoltre, Zabbix può essere installato con un clic nel cloud pubblico. Zabbix è disponibile anche sulle piattaforme Red Hat Openshift o OpenStack.

Pacchetti Zabbix per distribuzioni e piattaforme
Supporto per Zabbix Agent 2 per Windows e Linux
Il nuovo Zabbix Agent 2 è una delle migliori soluzioni sul mercato.
- Offre una struttura basata su plugin e supporta script per la raccolta di dati, che possono funzionare per ore.
- Supporta controlli attivi paralleli, connessioni permanenti a sistemi esterni, utili, ad esempio, per il monitoraggio efficace dei database.
- Supporta trap e eventi, importanti per il monitoraggio, ad esempio, di dispositivi MQTT.
- La nuova versione dell'agente è facile da installare (poiché il nuovo agente supporta tutte le funzionalità precedenti).
Inoltre, per il nuovo agente in Zabbix 5.0 è offerta la possibilità di archiviazione permanente dei dati. In precedenza, le informazioni non inviate venivano memorizzate solo nella memoria tampone dell'agente, mentre nella nuova versione è disponibile l'impostazione per memorizzare tali informazioni su disco.

Archiviazione permanente dei dati
Questo è importante nel caso di monitoraggio di sistemi critici e comunicazioni instabili, poiché un gran numero di dati fondamentali viene conservato fino all'invio al server Zabbix. Questa opzione è inoltre utile per le connessioni satellitari, che potrebbero non essere disponibili per periodi prolungati.
IMPORTANTE! In Zabbix 5.0 è stata mantenuta la compatibilità con Zabbix Agent 1.
Modifiche alla sicurezza nel sistema in Zabbix 5.0
1. Nella nuova versione è supportato un proxy HTTP per webhook, che consente di effettuare connessioni dal server Zabbix a sistemi di allerta esterni in modo più sicuro e controllato.
Se è necessaria un'integrazione del server Zabbix in una rete locale con un sistema esterno, ad esempio JIRA nel cloud, è possibile mantenere la connessione tramite proxy HTTP, migliorando il controllabilità e l'affidabilità della connessione.
2. Sia per il vecchio che per il nuovo agente è prevista la possibilità di scegliere quali controlli devono essere disponibili su un determinato agente. Ad esempio, è possibile limitare il numero di controlli, creando di fatto liste bianche e nere, definendo le chiavi supportate.
- Lista bianca per controlli relativi a MySQL
AllowKey=mysql[*] DenyKey=* - Lista nera per negare tutti gli script di shell
DenyKey=system.run[*] - Lista nera per negare l'accesso a /etc/password
DenyKey=vfs.file.contents[/etc/passwd,*]
3. È possibile scegliere algoritmi di crittografia per tutti i componenti Zabbix, per evitare l'uso di crittografie non sicure per le connessioni TLS. Questo è importante per il monitoraggio di ambienti che richiedono standard di sicurezza specifici.

Scelta degli algoritmi di crittografia per le connessioni TLS
4. In Zabbix 5.0 è stato introdotto il supporto per connessioni cifrate al database. Al momento è disponibile solo la connessione cifrata con PostgreSQL e MySQL.

Connessioni cifrate al database
5. Zabbix 5.0 è passato da MD5 a SHA256 per la memorizzazione degli hash delle password degli utenti nel database, poiché al momento questo è l'algoritmo più sicuro.
6. Zabbix 5.0 supporta macro utente segrete per memorizzare qualsiasi informazione riservata, come password e token API, a cui non hanno accesso gli utenti finali.

Macro segreti
7. Tutte le connessioni Zabbix con sistemi esterni e connessioni interne con agenti sono sicure. È supportata la crittografia utilizzando certificati TLS o la crittografia con chiave precondivisa (pre-shared key encryption) per le connessioni con agenti e proxy, oppure HTTPS. La sicurezza lato agenti può essere rafforzata tramite liste bianche e nere. L'interfaccia funziona tramite HTTPS.

Connessioni sicure
8. Supporto SAML per fornire un punto unico di autenticazione da un fornitore di servizi di identificazione affidabile, quindi le credenziali degli utenti non lasceranno i confini del firewall.

Identificazione SAML
Il supporto SAML consente di integrare Zabbix con vari fornitori di servizi di identificazione locali e cloud, come Microsoft ADFS, OpenAM, SecurAuth, Okta, Auth0, così come Azure, AWS o Google Cloud Platform.
Usabilità di Zabbix 5.0
1. Interfaccia utente ottimizzata per schermi larghi. Abbiamo spostato il menu dalla parte superiore, dove manca sempre spazio, al lato sinistro dello schermo. Il menu continua a essere visualizzato in modalità completa, minima e nascosta.

Interfaccia ottimizzata per schermi larghi
2. Copia dei widget dalle dashboard per creare rapidamente nuove DASHBOARD. Per fare ciò, è necessario selezionare il widget desiderato nel DASHBOARD, fare clic su Copia

Copia widget
e incollare il widget nel dashboard desiderato.

Incolla widget copiato
3. Esportazione dei grafici. Per copiare un grafico e inviarlo, ad esempio, via e-mail, è possibile ottenere il grafico in formato PNG selezionando il widget desiderato e facendo clic su Scarica immagine.

Esportazione dei grafici
4. Filtraggio per tag: Problema per gravità e Ospiti problema. È ora possibile, ad esempio, raccogliere in un unico data center i dati relativi a tutti i problemi associati a un nodo della rete.

Filtraggio per tag
5. Supporto ai moduli per estendere l'interfaccia Zabbix. Per installare un modulo indipendente, è necessario copiarlo in una directory specifica. I moduli consentono di estendere la funzionalità esistente dell'interfaccia, creare nuove pagine, modificare la struttura del menu, ad esempio, aggiungendo voce.
Qualsiasi utente può scrivere e integrare un modulo. Per fare ciò, il modulo viene copiato nella cartella modules, dopo di che diventa visibile nell'interfaccia, dove può essere attivato o disattivato.

Aggiunta di un nuovo modulo
6. Semplicità di navigazione delle risorse collegate ai nodi della rete. In Monitoraggio > Hosts viene visualizzato l'elenco dei dispositivi monitorati da Zabbix: nodi della rete, servizi, dispositivi di rete, ecc. Inoltre, è disponibile una navigazione rapida verso schermi, grafici e problemi di dispositivi specifici.
Abbiamo rimosso le schede Monitoraggio > Grafici e Monitoraggio > Web, e tutta la navigazione avviene tramite Monitoraggio > Hosts. Le informazioni visualizzate possono essere filtrate, anche per tag, permettendo di visualizzare i dispositivi disattivati.

Navigazione delle risorse collegate ai nodi della rete
Ad esempio, è possibile selezionare i dispositivi che appartengono ai servizi degli utenti finali, selezionando ‘Servizio’, oltre a specificare il livello di importanza di questi problemi.

Opzioni di filtraggio
7. La nuova operazione di pre-elaborazione — ‘Sostituzione‘ permette di fare diverse cose utili che in precedenza si potevano fare solo con espressioni regolari, piuttosto complesse per molti utenti.
Sostituisci permette effettivamente di sostituire una stringa o un carattere con altri, rendendo semplice convertire i dati ottenuti in formato testuale in una rappresentazione numerica.

Operatore Sostituisci
8. Operatore JSONPath, che consente di estrarre i nomi degli attributi in modo conveniente

Operatore per JSONPath
9. Visualizzazione dei messaggi email di Zabbix. Nelle versioni precedenti, tutti i messaggi email da Zabbix nella cartella In arrivo venivano visualizzati in un elenco. A partire da Zabbix 5.0, i messaggi saranno raggruppati per problemi.

Raggruppamento dei messaggi email di Zabbix
10. Supporto per macro personalizzate per IPMI per nome utente e password. Se per nome utente e password vengono utilizzate macro segrete, l'accesso al loro valore sarà bloccato.

Supporto per macro personalizzate
11. Modifica massiva delle macro personalizzate per nodi della rete. Nella nuova versione è possibile aprire l'elenco dei modelli, scegliere l'elenco dei nodi della rete e aggiungere macro o modificare i valori delle macro esistenti,

Aggiunta e modifica di macro personalizzate
e anche rimuovere alcuni macro specifici o tutti i macro dai modelli selezionati per i nodi di rete.

Rimozione di macro utente singoli o di tutti
12. Controllo del formato dei messaggi a livello del metodo di notifica. In Tipi di media è comparsa la scheda Modelli di media con modelli di messaggi.

Modelli di metodi di notifica
Per diversi tipi di messaggi è possibile definire diversi modelli.

Definizione di un modello per un tipo di messaggi
Nelle versioni precedenti era necessario gestire questi messaggi a livello di azioni, definendo i messaggi e l'oggetto predefinito.

Gestione dei modelli a livello di azioni
Nella nuova versione tutto può essere definito a livello globale, e a livello di messaggi si possono sovrascrivere le impostazioni globali.

Gestione dei modelli a livello globale
Per la maggior parte degli utenti, è sufficiente definire i formati dei modelli a livello del metodo di notifica. Inoltre, dopo l'importazione di un nuovo metodo di notifica, tutti i formati dei modelli pertinenti fanno già parte di esso.
13. Maggiore utilizzo di JavaScript. JavaScript è utilizzato per script di pre-elaborazione, per Webhook, ecc. Lavorare con JavaScript nella riga di comando non è facile.
In Zabbix 5.0 è utilizzato un nuovo strumento — zabbix_js, che esegue JavaScript, che accetta dati, li elabora e genera valori di output.

Lo strumento zabbix_js

Esempi di utilizzo dello strumento zabbix_js
14. Supporto per operazioni testuali tramite espressioni di trigger consente di verificare le versioni dei componenti installati, confrontare i valori con qualsiasi costante, dove la costante può essere un macro utente,
{host:zabbix.version.last()}="5.0.0"
{host:zabbix.version.last()}="{$ZABBIX.VERSION}confrontare l'ultimo valore con il precedente, ad esempio quando si tratta di dati testuali,
{host:text.last()} {host.text.prev()}o
{host:text.last(#1)} {host.text.prev(#2)}o confrontare i valori testuali di diverse metriche.
{hostA:textA.last()}={hostB:textB.last()}15. Automazione e scoperta.
- Sono disponibili nuovi controlli JMX per ottenere e scoprire l'elenco dei contatori JMX, molto utili, ad esempio, per il monitoraggio delle applicazioni Java, oltre all'automazione della creazione di elementi di monitoraggio, metriche, trigger e grafici.
jmx.get[]e
jmx.discovery[]
Controlli JMX - Nella nuova versione è stata introdotta una chiave per il monitoraggio dei contatori delle prestazioni di Windows, supportata sia dai vecchi che dai nuovi agenti in russo e inglese, che permette, ad esempio, di rilevare il numero di processori, file system, servizi, ecc.

Monitoraggio dei contatori delle prestazioni di Windows tramite la chiave perf_counter - Il monitoraggio ODBC è diventato molto più semplice. In precedenza, tutti i parametri per il monitoraggio ODBC dovevano essere descritti in un file esterno /etc/odbc.ini, a cui non era possibile accedere dall'interfaccia di Zabbix. Nella nuova versione, praticamente tutti i parametri possono far parte della chiave della metrica.

Chiave della metrica con descrizione dei parametriNella nuova versione è possibile specificare il nome del server e la porta a livello di metrica, mentre il nome e la password per l'accesso possono essere definiti utilizzando macro segrete per motivi di sicurezza.

Utilizzo delle macro segrete - Con l'uso del protocollo IPMI per il monitoraggio dell'hardware, è stata introdotta la possibilità di creare modelli più semplici per l'automazione tramite ipmi.get.

ipmi.get
16. Test dei dati dall'interfaccia. In Zabbix 5.0 è stata introdotta la possibilità di testare alcuni elementi dei dati e, ancora più importante, i modelli degli elementi dei dati dall'interfaccia.

Test dei dati
Qualsiasi problema che si verifica è visualizzato nell'interfaccia.

Visualizzazione dei problemi nell'interfaccia
Un algoritmo analogo viene utilizzato per i modelli degli elementi dei dati. Inoltre, se un elemento dei dati non è supportato, per scoprire la causa del fallimento basta premere Test.
17. Test dei metodi di avviso, che è stato introdotto in Zabbix 4.4, e questo è importante per l'integrazione di Zabbix con altri sistemi, ad esempio i sistemi di ticketing.

Test dei metodi di avviso
18. Supporto per le macro personalizzate per i prototipi degli elementi dei dati. Per definire i valori delle macro personalizzate si possono utilizzare macro LLD.

Utilizzo delle macro LLD per definire i valori delle macro personalizzate
19. Supporto per i dati Float64, necessari principalmente per il monitoraggio di valori molto grandi; in Zabbix è necessario per supportare i dati ricevuti dagli agenti Prometheus.
In caso di installazione di Zabbix 5.0, la migrazione automatica dei dati al tipo standard Float64 non avviene. L'utente ha la possibilità di utilizzare i vecchi tipi di dati. Gli script di migrazione per Float64 vengono eseguiti manualmente e modificano i tipi di dati nelle tabelle storiche. La sostituzione automatica non è utilizzata poiché richiede molto tempo.
20. Miglioramento della scalabilità di Zabbix 5.0: ottimizzazione dell'interfaccia e rimozione dei "colli di bottiglia"
- Sono stati rimossi i menu a discesa, ad esempio, per la selezione dei nodi di rete, poiché questa funzione non è scalabile.
- Sono stati introdotti limiti "integrati" per le dimensioni delle tabelle Overview.
- Sono state aggiunte nuove funzionalità in Monitoring > Hosts > Graphs.
- È stata introdotta la funzione di paging (Monitoring > Hosts > Web) dove prima non c'era.
21. Compressione migliorata
La compressione in Zabbix si basa su un'estensione per PostgreSQL - TimescaleDB (a partire da Zabbix 4.4). TimescaleDB fornisce partizionamento automatico del database e migliora le sue prestazioni, poiché la performance di TimescaleDB non dipende effettivamente dalle dimensioni del database.
In Zabbix 5.0 in Administration > General > Housekeeping è possibile configurare, ad esempio, la compressione dei dati più vecchi di 7 giorni. Ciò riduce significativamente lo spazio su disco necessario (quasi di dieci volte, secondo i dati degli utenti), migliorando l'economia dello spazio su disco e aumentando le prestazioni.

Compressione tramite TimescaleDB
22. Configurazione SNMP a livello interfaccia. In Zabbix 5.0, invece di tre tipi di elementi di dati, viene utilizzato solo uno - SNMP agent. Tutti gli attributi SNMP sono stati trasferiti a livello dell'interfaccia dei nodi di rete, permettendo di semplificare i modelli, lo switch tra le versioni SNMP, ecc.

Configurazione SNMP a livello interfaccia
23. Dipendenza dal monitoraggio della disponibilità dei nodi di rete dalla disponibilità del proxy permette di visualizzare il problema di disponibilità del proxy come prioritario in caso di indisponibilità dei nodi di rete durante il monitoraggio utilizzando un trigger con la funzione nodata:
{HostA:item.nodata(1m)}=1
La disponibilità dei nodi di rete è definita dalla disponibilità del proxy
La funzione nodata per impostazione predefinita considera la disponibilità del proxy. Per un controllo più rigoroso, che non tiene conto della disponibilità del proxy, viene utilizzato il secondo parametro - " (ad esempio, blocca il tentativo di specificare una stringa quando è previsto un valore intero come argomento) e protezione contro:
{HostA:item.nodata(1m,strict)}=124. Gestione delle regole di rilevamento a basso livello. In Zabbix 5.0 è stato introdotto il filtro LLD, che consente di visualizzare anche le regole di rilevamento non supportate

Filtro LLD
25. Possibilità di rimuovere la conferma del problema (unacknowledge) consente di correggere errori ed è utile nella creazione di flussi di lavoro che dipendono dalla conferma del problema.

Rimozione della conferma del problema
26. Modifica delle regole di rilevamento a basso livello —possibilità di aggiungere eccezioni nel rilevamento degli oggetti in seguito al monitoraggio dei file di sistema, che permette di creare o non creare determinati oggetti, trigger, elementi di dati ecc. durante il rilevamento a basso livello, modificare l'importanza dei problemi, aggiungere tag per determinati oggetti, escludere oggetti, ad esempio, file di sistema temporanei, dalla ricerca, modificare l'intervallo di aggiornamento dei dati ecc.

Esclusione dal rilevamento a basso livello dei file di sistema temporanei
Ad esempio, è possibile modificare il livello di priorità dei trigger per i file di sistema Oracle rilevati, mantenendo il livello di priorità dei trigger per gli altri file di sistema invariato.

Modifica del livello di priorità dei trigger per singoli file di sistema
27. Nuovi macro in Zabbix 5.0 consentono di migliorare la qualità del monitoraggio.

Nuovi macro in Zabbix 5.0
28. Altre novità in Zabbix 5.0:

Miglioramenti in Zabbix 5.0
29. Fine del supporto

Funzionalità non supportate
Conclusione
Aggiornare a Zabbix 5.0 è molto semplice! Installa e avvia nuovi file binari per il server e i file frontend, e il server aggiornerà automaticamente il tuo database.
Le informazioni sulla procedura di aggiornamento di Zabbix sono disponibili all'indirizzo:
IMPORTANTE!
- L'aggiornamento dei dati storici al formato Float64 non è obbligatorio.
- I dati di TimescaleDB sono accessibili solo in lettura.
- Versione PHP minima richiesta 7.2.
- DB2 non è supportato come backend per il server Zabbix
(!) I video e le diapositive delle presentazioni di Alexey Vladyshev e di altri relatori di Zabbix Meetup Online (russo) possono essere visionati .
Fonte: habr.com





