A metà maggio è stata rilasciata la versione Zabbix 5.0, e abbiamo organizzato una serie di meetup online in diverse lingue per dimostrare chiaramente alla comunità tutte le modifiche e le novità. Ti proponiamo di dare un'occhiata alla presentazione dell'amministratore delegato e fondatore di Zabbix, Alexey Vladyshev, in cui spiega passo dopo 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, legate 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 della NVPS, consentendo una più rapida rilevazione dei problemi e l'inoltro delle notifiche senza un carico eccessivo su Zabbix.
- Raccolta dati tramite agent HTTP.
- Supporto per la 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 consente una scalabilità più efficiente tramite proxy.
- Gestione avanzata dei tag: meta-informazioni a livello di eventi e problemi, facilmente gestibili poiché i tag sono supportati sia a livello di modelli che di nodi di rete.
Lo scorso settembre è stata rilasciata la versione Zabbix 4.4, che ha offerto le seguenti funzionalità:
- Nuovo agente Zabbix.
- Supporto per Webhook per notifiche e avvisi, che consente di integrarsi con sistemi esterni.
- Supporto per TimescaleDB.
- La base di conoscenze integrata per metriche e trigger è diventata visibile agli utenti di Zabbix. Gli utenti possono ad esempio utilizzare la descrizione degli elementi dati e dei trigger in Monitoring > Latest data.
- Nuovo standard per i modelli.
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 terminerà tra un mese. Il rilascio LTS di Zabbix 3.0 sarà supportato per altri 3,5 anni.
Zabbix fornisce monitoraggio per molte cose, l'elenco delle quali può essere specificato nella pagina , dove sono presentati modelli per il monitoraggio e plugin, incluso il nuovo agente.

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

Opzioni di integrazione
Con Zabbix 5.0, è stata ampliata la supporto integrato per l'integrazione con vari sistemi di ticketing e sistemi di notifiche:

Integrazione con vari sistemi
È stata ampliata la lista 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 in .
Qualsiasi utente o sviluppatore può partecipare a Zabbix con risorse pronte — modelli o plugin, seguendo una semplice procedura:
- Firma dell'Accordo di Contributo Zabbix (ZCA) su .
- Pubblicazione della Pull Request su .
- Revisione della richiesta da parte del team di sviluppo. Se il plugin o il modello soddisfa gli standard di Zabbix, sarà incluso nel prodotto e il lavoro di quel sviluppatore sarà ufficialmente supportato dal team di Zabbix.
Zabbix — software open source che consente di visualizzare, studiare e modificare il codice. Gli utenti hanno la possibilità di utilizzare liberamente il prodotto, contribuire allo sviluppo del programma o utilizzare il codice per le proprie nuove applicazioni. D'altra parte, il team di Zabbix si impegna affinché Zabbix possa essere facilmente installato 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 semplice clic nel cloud pubblico. Zabbix è disponibile anche su piattaforme come 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 e connessioni permanenti a sistemi esterni, utili, ad esempio, per un monitoraggio efficace dei database.
- Supporta trappole ed eventi, importanti per il monitoraggio, ad esempio, di dispositivi MQTT.
- La nuova versione dell'agente si installa facilmente (poiché il nuovo agente supporta tutte le funzionalità precedenti).
Inoltre, per il nuovo agente in Zabbix 5.0 è prevista la supporto per lo storage persistente dei dati. Le informazioni precedentemente non inviate venivano conservate solo nella memoria buffer dell'agente, mentre nella nuova versione è possibile configurare il salvataggio di tali informazioni su disco.

Archiviazione permanente dei dati
Questo è cruciale nel monitoraggio di sistemi critici e comunicazioni instabili, poiché una grande quantità di dati vitali viene conservata fino all'invio al server Zabbix. L'opzione è anche utile per le connessioni satellitari che possono essere non disponibili per lunghi periodi.
IMPORTANTE! In Zabbix 5.0 è mantenuto il supporto per Zabbix Agent 1.
Modifiche al sistema di sicurezza in Zabbix 5.0
1. Nella nuova versione è supportato un proxy HTTP per webhook, che consente di stabilire connessioni con il server Zabbix a sistemi di allerta esterni in modo più sicuro e gestito.
Se è necessaria l'integrazione di un server Zabbix nella rete locale con un sistema esterno, ad esempio JIRA nel cloud, è possibile mantenere la connessione attraverso un HTTP proxy, il che migliora il controllo e l'affidabilità della connessione.
2. Sia per l'agente vecchio che per quello nuovo, è possibile scegliere quali verifiche devono essere disponibili su un determinato agente. Ad esempio, è possibile limitare il numero di verifiche creando effettivamente liste bianche e nere, definendo le chiavi supportate.
- Lista bianca per le verifiche relative a MySQL
AllowKey=mysql[*] DenyKey=* - Lista nera per vietare tutti gli script 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 di Zabbix, per evitare di utilizzare cifrature non sicure per le connessioni TLS. Questo è importante per il monitoraggio degli ambienti che richiedono standard di sicurezza specifici.

