Bilanciamento del carico e alta disponibilità del proxy
Panoramica
I proxy di Zabbix possono essere organizzati in gruppi di proxy per abilitare il bilanciamento del carico dei proxy e l'alta disponibilità.
Il bilanciamento del carico dei proxy e l'alta disponibilità consistono nella redistribuzione automatica degli host tra i proxy all'interno di un gruppo di proxy:
- Se un proxy va offline, i suoi host verranno spostati su altri proxy, mantenendo così un'elevata disponibilità dei proxy.
- Se un proxy ha un numero di host molto più alto/più basso rispetto agli altri proxy, i suoi host verranno spostati su altri proxy per bilanciare il carico dei proxy.
La redistribuzione degli host funziona solo tra i proxy di un gruppo che soddisfano le seguenti condizioni:
- I proxy eseguono Zabbix 7.0 o versioni successive.
- La versione del proxy corrisponde alla versione del server Zabbix. Se si utilizza Zabbix agent (passive), la versione del proxy deve corrispondere alla versione dell'agent. Gli agent attivi richiedono solo Zabbix 7.0 o versioni successive.
- Il gruppo di proxy ha uno stato online.
- Gli host sono configurati per essere monitorati da un gruppo di proxy anziché da proxy singoli.
Lo stato di salute del gruppo di proxy può essere monitorato con controlli interni da qualsiasi host assegnato a un gruppo di proxy. Tuttavia, per monitorare lo stato di salute di un singolo proxy in un gruppo, assegnare l'host a quel proxy; in caso contrario, i risultati potrebbero essere incoerenti.
Redistribuzione degli host
Il bilanciamento del carico dei proxy e l'alta disponibilità sono gestiti da Zabbix server tramite il proxy group manager, che monitora continuamente lo stato di tutti i proxy in ciascun gruppo di proxy e la relativa distribuzione degli host.
L'alta disponibilità dei proxy all'interno di un gruppo è garantita tramite il failover del proxy: quando un proxy va offline, i relativi host vengono immediatamente ridistribuiti ad altri proxy. Si verifica anche il bilanciamento del carico dei proxy, poiché gli host vengono riassegnati ai proxy con il minor numero di host assegnati.
Inoltre, il bilanciamento del carico dei proxy viene attivato quando il numero di host di un proxy differisce dalla media del gruppo di almeno 10 host e di un fattore pari a 2 (eccesso di host o deficit di host). Se lo squilibrio persiste dopo un periodo di tolleranza (10 x failover delay), il gruppo di proxy viene messo in coda per la ridistribuzione degli host.
Il proxy group manager ridistribuisce gli host usando la seguente logica:
- Calcolare il numero medio di host per proxy.
- Per i proxy con eccesso di host, spostare gli host in eccesso nel pool di proxy non assegnati.
- Per i proxy con deficit di host, calcolare quanti host sono necessari per raggiungere l'equilibrio.
- Rimuovere il numero richiesto di host dai proxy con il maggior numero di host.
- Spostare gli host non assegnati ai proxy con il minor numero di host.
Esempi di ridistribuzione degli host:
| Host sul proxy | Media del gruppo | Riassegnazione degli host |
|---|---|---|
| 100 | 50 | Sì |
| 60 | 50 | No |
| 40 | 50 | No |
| 25 | 50 | Sì |
| 15 | 5 | Sì |
| 10 | 5 | No |
Avere meno di 10 host monitorati da un proxy group può portare a una distribuzione non uniforme degli host tra i proxy del gruppo.
Configurazione di un gruppo di proxy
Per configurare un gruppo di proxy nel frontend di Zabbix:
- Vai a Administration > Proxy groups
- Fai clic su Create proxy group

