[comment]: # ({0a2d9a93-0a2d9a93})
# 1 Proxy

[comment]: # ({/0a2d9a93-0a2d9a93})

[comment]: # ({c112bcf2-5a59cd81})
### Panoramica

Un Zabbix proxy può raccogliere dati di prestazioni e disponibilità per conto del server Zabbix. In questo modo, un proxy può farsi carico di parte del carico di raccolta dei dati e alleggerire il server Zabbix.

Inoltre, l'uso di un proxy è il modo più semplice per implementare un monitoraggio centralizzato e distribuito, quando tutti gli agent e i proxy inviano i dati a un unico server Zabbix e tutti i dati vengono raccolti centralmente.

Un Zabbix proxy può essere usato per:

-   Monitorare sedi remote
-   Monitorare sedi con comunicazioni inaffidabili
-   Alleggerire il server Zabbix quando si monitorano migliaia di dispositivi
-   Semplificare la manutenzione del monitoraggio distribuito

![](../../../assets/en/manual/proxies/proxy.png){width="600"}

Il proxy richiede solo una connessione TCP al server Zabbix. In questo modo è più facile superare un firewall, poiché è necessario configurare una sola regola firewall.

::: noteimportant
Zabbix proxy deve usare un database separato.
Se lo si punta al database del server Zabbix, la configurazione verrà compromessa.
:::

Tutti i dati raccolti dal proxy vengono memorizzati localmente prima di essere trasmessi al server. In questo modo non si perde alcun dato a causa di eventuali problemi temporanei di comunicazione con il server. I parametri *ProxyLocalBuffer* e *ProxyOfflineBuffer* nel [file di configurazione del proxy](/manual/appendix/config/zabbix_proxy) controllano per quanto tempo i dati vengono conservati localmente.

::: noteimportant
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](/manual/appendix/config/zabbix_server). Di conseguenza, il proxy può iniziare a raccogliere dati e inviarli al server Zabbix, che ignora questi dati.
:::

Zabbix proxy è un raccoglitore di dati. Non calcola trigger, non elabora 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*|

::: noteclassic
\[1\] Per assicurarsi che un agent interroghi il proxy (e non il
server) per i controlli attivi, il proxy deve essere elencato nel
parametro **ServerActive** nel file di configurazione dell'agent.<br>
\[2\] Per LLD, Zabbix proxy raccoglie e pre-elabora solo i dati e poi li invia al server Zabbix per l'elaborazione successiva.
:::

[comment]: # ({/c112bcf2-5a59cd81})

[comment]: # ({bde28545-737fe0c2})
##### 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 controlli elaborati più lentamente di quanto dovrebbero. È stata implementata una protezione da questo scenario per evitare i problemi che derivano dal sovraccarico della history cache.

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, è stata aggiunta la limitazione dei proxy (attualmente non può essere disabilitata).

Il server Zabbix smetterà di accettare dati dai proxy quando l'utilizzo della history cache raggiunge l'80%. I proxy verranno invece inseriti in un elenco di limitazione. Questa situazione continuerà finché l'utilizzo della cache non scenderà al 60%. A quel punto il server inizierà ad accettare i dati dai proxy uno alla volta, in base all'elenco di limitazione. Ciò significa che il primo proxy che ha tentato di caricare dati durante il periodo di limitazione verrà servito per primo e, fino al completamento, il server non accetterà dati dagli altri proxy.

Questa modalità di limitazione continuerà finché l'utilizzo della cache non raggiunge di nuovo l'80%, oppure scende al 20%, oppure l'elenco di limitazione è vuoto. Nel primo caso il server smetterà di accettare nuovamente i dati dei proxy. Negli altri due casi il server riprenderà a funzionare normalmente, accettando dati da tutti i proxy.

Le informazioni sopra riportate possono essere illustrate nella seguente tabella:

|Utilizzo della history write <br>cache|Modalità del server Zabbix|Azione del server Zabbix|
|--|--|------|
|Raggiunge l'80% |Attesa|Smette di accettare dati dei proxy, ma mantiene un *elenco di limitazione* (elenco prioritario dei proxy da contattare in seguito).|
|Scende al 60% |Limitata|Inizia a elaborare l'elenco di limitazione, ma continua a non accettare dati dei proxy.|
|Scende al 20% |Normale|Elimina l'elenco di limitazione e inizia ad accettare normalmente i dati dei proxy.|