Scelta degli algoritmi di crittografia per le connessioni TLS
4. In Zabbix 5.0 è stata introdotta la supporto per connessioni crittografate al database. Attualmente è disponibile solo la connessione crittografata con PostgreSQL e MySQL.

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

Macro segrete
7. Tutte le connessioni Zabbix con sistemi esterni e connessioni interne con gli agenti sono sicure. È supportata la crittografia utilizzando certificati TLS, oppure utilizzando la crittografia con chiave precondivisa per le connessioni con agenti e proxy, oppure HTTPS. La sicurezza lato agenti può essere rafforzata tramite liste bianche e nere. L'interfaccia funziona attraverso HTTPS.

Connessioni sicure
8. Supporto SAML per garantire un'unica interfaccia di autenticazione con un fornitore di servizi di identificazione affidabile, quindi le credenziali degli utenti non lasceranno i confini del firewall.

Autenticazione SAML
Il supporto SAML consente di integrare Zabbix con vari fornitori di servizi di identificazione, sia locali che cloud, come Microsoft ADFS, OpenAM, SecurAuth, Okta, Auth0, oltre a Azure, AWS o Google Cloud Platform.
Usabilità di Zabbix 5.0
1. Interfaccia utente ottimizzata per schermi ampi. Abbiamo spostato il menu dalla parte superiore, dove lo spazio è sempre limitato, al lato sinistro dello schermo. Il menu è ancora visualizzabile in modalità completa, minimale e nascosta.

Interfaccia ottimizzata per schermi larghi
2. Copia dei widget dalle dashboard consente di creare molto rapidamente nuove DASHBOARD. Per fare questo, nella DASHBOARD è necessario selezionare il widget desiderato e cliccare su Copia

Copia del widget
e incollare il widget nella dashboard desiderata.

Incolla il 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 cliccando su Scarica immagine.

Esportazione dei grafici
4. Filtraggio per tag: Problemi per severità e Problemi host. È stata aggiunta la possibilità di raccogliere, ad esempio, in un unico data center i dati su tutti i problemi correlati a un nodo di rete.

Filtraggio per tag
5. Supporto dei moduli per l'estensione dell'interfaccia Zabbix. Per installare un modulo indipendente, è necessario copiarlo in una directory specifica. I moduli consentono di ampliare la funzionalità esistente dell'interfaccia, creare nuove pagine, modificare la struttura del menu, ad esempio, aggiungendo voci.
Chiunque può scrivere e integrare un modulo. Per farlo, il modulo deve essere copiato nella cartella modules, dopodiché diventa visibile nell'interfaccia, dove può essere attivato e disattivato.

Aggiunta di un nuovo modulo
6. Facilità di navigazione tra le risorse collegate ai nodi di rete. In Monitoring > Hosts viene visualizzato un elenco di dispositivi monitorati da Zabbix: nodi di rete, servizi, dispositivi di rete, ecc. Inoltre, è disponibile un accesso rapido a schermi, grafici e problemi di dispositivi specifici.
Abbiamo rimosso le schede Monitoring > Graphs e Monitoring > Webs, e tutta la navigazione avviene tramite Monitoring > Hosts. Le informazioni visualizzate possono essere filtrate, anche per tag, consentendo di visualizzare i dispositivi disattivati.

Navigazione tra le risorse collegate ai nodi di rete
Ad esempio, puoi selezionare i dispositivi legati ai servizi per gli utenti finali, scegliendo ‘Service’ e impostando il livello di importanza di questi problemi.

