8 Monitorare i siti web con gli item Browser
Introduzione
Questa pagina illustra i passaggi necessari per avviare il monitoraggio di base dei siti web con i Browser item.
A chi è rivolta questa guida
Questa guida è pensata per i nuovi utenti di Zabbix e contiene il set minimo di passaggi necessari per abilitare il monitoraggio di base dei siti web con i Browser item. Se stai cercando opzioni di personalizzazione approfondite o hai bisogno di una configurazione più avanzata, consulta la pagina Browser item o la sezione Configurazione del manuale di Zabbix.
Prerequisiti
Prima di procedere con questa guida, è necessario scaricare e installare Zabbix server e Zabbix frontend seguendo le istruzioni per il proprio sistema operativo.
A seconda del proprio ambiente, alcuni passaggi di questa guida potrebbero differire leggermente.
Questa guida si basa su un ambiente che esegue Ubuntu.
Configurare WebDriver
Gli item del browser richiedono un framework di automazione (Selenium Server oppure un semplice WebDriver, ad esempio ChromeDriver) come endpoint di web testing che controlla e interagisce con un browser, eseguendo comandi di test come il clic sui pulsanti o l'inserimento di testo. Come esempio, questa guida utilizzerà Selenium Server con Chrome in un container Docker.
Si presume che Docker sia già configurato. Questa guida non copre la configurazione di Docker. Per le istruzioni di installazione, vedere Install Docker Engine on Ubuntu.
1. Avviare Selenium Server con Chrome in un container Docker con le seguenti opzioni:
- docker run --name browser - esegue un nuovo container Docker denominato "browser";
- -p 4444:4444 - mappa la porta 4444 sulla macchina host alla porta 4444 del container (questa è la porta utilizzata da Selenium Server per accettare i comandi);
- -p 7900:7900 - mappa la porta 7900 sulla macchina host alla porta 7900 del container (questa è la porta utilizzata dal server Virtual Network Computing (VNC), che consente di visualizzare da remoto la GUI del browser; richiede un client VNC);
- --shm-size="2g" - assegna 2 GB di memoria condivisa al container (questo è importante affinché Chrome funzioni correttamente, poiché può richiedere una quantità significativa di memoria condivisa per evitare arresti anomali);
- -d - esegue il container in modalità detached, il che significa che verrà eseguito in background;
- selenium/standalone-chrome:latest - specifica l'immagine Docker da utilizzare; in questo caso, l'ultima versione di Selenium Server with Chrome.
docker run --name browser \
-p 4444:4444 \
-p 7900:7900 \
--shm-size="2g" \
-d selenium/standalone-chrome:latest
2. Assicurarsi che il container Docker browser sia in esecuzione e accessibile.
- Recuperare l'indirizzo IP del container (in questo esempio, 192.0.2.1):
ip addr
# 1: lo: <LOOPBACK,UP,LOWER_UP>
# ...
# 3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> ...
# inet 192.0.2.1/16 brd 192.0.255.255 scope global docker0
# ...
- Testare la connessione al container con Ncat:
nc -zv 192.0.2.1 4444
# Connection to 192.0.2.1 4444 port [tcp/*] succeeded!
- Recuperare il contenuto della pagina web da Selenium Server con curl:
curl -L 192.0.2.1:4444
# <!DOCTYPE html>
# <html lang="en">
#
# <head>
# <meta charset="utf-8"/>
# <link href="favicon.svg" rel="icon" type="image/svg">
# <meta content="width=device-width, initial-scale=1" name="viewport"/>
# <link href="logo192.png" rel="apple-touch-icon"/>
# <link href="manifest.json" rel="manifest"/>
# <title>Selenium Grid</title>
# </head>
#
# <body>
# ...
Per la risoluzione dei problemi, fare riferimento alla documentazione di Docker.
Configurare Zabbix server
Gli item del browser vengono eseguiti ed elaborati dai processi Zabbix browser poller, che devono essere abilitati modificando il parametro di configurazione del server StartBrowserPollers. Inoltre, il parametro WebDriverURL deve specificare l'endpoint di web testing configurato in precedenza.
Per impostazione predefinita, il parametro StartBrowserPollers è impostato su 1; pertanto, è necessario specificare solo l'endpoint di web testing.
1. Aprire il file di configurazione di Zabbix server.
vi /etc/zabbix/zabbix_server.conf
2. Individuare e impostare il parametro WebDriverURL nel file di configurazione di Zabbix server:
### Option: WebDriverURL
# URL HTTP[S] dell'interfaccia WebDriver. Ad esempio, http://localhost:4444 utilizzato con il server standalone Selenium WebDriver.
#
# Mandatory: no
# Default:
# WebDriverURL=
WebDriverURL=192.0.2.1:4444
3. Riavviare Zabbix server.
systemctl restart zabbix-server
Configurare il frontend di Zabbix
1. Accedi al frontend di Zabbix.
2. Crea un host nell'interfaccia web di Zabbix:
- Nel campo Host name, inserisci un nome host (ad esempio, "git.zabbix.com").
- Nel campo Templates, digita o seleziona il template "Website by Browser". Per ulteriori informazioni su questo template, vedi Website by Browser.
- Nel campo Host groups, digita o seleziona un gruppo di host (ad esempio, un nuovo gruppo di host "Websites").