È possibile usare l'item interno [zabbix[wcache,history,pused]](/manual/config/items/itemtypes/internal#wcache) per correlare questo comportamento del server Zabbix con una metrica.

[comment]: # ({/bde28545-737fe0c2})

[comment]: # ({0f7bc9e3-e3203196})
### Configurazione

Una volta [installato](/manual/installation/install) e
[configurato](/manual/appendix/config/zabbix_proxy) un proxy, è il momento
di configurarlo nel frontend di Zabbix.

[comment]: # ({/0f7bc9e3-e3203196})

[comment]: # ({e8649a6d-a5555aaf})
##### Aggiunta dei proxy

Per configurare un proxy nel frontend di Zabbix:

-   Vai a: *Administration → Proxies*
-   Fai clic su *Create proxy*

![](../../../assets/en/manual/distributed_monitoring/proxy.png){width="600"}

|Parameter|<|Description|
|-|----------|----------------------------------------|
|*Proxy name*|<|Immetti il nome del proxy. Deve essere lo stesso nome del parametro *Hostname* nel file di configurazione del proxy.|
|*Proxy group*|<|Seleziona un gruppo proxy per il [bilanciamento del carico/alta disponibilità](/manual/distributed_monitoring/proxies/ha) del proxy.|
|*Address for active agents*|<|Immetti l'indirizzo a cui devono connettersi gli agenti attivi o i sender monitorati. Supportato **solo** per agenti Zabbix 7.0 o versioni successive.<br>Questo indirizzo viene usato per connettersi sia ai proxy attivi sia a quelli passivi. Questo campo è disponibile solo se nel campo *Proxy group* è selezionato un gruppo proxy.|
| |*Address*|Indirizzo IP/nome DNS a cui connettersi.|
|^|*Port*|Numero di porta TCP (10051 per impostazione predefinita) a cui connettersi. Sono supportate le macro utente.|
|*Proxy mode*|<|Seleziona la modalità del proxy.<br>**Active** - il proxy si connetterà al server Zabbix e richiederà i dati di configurazione<br>**Passive** - il server Zabbix si connette al proxy<br>*Nota* che, senza comunicazioni cifrate, i dati di configurazione del proxy (sensibili) potrebbero diventare disponibili a soggetti che hanno accesso alla porta trapper del server Zabbix quando si usa un proxy attivo. Ciò è possibile perché chiunque può fingersi un proxy attivo e richiedere i dati di configurazione se l'autenticazione non avviene o se gli indirizzi del 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, opzionalmente in notazione CIDR, oppure da nomi DNS del proxy Zabbix attivo.<br>Questo campo è disponibile solo se nel campo *Proxy mode* è selezionato un proxy attivo. Le macro non sono supportate.|
|*Interface*|<|Immetti i dettagli dell'interfaccia per un proxy passivo.<br>Questo campo è disponibile solo se nel campo Proxy mode è selezionato un proxy passivo.|
| |*Address*|Indirizzo IP/nome DNS del proxy passivo.|
|^|*Port*|Numero di porta TCP del proxy passivo (10051 per impostazione predefinita). Sono supportate le macro utente.|
|*Description*|<|Immetti la descrizione del proxy.|

La scheda **Encryption** consente di richiedere [connessioni cifrate](/manual/encryption) con il proxy.

|Parameter|Description|
|--|--------|
|*Connections to proxy*|Come il server si connette al proxy passivo: nessuna cifratura (predefinito), tramite PSK (pre-shared key) o certificato.|
|*Connections from proxy*|Seleziona quale tipo di connessioni sono consentite dal proxy attivo. È possibile selezionare più tipi di connessione contemporaneamente (utile per i test e per passare a un altro tipo di connessione). Il valore predefinito è "No encryption".|
|*Issuer*|Emittente consentito del certificato. Il certificato viene prima convalidato con la CA (certificate authority). Se è valido, firmato dalla CA, il campo *Issuer* può essere usato per limitare ulteriormente la CA consentita. Questo campo è facoltativo ed è pensato per essere usato se la tua installazione di Zabbix utilizza certificati di più CA.|
|*Subject*|Subject consentito del certificato. Il certificato viene prima convalidato con la CA. Se è valido, firmato dalla CA, il campo *Subject* può essere usato per consentire un solo valore della stringa *Subject*. Se questo campo è vuoto, viene accettato qualsiasi certificato valido firmato dalla CA configurata.|
|*PSK identity*|Stringa di identità della pre-shared key.<br>Non inserire informazioni sensibili nell'identità PSK, perché viene trasmessa non cifrata sulla rete per informare il destinatario su quale PSK usare.|
|*PSK*|Pre-shared key (stringa esadecimale). Lunghezza massima: 512 cifre esadecimali (PSK da 256 byte) se Zabbix usa la libreria GnuTLS o OpenSSL, 64 cifre esadecimali (PSK da 32 byte) se Zabbix usa la libreria mbed TLS (PolarSSL). Esempio: 1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952|