Opzioni di filtraggio
7. Nuova operazione di pre-elaborazione — ‘Sostituzione‘ che permette di eseguire diverse operazioni utili che prima si potevano fare solo con espressioni regolari, piuttosto complesse per molti utenti.
Replace consente di sostituire effettivamente una stringa o un carattere con altri, permettendo così di convertire facilmente i dati ottenuti in formato testo in una rappresentazione numerica.

Operatore Replace
8. Operatore JSONPath, che consente di estrarre i nomi degli attributi in una forma comoda

Operatore per JSONPath
9. Visualizzazione dei messaggi di posta elettronica di Zabbix. Nelle versioni precedenti, tutti i messaggi di posta elettronica 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 di posta elettronica di Zabbix
10. Supporto per macro personalizzate per IPMI per il nome utente e la password. Se per nome utente e password vengono utilizzati macro segreti, l'accesso al loro valore sarà bloccato.

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

Aggiunta e modifica delle macro personalizzate
e anche rimuovere determinate macro o tutte le macro dai modelli selezionati per i nodi di rete.

Rimozione delle singole macro personalizzate o di tutte
12. Controllo del formato dei messaggi a livello di modalità di notifica. In Tipi di media è stata aggiunta una scheda Modelli di media con modelli di messaggi.

Modelli delle modalità di notifica
Per diversi tipi di messaggi è possibile definire modelli diversi.

Definizione di un modello per il tipo di messaggio
Nelle versioni precedenti era necessario gestire questi messaggi a livello di azioni, definendo i messaggi e il soggetto predefinito.

Gestione dei modelli a livello di azioni
Nella nuova versione è possibile definire tutto a livello globale, mentre a livello di messaggi è possibile 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 relativi formati dei modelli ne fanno già parte.
13. Maggiore utilizzo di JavaScript. JavaScript è utilizzato per script di pre-elaborazione, per Webhook, ecc. Lavorare con JavaScript da riga di comando non è semplice.
In Zabbix 5.0 è disponibile un nuovo strumento — zabbix_js, che esegue JavaScript, il quale accetta dati, li elabora e genera valori di output.

Strumento zabbix_js