| Parameter | Description |
|---|---|
| Name | Nome del gruppo di proxy. |
| Failover period | Periodo in secondi durante il quale un proxy nel gruppo di proxy deve comunicare con il server Zabbix per essere considerato online (predefinito: 1m; intervallo: 10s-15m). Se il proxy non comunica entro questo periodo, lo stato del proxy viene modificato in Offline e i relativi host vengono immediatamente ridistribuiti ad altri proxy. Il bilanciamento del carico dei proxy inizia dopo 10 x questo periodo. Supporta suffissi di tempo (ad esempio, 30s, 1m) e macro utente. |
| Minimum number of proxies | Numero minimo di proxy online richiesti per mantenere online il gruppo di proxy (predefinito: 1; intervallo: 1-1000). Supporta macro utente. Questo valore deve essere inferiore al numero totale di proxy nel gruppo. Ad esempio, in un gruppo di 10 proxy, impostare il minimo a 10 farà andare offline il gruppo se un qualsiasi proxy si guasta. Nota che i proxy online in un gruppo offline continuano a funzionare normalmente, ma non verranno eseguiti bilanciamento del carico/alta disponibilità. |
| Description | Descrizione del gruppo di proxy. |
| Proxies | Mostra un elenco di massimo cinque proxy (come collegamenti o in testo normale, a seconda dei permessi dell'utente sui proxy) quando si modifica un gruppo con proxy. |
Configurazione del bilanciamento del carico dei proxy
Per usare il bilanciamento del carico dei proxy, è necessario configurare un gruppo di proxy nel frontend di Zabbix (vedi sopra) e assicurarsi che gli host siano monitorati da un gruppo di proxy, non da proxy singoli (è possibile usare l'aggiornamento massivo degli host per spostare gli host dai proxy al gruppo di proxy).
Se si usa Zabbix agent, configurarlo anche come segue:
- Per i controlli passivi, elencare tutti i proxy del gruppo di proxy nel parametro Server.
- Per i controlli attivi, si consiglia di elencare tutti i proxy del gruppo di proxy o il server Zabbix nel parametro ServerActive. Si noti che solo Zabbix agent 7.0 (o versioni successive) funzionerà con i gruppi di proxy nella modalità attiva.
Se il parametro ServerActive include solo un proxy di un gruppo di proxy (o il server Zabbix), l'agent sarà comunque in grado di connettersi al proxy corretto.
Quando il servizio dell'agent si avvia e si connette al proxy specificato, l'agent riceverà e memorizzerà nella cache l'elenco completo degli IP dei proxy e il loro carico attuale all'interno del gruppo.
In seguito, i controlli attivi verranno reindirizzati al proxy online corretto per l'host, in base all'assegnazione corrente proxy-host all'interno del gruppo di proxy.
Avere un solo proxy specificato nel parametro ServerActive di Zabbix agent può causare la perdita dei dati di monitoraggio se l'agent viene avviato o riavviato mentre il proxy specificato è offline.
Quando si usa Zabbix sender, anche le richieste di dati vengono reindirizzate al proxy online corretto per l'host, in base all'assegnazione corrente proxy-host all'interno del gruppo di proxy.
Tuttavia, se si inviano valori di più host da un file di input, usare l'opzione -g per evitare di inviare i dati al proxy sbagliato.
Zabbix agent deve inoltre poter connettersi a tutti i proxy del gruppo di proxy attraverso il firewall. In caso contrario, i controlli attivi potrebbero bloccarsi o fallire durante il reindirizzamento o il failover. Ad esempio:
- Durante i controlli attivi, un proxy può reindirizzare l'agent a un altro proxy. Se quel proxy è bloccato da un firewall, la comunicazione si bloccherà in attesa di una risposta.
- In configurazioni stabili ad alta disponibilità senza ribilanciamenti recenti, gli agent potrebbero non contattare mai i proxy di backup. Se le regole del firewall sono cambiate e non sono state testate, il failover potrebbe fallire.
Test del bilanciamento del carico del proxy
Per testare il bilanciamento del carico del proxy:
- Configurare un gruppo di proxy.
- Assicurarsi che il gruppo di proxy abbia uno stato online.
- Assicurarsi che gli host siano monitorati da un gruppo di proxy, non da proxy singoli (è possibile usare l'aggiornamento massivo degli host per spostare gli host dai proxy al gruppo di proxy).
- Attendere alcuni secondi per l'aggiornamento della configurazione e la distribuzione degli host tra i proxy nel gruppo di proxy. Osservare la modifica aggiornando l'elenco degli host in Administration > Proxy.
Note importanti
- Gli SNMP trap non sono supportati dai proxy in un gruppo di proxy.
- I controlli che dipendono da una configurazione esterna (ad es. script per external checks o configurazione ODBC per database checks) devono avere la stessa configurazione su tutti i proxy nel gruppo di proxy.
- I database checks richiedono autorizzazioni estese sull'oggetto database/server.
- Gli host VMware monitorati da un gruppo di proxy verranno distribuiti casualmente tra i proxy del gruppo. Questo fa sì che ogni proxy memorizzi nella cache tutti i dati VMware, con conseguente carico aggiuntivo su vCenter.
- Gli host creati in base ai dati di autoregistrazione provenienti da un proxy in un gruppo di proxy vengono impostati per essere monitorati da quel gruppo di proxy. Tuttavia, gli host creati in base ai dati di discovery di rete provenienti da un proxy in un gruppo di proxy vengono impostati per essere monitorati da quel proxy.