La scheda **Timeouts** consente di sovrascrivere i timeout [globali](/manual/web_interface/frontend_sections/administration/general#timeouts) per i tipi di item che lo supportano.

![](../../../assets/en/manual/distributed_monitoring/proxy_timeout.png){width="600"}

|Parameter|Description|
|--|--------|
|*Timeouts for item types*|Seleziona l'opzione di timeout:<br>**Global** - viene usato il timeout globale (visualizzato nel campo *Timeout* disattivato per ogni tipo di item);<br>**Override** - viene usato un timeout personalizzato (impostato nel campo *Timeout* per ogni tipo di item). Intervallo consentito: 1 - 600s (predefinito: ereditato dai timeout [globali](/manual/web_interface/frontend_sections/administration/general#timeouts)). Sono supportati i [suffissi di tempo](/manual/appendix/suffixes#time-suffixes), ad esempio 30s, 1m, e le [macro utente](/manual/config/macros/user_macros).<br><br>Facendo clic sul collegamento *Global timeouts* puoi configurare i timeout [globali](/manual/web_interface/frontend_sections/administration/general#timeouts). Nota che il collegamento *Global timeouts* è visibile solo agli utenti di tipo *Super admin* con autorizzazioni per la sezione frontend *Administration* → [*General*](/manual/web_interface/frontend_sections/administration/general).<br><br>Tipi di item supportati:<br>- [Zabbix agent](/manual/config/items/itemtypes/zabbix_agent) (sia controlli passivi sia attivi)<br>- [Simple check](/manual/config/items/itemtypes/simple_checks) (eccetto gli item `icmpping*`, `vmware.*`)<br>- [SNMP agent](/manual/config/items/itemtypes/snmp) (solo per gli item SNMP `walk[OID]` e `get[OID]`)<br>- [External check](/manual/config/items/itemtypes/external)<br>- [Database monitor](/manual/config/items/itemtypes/odbc_checks)<br>- [HTTP agent](/manual/config/items/itemtypes/http)<br>- [SSH agent](/manual/config/items/itemtypes/ssh_checks)<br>- [TELNET agent](/manual/config/items/itemtypes/telnet_checks)<br>- [Script](/manual/config/items/itemtypes/script)<br>- [Browser](/manual/config/items/itemtypes/browser)<br><br>Nota che i timeout impostati in **Override** avranno la precedenza su quelli globali, ma verranno sovrascritti dai timeout dei singoli item se questi sono impostati nella [configurazione dell'item](/manual/config/items/item#configuration).|

::: noteclassic
Se la versione principale del proxy non corrisponde alla versione principale del server,
l'icona ![](../../../assets/en/manual/distributed_monitoring/info_yellow.png){class="nozoom"} 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 userà il parametro [`Timeout`](/manual/appendix/config/zabbix_proxy#timeout) dal file di configurazione del proxy.
:::

Il modulo di modifica di un proxy esistente ha 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

[comment]: # ({/e8649a6d-a5555aaf})

[comment]: # ({5fe15bb4-96c17aaf})
##### 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](/manual/config/hosts/host), utilizzando il campo *Monitored by*.

![](../../../assets/en/manual/proxies/proxy_set.png){width="600"}

L'[aggiornamento di massa](/manual/config/hosts/hostupdate) degli host è un altro modo per specificare che gli host debbano essere monitorati da un proxy o da un gruppo di proxy.

[comment]: # ({/5fe15bb4-96c17aaf})