Esempi di utilizzo dello strumento zabbix_js
14. Supporto delle operazioni testuali tramite espressioni trigger consente di controllare le versioni dei componenti installati, confrontare valori con costanti, dove la costante può essere un macro personalizzato,
{host:zabbix.version.last()}="5.0.0"
{host:zabbix.version.last()}="{$ZABBIX.VERSION}confrontare l'ultimo valore con il precedente, ad esempio, nel caso di dati testuali,
{host:text.last()} {host.text.prev()}o
{host:text.last(#1)} {host.text.prev(#2)}oppure confrontare valori testuali di metriche diverse.
{hostA:textA.last()}={hostB:textB.last()}15. Automazione e rilevamento.
- Sono disponibili nuovi controlli JMX per ottenere e rilevare un elenco di contatori JMX, molto utili, ad esempio, per il monitoraggio delle applicazioni Java, oltre che per automatizzare la creazione di elementi di monitoraggio, metriche, trigger e grafici.
jmx.get[]e
jmx.discovery[]
Controlli JMX - Nella nuova versione è stato introdotto un parametro per il monitoraggio dei contatori di prestazioni di Windows, supportato sia dai vecchi che dai nuovi agenti in russo e inglese, che consente, ad esempio, di rilevare il numero di processori, filesystem, servizi, ecc.

Monitoraggio dei contatori di prestazioni di Windows tramite parametro 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, non accessibile tramite l'interfaccia Zabbix. Nella nuova versione quasi tutti i parametri possono far parte del parametro della metrica.

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

Utilizzo di macro segrete - Utilizzando il protocollo IPMI per monitorare l'hardware, è possibile 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 dati e, ancora più importante, i modelli di dati direttamente dall'interfaccia.

Test dei dati
Qualsiasi problema riscontrato viene visualizzato nell'interfaccia.

Visualizzazione dei problemi nell'interfaccia
Uno stesso algoritmo viene utilizzato per i modelli di dati. Inoltre, se un dato non è supportato, per scoprire il motivo del fallimento è sufficiente fare clic su Test.
17. Test delle modalità di notifica, che è stato introdotto in Zabbix 4.4, è fondamentale per l'integrazione di Zabbix con altri sistemi, come i sistemi di ticket.

Test delle modalità di notifica
18. Supporto per macro personalizzate per prototipi di dati. Per determinare i valori delle macro personalizzate, è possibile utilizzare le macro LLD.

Utilizzo delle macro LLD per determinare i valori delle macro personalizzate
19. Supporto per dati Float64, necessari principalmente per monitorare valori molto grandi, in Zabbix è richiesto per supportare i dati ricevuti dagli agenti Prometheus.
Nel caso dell'installazione di Zabbix 5.0, la migrazione automatica dei dati al formato Float64 non avviene. Gli utenti possono continuare a utilizzare i vecchi tipi di dati. Gli script di migrazione a Float64 devono essere avviati manualmente e modificano i tipi di dati nelle tabelle storiche. La sostituzione automatica non viene utilizzata poiché richiede molto tempo.
20. Miglioramento della scalabilità di Zabbix 5.0: ottimizzazione dell'interfaccia e rimozione dei "colli di bottiglia"
- Sono stati eliminati i menu a discesa, ad esempio per la selezione dei nodi di rete, poiché questa funzione non è scalabile.
- Sono stati introdotti limiti "inbuilt" per le dimensioni delle tabelle Panoramica.
- 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 sull'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 è praticamente indipendente dalle dimensioni del database.
In Zabbix 5.0, Amministrazione > Generale > Manutenzione è possibile configurare, ad esempio, la compressione dei dati più vecchi di 7 giorni. Questo riduce notevolmente lo spazio su disco richiesto (quasi dieci volte, secondo gli utenti), migliorando così l'economia di spazio su disco e aumentando le prestazioni.

Compressione con TimescaleDB
22. Configurazione SNMP a livello di interfaccia. In Zabbix 5.0, invece di tre tipi di elementi dati, viene utilizzato solo uno — agente SNMP. Tutti gli attributi SNMP sono stati trasferiti a livello di interfaccia dei nodi di rete, semplificando i template, il passaggio tra versioni SNMP, ecc.

Configurazione SNMP a livello di interfaccia
23. Dipendenza del monitoraggio della disponibilità dei nodi di rete dalla disponibilità del proxy consente di visualizzare il problema di disponibilità del proxy come prioritario nel caso in cui i nodi di rete siano non disponibili durante il monitoraggio utilizzando un trigger con la funzione nodata:
{HostA:item.nodata(1m)}=1
La disponibilità dei nodi di rete è determinata dalla disponibilità del proxy
Funzione nodata di default considera la disponibilità del proxy. Per un controllo più rigoroso, che non tiene conto della disponibilità del proxy, si utilizza il secondo parametro — strict:
{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. La possibilità di disconoscere un problema (unacknowledge) consente di correggere errori ed è utile nella creazione di flussi di lavoro che dipendono dalla conferma del problema.

Disconoscimento del problema
26. Modifica delle regole di rilevamento a basso livello —la possibilità di aggiungere eccezioni durante il rilevamento degli oggetti a seguito del monitoraggio dei file di sistema, che consente, durante il rilevamento a basso livello, di creare o non creare determinati oggetti, trigger, elementi di dati, ecc., modificare la gravità dei problemi, aggiungere tag per determinati oggetti, escludere oggetti, ad esempio, file system temporanei, dalla ricerca, modificare l'intervallo di aggiornamento dei dati, ecc.

Eccezione dalla rilevazione a basso livello dei file temporanei del sistema
Ad esempio, è possibile modificare il livello di priorità dei trigger per i file system Oracle rilevati, mantenendo il livello di priorità dei trigger per gli altri file system invariato.

Modifica del livello di priorità dei trigger per singoli file system
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. Interruzione del supporto

Funzionalità non supportata
Conclusione
Aggiornarsi a Zabbix 5.0 è molto semplice! Installare e avviare i nuovi file binari per il server e i file frontend, e il server aggiornerà automaticamente il database.
Informazioni sulla procedura di aggiornamento di Zabbix sono disponibili all'indirizzo:
IMPORTANTE!
- L'aggiornamento dei dati storici al formato Float64 è facoltativo.
- I dati di TimescaleDB sono accessibili solo in lettura.
- Versione minima richiesta PHP 7.2.
- DB2 non è supportato come backend per il server Zabbix
(!) I video e le diapositive delle presentazioni di Aleksey Vladychev e di altri relatori di Zabbix Meetup Online (Russo) possono essere visualizzati .
Fonte: habr.com





