Monitoraggio distribuito tramite proxy
Panoramica
I proxy di Zabbix possono essere utilizzati per creare una configurazione di monitoraggio distribuito efficace e affidabile.
I proxy vengono distribuiti localmente per raccogliere dati sulle prestazioni e sulla disponibilità. I dati vengono quindi inviati a un server centralizzato.
Un proxy Zabbix può essere utilizzato per:
- Monitorare sedi remote
- Monitorare sedi con comunicazioni inaffidabili
- Alleggerire il server Zabbix quando si monitorano migliaia di dispositivi

Il proxy richiede solo una connessione TCP al server Zabbix. In questo modo è più semplice aggirare un firewall, poiché è necessario configurare una sola regola del firewall.
Il proxy Zabbix deve usare un database separato. Se lo si punta al database del server Zabbix, la configurazione non funzionerà.
Tutti i dati raccolti dal proxy vengono memorizzati localmente prima di essere trasmessi al server.
In questo modo non si perdono dati a causa di eventuali problemi temporanei di comunicazione con il server.
I parametri ProxyLocalBuffer e ProxyOfflineBuffer nel file di configurazione del proxy controllano per quanto tempo i dati vengono conservati localmente.
Può accadere che un proxy, che riceve le ultime modifiche di configurazione direttamente dal database del server Zabbix, abbia una configurazione più aggiornata rispetto al server Zabbix, la cui configurazione potrebbe non essere aggiornata altrettanto rapidamente a causa del valore di CacheUpdateFrequency. Di conseguenza, il proxy può iniziare a raccogliere dati e inviarli al server Zabbix, che ignora tali dati.
Il proxy Zabbix è un raccoglitore di dati. Non calcola i trigger, non elabora gli eventi e non invia avvisi. Per una panoramica delle funzionalità del proxy, consultare la tabella seguente:
| Function | Supported by proxy | |
|---|---|---|
| Items | ||
| Zabbix agent checks | Yes | |
| Zabbix agent checks (active) | Yes 1 | |
| Simple checks | Yes | |
| Trapper items | Yes | |
| SNMP checks | Yes | |
| SNMP traps | Yes | |
| IPMI checks | Yes | |
| JMX checks | Yes | |
| Log file monitoring | Yes | |
| Internal checks | Yes | |
| SSH checks | Yes | |
| Telnet checks | Yes | |
| External checks | Yes | |
| Dependent items | Yes | |
| Script items | Yes | |
| Browser items | Yes | |
| Built-in web monitoring | Yes | |
| Item value preprocessing | Yes | |
| Network discovery | Yes | |
| Active agent autoregistration | Yes | |
| Low-level discovery | Yes 2 | |
| Remote commands | Yes | |
| Calculating triggers | No | |
| Processing events | No | |
| Event correlation | No | |
| Sending alerts | No | |
[1] Per assicurarsi che un agent richieda al proxy (e non al server) i controlli attivi, il proxy deve essere elencato nel parametro ServerActive nel file di configurazione dell'agent.
[2] Per LLD, il proxy Zabbix raccoglie e preelabora solo i dati e poi li invia al server Zabbix per l'elaborazione successiva.
Funzionalità del proxy
Quando si sceglie se usare o non usare un proxy, è necessario tenere conto di diverse considerazioni.
| Proxy | |
|---|---|
| Leggero | Sì |
| GUI | No |
| Funziona in modo indipendente | Sì |
| Facile manutenzione | Sì |
| Creazione automatica del DB | Sì1 |
| Amministrazione locale | No |
| Pronto per hardware embedded | Sì |
| Connessioni TCP unidirezionali | Sì |
| Configurazione centralizzata | Sì |
| Genera notifiche | No |
1 La funzionalità di creazione automatica del DB funziona solo con SQLite. I database supportati in modo diverso richiedono una configurazione manuale.
Il proxy di Zabbix non è a conoscenza dei periodi di manutenzione; vedere Calcolo delle code durante la manutenzione per i dettagli.
Protezione dal sovraccarico
Se il server Zabbix è rimasto inattivo per un certo periodo e i proxy hanno raccolto molti dati, quando il server si avvia potrebbe andare in sovraccarico (l'utilizzo della history cache rimane al 95-100% per un certo tempo). Questo sovraccarico può causare un calo delle prestazioni, con l'elaborazione dei controlli più lenta del dovuto. Per evitare i problemi causati dal sovraccarico della history cache è stata implementata una protezione per questo scenario.
Quando la history cache del server Zabbix è piena, l'accesso in scrittura alla history cache viene limitato, bloccando i processi di raccolta dati del server. Il caso più comune di sovraccarico della history cache si verifica dopo un periodo di inattività del server, quando i proxy caricano i dati raccolti. Per evitare questo problema è stata aggiunta la limitazione dei proxy (attualmente non può essere disabilitata).
Quando l'utilizzo della history cache raggiunge l'80%, il server Zabbix entra in modalità di limitazione. In modalità di limitazione il server accetta i dati dei proxy solo quando l'utilizzo della history cache è inferiore al 60%, alternando i proxy accettati. Quando l'utilizzo della history cache scende sotto il 20%, il server torna alla modalità normale.
Inoltre, in modalità normale il server Zabbix limita i singoli proxy che inviano pacchetti molto grandi (10.000+ record) se l'utilizzo della history cache supera il 60%.
Questa decisione viene applicata nell'istante in cui il server valuta un caricamento del proxy e quindi potrebbe non essere sempre riflessa immediatamente nei grafici dell'utilizzo della history cache (l'item interno zabbix[wcache,history,pused] e il relativo intervallo di aggiornamento potrebbero non rilevare picchi brevi).
Questa modalità di limitazione continuerà finché l'utilizzo della cache non raggiunge di nuovo l'80%, oppure scende al 20%, oppure la lista di limitazione è vuota. Nel primo caso il server smetterà di accettare nuovamente i dati dei proxy. Negli altri due casi il server tornerà a funzionare normalmente, accettando i dati da tutti i proxy.
Le informazioni precedenti possono essere illustrate nella seguente tabella:
| Utilizzo della history write cache |
Modalità del server Zabbix | Azione del server Zabbix |
|---|---|---|
| Raggiunge l'80% | Attesa | Smette di accettare i dati dei proxy, ma mantiene una lista di limitazione (lista prioritaria di proxy da contattare in seguito). |
| Raggiunge il 60% | Normale, ma pronta a essere limitata | Può rifiutare caricamenti molto grandi dai proxy (più di 10k record) al momento di decidere se accettare i dati; continua ad accettare gli altri dati dei proxy. |
| Scende al 20% | Normale | Elimina la lista di limitazione e inizia ad accettare normalmente i dati dei proxy. |
È possibile usare l'item interno zabbix[wcache,history,pused] per correlare questo comportamento del server Zabbix con una metrica.
Configurazione
Una volta installato e configurato un proxy, è il momento di configurarlo nel frontend di Zabbix.
Aggiunta di proxy
Per configurare un proxy nel frontend di Zabbix:
- Andare su Administration > Proxies.
- Fare clic su Create proxy.
- Inserire i parametri del proxy nel modulo.

| Parameter | Description | |
|---|---|---|
| Proxy name | Inserire il nome del proxy. Deve corrispondere al nome specificato nel parametro Hostname del file di configurazione del proxy. | |
| Proxy group | Selezionare un gruppo di proxy per il bilanciamento del carico/alta disponibilità del proxy. | |
| Address for active agents | Inserire l'indirizzo a cui gli agent attivi monitorati o i sender devono connettersi. Supportato solo dagli agent Zabbix 7.0 o versioni successive. Questo indirizzo viene utilizzato per connettersi sia ai proxy attivi sia ai proxy passivi. Questo campo è disponibile solo se è selezionato un gruppo di proxy nel campo Proxy group. |
|
| Address | Indirizzo IP/nome DNS a cui connettersi. | |
| Port | Numero della porta TCP (10051 per impostazione predefinita) a cui connettersi. Sono supportate le macro utente. | |
| Proxy mode | Selezionare la modalità del proxy. Active - il proxy si connetterà al server Zabbix e richiederà i dati di configurazione Passive - il server Zabbix si connette al proxy Nota: senza comunicazioni crittografate, i dati di configurazione sensibili del proxy potrebbero diventare disponibili a soggetti che hanno accesso alla porta trapper del server Zabbix quando si utilizza un proxy attivo. Ciò è possibile perché chiunque può fingere di essere un proxy attivo e richiedere i dati di configurazione se non viene eseguita l'autenticazione o se gli indirizzi dei proxy non sono limitati nel campo Proxy address. |
|
| Proxy address | Se specificato, le richieste del proxy attivo vengono accettate solo da questo elenco di indirizzi IP separati da virgole, eventualmente in notazione CIDR, o di nomi DNS del proxy Zabbix attivo. Questo campo è disponibile solo se nel campo Proxy mode è selezionato un proxy attivo. Le macro non sono supportate. |
|
| Interface | Inserire i dettagli dell'interfaccia per un proxy passivo. Questo campo è disponibile solo se nel campo Proxy mode è selezionato un proxy passivo. |
|
| Address | Indirizzo IP/nome DNS del proxy passivo. | |
| Port | Numero della porta TCP del proxy passivo (10051 per impostazione predefinita). Sono supportate le macro utente. | |
| Description | Inserire la descrizione del proxy. | |
La scheda Encryption consente di richiedere connessioni crittografate con il proxy.
| Parameter | Description |
|---|---|
| Connections to proxy | Modalità con cui il server si connette al proxy passivo: nessuna crittografia (impostazione predefinita), tramite PSK (chiave precondivisa) o certificato. |
| Connections from proxy | Selezionare i tipi di connessione consentiti dal proxy attivo. È possibile selezionare contemporaneamente diversi tipi di connessione (utile per i test e per il passaggio a un altro tipo di connessione). L'impostazione predefinita è "No encryption". |
| Issuer | Autorità emittente consentita del certificato. Il certificato viene prima convalidato con la CA (autorità di certificazione). Se è valido e firmato dalla CA, il campo Issuer può essere utilizzato per limitare ulteriormente le CA consentite. Questo campo è facoltativo ed è destinato all'uso quando l'installazione di Zabbix utilizza certificati di più CA. |
| Subject | Subject consentito del certificato. Il certificato viene prima convalidato con la CA. Se è valido e firmato dalla CA, il campo Subject può essere utilizzato per consentire un solo valore della stringa Subject. Se questo campo è vuoto, viene accettato qualsiasi certificato valido firmato dalla CA configurata. |
| PSK identity | Stringa dell'identità della chiave precondivisa. Non inserire informazioni sensibili nell'identità PSK, poiché viene trasmessa non crittografata sulla rete per informare il destinatario su quale PSK utilizzare. |
| PSK | Chiave precondivisa (stringa esadecimale). Lunghezza massima: 512 cifre esadecimali (PSK di 256 byte) se Zabbix utilizza la libreria GnuTLS o OpenSSL, 64 cifre esadecimali (PSK di 32 byte) se Zabbix utilizza la libreria mbed TLS (PolarSSL). Esempio: 1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952 |
La scheda Timeouts consente di sostituire i timeout globali per i tipi di item che lo supportano.

| Parameter | Description |
|---|---|
| Timeouts for item types | Impostare il timeout dell'item (in base al suo tipo): Global - utilizzare il timeout globale (visualizzato nel campo Timeout disabilitato per ogni tipo di item); Override - impostare un timeout personalizzato (nel campo Timeout per ogni tipo di item). Intervallo consentito: 1 - 600s (impostazione predefinita: ereditato dai timeout globali). Sono supportati i suffissi temporali, ad esempio 30s, 1m, e le macro utente. Facendo clic sul collegamento Global timeouts è possibile configurare i timeout globali. Il collegamento Global timeouts è visibile solo agli utenti di tipo Super admin con autorizzazioni per la sezione frontend Administration > General. Notare che, sebbene i timeout a livello di proxy sostituiscano quelli globali, questi ultimi verranno sostituiti dai timeout dei singoli item, se configurati. |
Se la versione principale del proxy non corrisponde alla versione principale del server, l'icona
verrà visualizzata accanto a Timeouts for item types, con il messaggio al passaggio del mouse "Timeouts disabled because the proxy and server versions do not match".
In questi casi, il proxy utilizzerà il parametro Timeout dal file di configurazione del proxy.
Il modulo di modifica di un proxy esistente presenta i seguenti pulsanti aggiuntivi:
- Refresh configuration - aggiorna la configurazione del proxy;
- Clone - crea un nuovo proxy basato sulle proprietà del proxy esistente;
- Delete - elimina il proxy.
Configurazione dell'host
È possibile specificare che un singolo host debba essere monitorato da un proxy o da un gruppo di proxy nel modulo di configurazione dell'host, usando il campo Monitored by.

L'aggiornamento di massa degli host è un altro modo per specificare che gli host debbano essere monitorati da un proxy o da un gruppo di proxy.