- Nella scheda Macros, passa a Inherited and host macros, cerca le seguenti macro e fai clic su Change accanto al valore della macro per aggiornarlo:
- {$WEBSITE.DOMAIN} - Nome di dominio (ad esempio, git.zabbix.com/projects/ZBX/repos/zabbix/browse)
- {$WEBSITE.GET.DATA.INTERVAL} - Intervallo di aggiornamento dei dati dell'item (ad esempio, 15m)

3. Fai clic sul pulsante Add per creare l'host. Questo host rappresenterà il sito web che desideri monitorare.
Visualizzare le metriche raccolte
Congratulazioni! A questo punto, Zabbix sta già monitorando il sito web che hai specificato.
Per visualizzare le metriche raccolte, vai alla sezione di menu Monitoring → Hosts e fai clic su Dashboards accanto all'host.

Questa azione ti porterà alla dashboard dell'host (configurata a livello di template) con le metriche più importanti raccolte dal sito web.

Configurare gli avvisi di problema
Zabbix può notificarti un problema nella tua infrastruttura utilizzando diversi metodi. Questa guida fornisce i passaggi di configurazione di base per l'invio di avvisi email.
1. Vai a Impostazioni utente → Profilo, passa alla scheda Supporti e aggiungi il tuo indirizzo email.

2. Segui la guida per Ricevere una notifica di problema.
La prossima volta che Zabbix rileverà un problema, dovresti ricevere un avviso via email.
Testare la configurazione
Per testare la configurazione, possiamo simulare un problema reale aggiornando la configurazione del host nel frontend di Zabbix.
1. Apri la configurazione del host del tuo sito web in Zabbix.
2. Passa alla scheda Macros e seleziona Inherited and host macros.
3. Fai clic su Change accanto, ad esempio, al valore della macro {$WEBSITE.DOMAIN} configurata in precedenza e imposta un nome di dominio errato (ad esempio, /git.zabbix.com/projects/ZBX/repos/zabbix/browse).
4. Fai clic su Update per aggiornare la configurazione del host.
5. Tra qualche istante, Zabbix rileverà il problema "Failed to get JSON of the requested website", perché non sarà in grado di connettersi al sito web specificato. Il problema apparirà in Monitoring → Problems.

Se gli avvisi sono configurati, riceverai anche la notifica del problema.
6. Riporta il valore della macro al valore precedente per risolvere il problema e continuare il monitoraggio del sito web.
Vedi anche
- Creazione di un item - come iniziare a monitorare metriche aggiuntive.
- Escalation dei problemi - come creare scenari di avviso in più fasi (ad esempio, prima inviare un messaggio all'amministratore di sistema, poi, se un problema non viene risolto entro 45 minuti, inviare un messaggio al responsabile del data center).
- Item Browser - come configurare gli item Browser.
- Template Website by Browser - informazioni aggiuntive sul template Website by Browser.