[comment]: # translation:outdated

[comment]: # ({734ebac5-734ebac5})
# 9. Monitoraggio Web

[comment]: # ({/734ebac5-734ebac5})

[comment]: # ({8b066b0e-f37bc18c})
#### Panoramica

Con Zabbix puoi verificare diversi aspetti della disponibilità dei siti web.\

::: nota importante
Per eseguire il monitoraggio web, il server Zabbix deve essere
inizialmente [configurato](/manual/installation/install#from_the_sources)
con supporto cURL (libcurl).
:::

Per attivare il monitoraggio web è necessario definire scenari web. Una rete
scenario è costituito da una o più richieste HTTP o "passaggi". I passi
vengono periodicamente eseguiti dal server Zabbix in un ordine predefinito. Se un
host è monitorato dal proxy, i passaggi sono eseguiti dal proxy.

Gli scenari Web sono allegati a host/modelli allo stesso modo degli elementi,
trigger, ecc. Ciò significa che è possibile creare scenari web anche 
a livello di Template e quindi applicato a più host in un'unica mossa.

Le seguenti informazioni vengono raccolte in qualsiasi scenario web:

- velocità media di download al secondo per tutti i passaggi dell'intero scenario
- numero del passaggio non riuscito
- ultimo messaggio di errore

Le seguenti informazioni vengono raccolte in qualsiasi passaggio dello scenario Web:

- velocità di download al secondo
-   tempo di risposta
-   Codice di risposta

Per maggiori dettagli, vedere [monitoraggio web
articoli](/manual/web_monitoring/items).

I dati raccolti dall'esecuzione di scenari Web vengono conservati nel database. Il
i dati vengono utilizzati automaticamente per grafici, trigger e notifiche.

Zabbix può anche verificare se una pagina HTML recuperata contiene una stringa
predefinita. Può eseguire un login simulato e seguire un percorso di simulato
clic del mouse sulla pagina.

Il monitoraggio web Zabbix supporta sia HTTP che HTTPS. Quando si esegue un web
scenario, Zabbix seguirà facoltativamente i reindirizzamenti (vedi opzione *Segui
reindirizza* sotto). Il numero massimo di reindirizzamenti è impostato nel codice a 10
(usando l'opzione cURL
[CURLOPT\_MAXREDIRS](http://curl.haxx.se/libcurl/c/CURLOPT_MAXREDIRS.html)).
Tutti i cookie vengono conservati durante l'esecuzione di un singolo scenario.

Vedi anche [problemi noti](/manual/installation/known_issues#https_checks)
per il monitoraggio web tramite protocollo HTTPS.

[comment]: # ({/8b066b0e-f37bc18c})

[comment]: # ({29df1292-f007debe})
#### Configurazione di uno scenario web

Per configurare uno scenario web:

- Vai a: *Configurazione → Host* (o *Modelli*)
- Fare clic su *Web* nella riga dell'host/modello
- Fare clic su *Crea scenario* a destra (o sul nome dello scenario in
    modificare uno scenario esistente)
- Immettere i parametri dello scenario nel modulo

La scheda **Scenario** consente di configurare i parametri generali di a
scenario web.

![](../../assets/en/manual/config/scenario.png)

Tutti i campi di input obbligatori sono contrassegnati da un asterisco rosso.

Parametri dello scenario:

|Parametro|Descrizione|
|--|--------|
|*Host*|Nome dell'host/modello a cui appartiene lo scenario.|
|*Nome*|Nome scenario univoco.|
|*Intervallo di aggiornamento*|Quanto spesso verrà eseguito lo scenario.<br>[Suffissi temporali](/manual/appendice/suffissi) sono supportati, ad es. 30s, 1m, 2h, 1d.<br>[Macro utente](/manual/config/macros/user_macros) sono supportati. *Nota* che se viene utilizzata una macro utente e il suo valore viene modificato (ad es. 5m → 30s), il controllo successivo verrà eseguito in base al valore precedente (più lontano in futuro con i valori di esempio).|
|*Tentativi*|Il numero di tentativi per l'esecuzione di passaggi dello scenario Web. In caso di problemi di rete (timeout, mancanza di connettività, ecc.) Zabbix può ripetere l'esecuzione di un passaggio più volte. La cifra impostata influenzerà ugualmente ogni fase dello scenario. È possibile specificare fino a 10 tentativi, il valore predefinito è 1.<br>*Nota*: Zabbix non ripeterà un passaggio a causa di un codice di risposta errato o della mancata corrispondenza di una stringa richiesta.|
|*Agente*|Seleziona un agente client.<br>Zabbix fingerà di essere il browser selezionato. Ciò è utile quando un sito Web restituisce contenuti diversi per browser diversi.<br>In questo campo è possibile utilizzare macro utente.|
|*Proxy HTTP*|Puoi specificare un proxy HTTP da utilizzare, utilizzando il formato `[protocol://][nomeutente[:password]@]proxy.example.com[:porta]`.<br>Questo imposta il [CURLOPT\_PROXY](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY.html) opzione cURL.<br>Il prefisso `protocol://` opzionale può essere utilizzato per specificare protocolli proxy alternativi (il protocollo il supporto del prefisso è stato aggiunto in cURL 7.21.7). Senza il protocollo specificato, il proxy verrà trattato come un proxy HTTP.<br>Per impostazione predefinita, verrà utilizzata la porta 1080.<br>Se specificato, il proxy sovrascriverà le variabili di ambiente relative al proxy come http\_proxy, HTTPS\_PROXY. Se non specificato, il proxy non sovrascriverà le variabili di ambiente relative al proxy. Il valore inserito viene passato "così com'è", non viene eseguito alcun controllo di integrità.<br>Puoi anche inserire un indirizzo proxy SOCKS. Se specifichi il protocollo sbagliato, la connessione non riuscirà e l'elemento non sarà più supportato.<br>*Nota* che con il proxy HTTP è supportata solo l'autenticazione semplice.<br>In questo campo è possibile utilizzare macro utente.|
|*Variabili*|Variabili che possono essere utilizzate nei passaggi dello scenario (URL, variabili di post).<br>Hanno il seguente formato:<br>**{macro1}**=valore1<br>**{macro2}* *=valore2<br>**{macro3}**=regex:<espressione regolare><br>Ad esempio:<br>{nomeutente}=Alexei<br>{password}=kj3h5kJ34bd<br>{hostid}=regex :hostid è (\[0-9\]+)<br>Le macro possono quindi essere referenziate nei passaggi come {nome utente}, {password} e {hostid}. Zabbix li sostituirà automaticamente con i valori effettivi. Nota che le variabili con `regex:` necessitano di un passaggio per ottenere il valore dell'espressione regolare in modo che il valore estratto possa essere applicato solo al passaggio successivo.<br>Se la parte del valore inizia con `regex:` allora la parte successiva viene trattata come un'espressione regolare che effettua una ricerca nella pagina Web e, se trovata, memorizza la corrispondenza nella variabile. Per poter estrarre il valore corrispondente, deve essere presente almeno un sottogruppo.<br>Le macro utente e {HOST.\*} [macro](/manual/appendice/macro/supported_by_location) sono supportate.<br>Le variabili vengono automaticamente Codificato con URL se utilizzato nei campi di query o nei dati del modulo per le variabili di post, ma deve essere codificato manualmente con l'URL se utilizzato in un post non elaborato o direttamente nell'URL.|
|*Headers*|Le intestazioni HTTP vengono utilizzate durante l'esecuzione di una richiesta. È possibile utilizzare intestazioni predefinite e personalizzate.<br>Le intestazioni verranno assegnate utilizzando le impostazioni predefinite a seconda del tipo di agente selezionato da un elenco a discesa a livello di scenario e verranno applicate a tutti i passaggi, a meno che non siano definite in modo personalizzato su un livello di passaggio.<br>**Si noti che la definizione dell'intestazione su un livello di passaggio elimina automaticamente tutte le intestazioni precedentemente definite, ad eccezione di un'intestazione predefinita che viene assegnata selezionando l'"User-Agent" da un menu a discesa elenco a livello di scenario.**<br>Tuttavia, anche l'intestazione predefinita 'User-Agent' può essere sovrascritta specificandola a livello di passaggio.<br>Per annullare l'impostazione dell'intestazione a livello di scenario, l'intestazione deve essere denominata e attribuiti senza alcun valore a livello di passaggio.<br>Le intestazioni devono essere elencate utilizzando la stessa sintassi che apparirebbero nel protocollo HTTP, utilizzando facoltativamente alcune funzionalità aggiuntive supportate da [CURLOPT\_HTTPHEADER](http://curl. haxx.se/libcurl/c/CURLOPT_HTTPHEADER.html) opzione cURL.<br>Ad esempio:<br>Accetta-Charset=utf-8 <br>Accept-Language=en-US<br>Tipo di contenuto=applicazione/xml; charset=utf-8<br>Le macro utente e {HOST.\*} [macro](/manual/appendice/macro/supported_by_location) sono supportate.|
|*Abilitato*|Lo scenario è attivo se questa casella è selezionata, altrimenti - disabilitato.|

Si noti che quando si modifica uno scenario esistente, sono presenti due pulsanti extra
disponibile nella forma:

| | |
|--|--------|
|![](../../assets/en/manual/web_monitoring/buttons_clone.png)|Crea un altro scenario basato sulle proprietà di quello esistente.|
|![](../../assets/en/manual/web_monitoring/buttons_clear.png)|Elimina la cronologia e i dati di tendenza per lo scenario. Ciò consentirà al server di eseguire lo scenario immediatamente dopo l'eliminazione dei dati.|

::: suggerimento
Se il campo *proxy HTTP* viene lasciato vuoto, un altro modo per
l'utilizzo di un proxy HTTP consiste nell'impostare le variabili di ambiente relative al proxy.

Per i controlli HTTP: imposta la variabile di ambiente **http\_proxy** per il file
Utente del server Zabbix. Per esempio,
`http_proxy=http://ip_proxy:porta_proxy`.

Per i controlli HTTPS: impostare la variabile di ambiente **HTTPS\_PROXY**. Per
esempio, `HTTPS_PROXY=http://proxy_ip:proxy_port`. Maggiori dettagli sono
disponibile eseguendo un comando di shell: *\# man curl*.
:::

La scheda **Passi** consente di configurare i passaggi dello scenario Web. Aggiungere
un passaggio di uno scenario web, fare clic su *Aggiungi* nel blocco *Passaggi*.

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

::: noteclassico
Segreto [utente
macros](/manual/config/macros/user_macros#configuration) non deve essere
utilizzati negli URL poiché si risolveranno in "\*\*\*\*\*\*".
:::

[comment]: # ({/29df1292-f007debe})

[comment]: # ({a371012e-74c8baab})
#### Procedura di configurazione

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

Parametri del passo:

|Parametro|Descrizione|
|--|--------|
|*Nome*|Nome univoco del passaggio.|
|*URL*|URL per connettersi e recuperare i dati. Ad esempio:<br>https://www.example.com<br>http://www.example.com/download<br>I nomi di dominio possono essere specificati in caratteri Unicode. Vengono automaticamente convertiti punycode in ASCII durante l'esecuzione del passaggio dello scenario Web.<br>Il pulsante *Analizza* può essere utilizzato per separare i campi di query opzionali (come ?name=Admin&password=mypassword) dall'URL, spostando gli attributi e i valori in *Campi di query* per la codifica URL automatica.<br>Le variabili possono essere utilizzate nell'URL, utilizzando la sintassi {macro}. Le variabili possono essere codificate manualmente tramite URL utilizzando una sintassi {{macro}.urlencode()}.<br>Le macro utente e {HOST.\*} [macro](/manual/appendice/macro/supported_by_location) sono supportate.<br >Limitato a 2048 caratteri.|
|*Campi di query*|Variabili HTTP GET per l'URL.<br>Specificati come coppie di attributi e valori.<br>I valori vengono codificati automaticamente nell'URL. I valori delle variabili di scenario, delle macro utente o delle macro {HOST.\*} vengono risolti e quindi codificati nell'URL automaticamente. L'utilizzo di una sintassi {{macro}.urlencode()} raddoppierà la codifica dell'URL.<br>Sono supportate le macro utente e {HOST.\*} [macro](/manual/appendice/macro/supported_by_location).|
|*Post*|Variabili HTTP POST.<br>In modalità **Form data**, specificate come coppie di attributi e valori.<br>I valori vengono codificati automaticamente tramite URL. I valori delle variabili di scenario, delle macro utente o delle macro {HOST.\*} vengono risolti e quindi codificati nell'URL automaticamente.<br>In modalità **Dati grezzi**, gli attributi/valori vengono visualizzati su una singola riga e concatenati con un * *&** simbolo.<br>I valori grezzi possono essere codificati/decodificati manualmente utilizzando una sintassi {{macro}.urlencode()} o {{macro}.urldecode()}.<br>Ad esempio: id= 2345&userid={user}<br>Se {user} è definito come una variabile dello scenario web, verrà sostituito dal suo valore quando viene eseguito il passaggio. Se desideri codificare in URL la variabile, sostituisci {utente} con {{utente}.urlencode()}.<br>Macro utente e {HOST.\*} [macro](/manual/appendice/macro/supported_by_location) sono supportati.|
|*Variabili*|Variabili a livello di passaggio che possono essere utilizzate per le funzioni GET e POST.<br>Specificate come coppie di attributi e valori.<br>Le variabili a livello di passaggio sostituiscono le variabili a livello di scenario o le variabili del passaggio precedente. Tuttavia, il valore di una variabile a livello di passaggio influisce solo sul passaggio successivo (e non sul passaggio corrente).<br>Hanno il seguente formato:<br>**{macro}**=valore<br>**{ macro}**=regex:<espressione regolare><br>Per ulteriori informazioni, vedere la descrizione della variabile a livello [scenario](web_monitoring#configuring_a_web_scenario).<br>Le variabili vengono automaticamente codificate tramite URL quando vengono utilizzate nei campi di query o nei dati del modulo per post variabili, ma devono essere codificate manualmente nell'URL se utilizzate in un post non elaborato o direttamente nell'URL.|
|*Headers*|Intestazioni HTTP personalizzate che verranno inviate durante l'esecuzione di una richiesta.<br>Specificate come coppie di attributi e valori.<br>Per quel particolare passaggio verrà utilizzata un'intestazione definita a livello di passaggio.<br>** Va notato che la definizione dell'intestazione a livello di passaggio elimina automaticamente tutte le intestazioni precedentemente definite, ad eccezione di un'intestazione predefinita che viene assegnata selezionando lo 'User-Agent' da un elenco a discesa a livello di scenario.**< br>Tuttavia, anche l'intestazione predefinita "User-Agent" può essere sovrascritta specificandola a livello di passaggio.<br>Ad esempio, l'assegnazione del nome a un'intestazione, ma senza l'impostazione di alcun valore, annullerà l'impostazione dell'intestazione predefinita a livello di scenario .<br>Le macro utente e le macro {HOST.\*} sono supportate.<br>Questo imposta l'opzione cURL [CURLOPT\_HTTPHEADER](http://curl.haxx.se/libcurl/c/CURLOPT_HTTPHEADER.html). <br>La specificazione di intestazioni personalizzate è supportata *a partire da Zabbix 2.4*.|
|*Segui reindirizzamenti*|Segna la casella di controllo per seguire i reindirizzamenti HTTP.<br>Questo imposta l'opzione cURL [CURLOPT\_FOLLOWLOCATION](http://curl.haxx.se/libcurl/c/CURLOPT_FOLLOWLOCATION.html).|
|*Modalità di recupero*|Seleziona la modalità di recupero:<br>**Body** - recupera solo il corpo dalla risposta HTTP<br>**Headers** - recupera solo le intestazioni dalla risposta HTTP<br>**Body e headers** - recupera il corpo e le intestazioni dalla risposta HTTP|
|*Timeout*|Zabbix non impiegherà più del tempo impostato per l'elaborazione dell'URL (da un secondo a un massimo di 1 ora). In realtà questo parametro definisce il tempo massimo per effettuare la connessione all'URL e il tempo massimo per eseguire una richiesta HTTP. Pertanto, Zabbix non trascorrerà più di **2 x Timeout** secondi sul passaggio.<br>[Suffissi temporali](/manual/appendice/suffissi) sono supportati, ad es. 30s, 1m, 1h. [Macro utente](/manual/config/macro/utente_macro) sono supportati.|
|*Stringa richiesta*|Modello di espressione regolare richiesto.<br>A meno che il contenuto recuperato (HTML) non corrisponda al modello richiesto, il passaggio avrà esito negativo. Se vuoto, non viene eseguito alcun controllo sulla stringa richiesta.<br>Ad esempio:<br>Homepage di Zabbix<br>Benvenuto.\*admin<br>*Nota*: Riferimento a [espressioni regolari](espressioni_regolari) create in Zabbix frontend non è supportato in questo campo.<br>Le macro utente e {HOST.\*} [macro](/manual/appendice/macro/supported_by_location) sono supportate.|
|*Codici di stato obbligatori*|Elenco dei codici di stato HTTP previsti. Se Zabbix ottiene un codice che non è nell'elenco, il passaggio avrà esito negativo.<br>Se è vuoto, non viene eseguito alcun controllo sui codici di stato.<br>Ad esempio: 200,201,210-299<br>Le macro utente sono supportate.|

::: noteclassico
Eventuali modifiche ai passaggi dello scenario Web verranno salvate solo quando
l'intero scenario viene salvato.
:::

Vedi anche un [esempio di vita reale](/manual/web_monitoring/example) di come
è possibile configurare le fasi di monitoraggio web.

[comment]: # ({/a371012e-74c8baab})

[comment]: # ({6f40ea68-6f40ea68})
#### Configurazione dei tag

La scheda **Tag** consente di definire il livello di scenario
[tag](/manual/config/tagging).

![](../../assets/en/manual/config/scenario_c.png)

Il tagging permette di filtrare gli scenari web e il monitoraggio web
[items](/manual/web_monitoring/items).

[comment]: # ({/6f40ea68-6f40ea68})

[comment]: # ({c7c7a9dd-4cce2d90})
#### Configurazione dell'autenticazione

La scheda **Autenticazione** consente di configurare le opzioni
di autenticazione dello scenario. Un punto verde accanto al nome della scheda indica che
è abilitato un tipo di autenticazione HTTP.

![](../../assets/en/manual/config/scenario_d.png)

Parametri di autenticazione:

|Parametro|Descrizione|
|--|--------|
|*Autenticazione*|Opzioni di autenticazione.<br>**Nessuna**: nessuna autenticazione utilizzata.<br>**Base**: viene utilizzata l'autenticazione di base.<br>**NTLM** - NTLM ([LAN Windows NT Manager)](http://en.wikipedia.org/wiki/NTLM) viene utilizzata l'autenticazione.<br>**Kerberos** - Viene utilizzata l'autenticazione Kerberos. Vedi anche: [Configurazione di Kerberos con Zabbix](/manual/appendix/items/kerberos).<br>**Digest** - Viene utilizzata l'autenticazione digest.<br>Selezionando un metodo di autenticazione verranno forniti due campi aggiuntivi per l'immissione di un utente nome e password.<br>Le macro utente possono essere utilizzate nei campi utente e password.|
|*SSL verifica peer*|Selezionare la casella di controllo per verificare il certificato SSL del server Web.<br>Il certificato del server verrà prelevato automaticamente dalla posizione dell'autorità di certificazione (CA) a livello di sistema. È possibile sovrascrivere la posizione dei file CA utilizzando il server Zabbix o il parametro di configurazione proxy [SSLCALocation](/manual/appendix/config/zabbix_server).<br>Questo imposta il [CURLOPT\_SSL\_VERIFYPEER](http://curl.haxx .se/libcurl/c/CURLOPT_SSL_VERIFYPEER.html) opzione cURL.|
|*Host di verifica SSL*|Selezionare la casella di controllo per verificare che il campo *Common Name* o il campo *Subject Alternate Name* del certificato del server Web corrispondano.<br>Questo imposta il [CURLOPT\_SSL\_VERIFYHOST](http: //curl.haxx.se/libcurl/c/CURLOPT_SSL_VERIFYHOST.html) opzione cURL.|
|*File del certificato SSL*|Nome del file del certificato SSL utilizzato per l'autenticazione del client. Il file del certificato deve essere in formato PEM^1^. Se il file del certificato contiene anche la chiave privata, lasciare vuoto il campo *file chiave SSL*. Se la chiave è crittografata, specificare la password nel campo *Password chiave SSL*. La directory contenente questo file è specificata dal server Zabbix o dal parametro di configurazione proxy [SSLCertLocation](/manual/appendix/config/zabbix_server).<br>In questo campo è possibile utilizzare le macro `HOST.*` e le macro utente.<br> Questo imposta l'opzione cURL [CURLOPT\_SSLCERT](http://curl.haxx.se/libcurl/c/CURLOPT_SSLCERT.html).|
|*File della chiave SSL*|Nome del file della chiave privata SSL utilizzato per l'autenticazione del client. Il file della chiave privata deve essere in formato PEM^1^. La directory contenente questo file è specificata dal server Zabbix o dal parametro di configurazione proxy [SSLKeyLocation](/manual/appendix/config/zabbix_server).<br>In questo campo è possibile utilizzare le macro `HOST.*` e le macro utente.<br> Questo imposta l'opzione cURL [CURLOPT\_SSLKEY](http://curl.haxx.se/libcurl/c/CURLOPT_SSLKEY.html).|
|*Password chiave SSL*|Password file chiave privata SSL.<br>In questo campo è possibile utilizzare macro utente.<br>Questo imposta il [CURLOPT\_KEYPASSWD](http://curl.haxx.se/libcurl/c /CURLOPT_KEYPASSWD.html) opzione cURL.|

::: nota importante
 \[1\] Zabbix supporta certificato e chiave privata
solo file in formato PEM. Nel caso tu abbia il tuo certificato e privato
dati chiave nel file in formato PKCS \#12 (solitamente con estensione \*.p12 o
\*.pfx) è possibile generare il file PEM da esso utilizzando quanto segue
comandi:

    openssl pkcs12 -in ssl-cert.p12 -clcerts -nokeys -out ssl-cert.pem
    openssl pkcs12 -in ssl-cert.p12 -nocerts -nodes -out ssl-cert.key


:::

::: noteclassico
 Il server Zabbix raccoglie le modifiche ai certificati senza a
ricomincia.
:::

::: noteclassico
 Se hai il certificato client e la chiave privata in un unico
file basta specificarlo in un campo "file certificato SSL" e lasciare "SSL
file chiave" campo vuoto. Il certificato e la chiave devono essere ancora in PEM
formato. Combinare certificato e chiave è facile:

    cat client.crt client.key > client.pem


:::

[comment]: # ({/c7c7a9dd-4cce2d90})

[comment]: # ({04ea8cec-ae869848})
#### Visualizzazione

Per visualizzare gli scenari Web configurati per un host, vai su *Monitoraggio → Host*,
individuare l'host nell'elenco e fare clic sul collegamento ipertestuale *Web* nell'ultimo
colonna. Fare clic sul nome dello scenario per ottenere informazioni dettagliate.

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

Una panoramica degli scenari web può essere visualizzata anche in *Monitoraggio →
Dashboard* tramite un widget di monitoraggio Web.

I risultati recenti dell'esecuzione dello scenario web sono disponibili in
Sezione *Monitoraggio → Ultimi dati*.

[comment]: # ({/04ea8cec-ae869848})

[comment]: # ({42ab5787-42ab5787})
#### Monitoraggio esteso

A volte è necessario registrare il contenuto della pagina HTML ricevuto. Questo è
particolarmente utile se alcuni passaggi dello scenario Web non riescono. Livello di debug 5 (traccia)
serve a tale scopo. Questo livello può essere impostato
[server](/manual/appendice/config/zabbix_server) e
[proxy](/manual/appendice/config/zabbix_proxy) file di configurazione o
utilizzando un'opzione di controllo del runtime (`-R log_level_increase="http poller,N"`,
dove N è il numero di processo). Gli esempi seguenti dimostrano come
il monitoraggio esteso può essere avviato a condizione che il livello di debug 4 sia già
impostare:

    Aumenta il livello di registro di tutti i poller http:
    shell> zabbix_server -R log_level_increase="http poller"

    Aumenta il livello di registro del secondo poller http:
    shell> zabbix_server -R log_level_increase="http poller,2"

Se non è richiesto un monitoraggio web esteso, è possibile interromperlo utilizzando il
Opzione `-R log_level_decrease`.

[comment]: # ({/42ab5787-42ab5787})
