8 Surveiller des sites web avec des éléments Browser
Introduction
Cette page vous guide à travers les étapes nécessaires pour démarrer la surveillance de base de sites web avec des éléments Browser.
À qui s’adresse ce guide
Ce guide est conçu pour les nouveaux utilisateurs de Zabbix et contient l’ensemble minimal d’étapes nécessaires pour activer la surveillance de base des sites web avec des éléments Browser. Si vous recherchez des options de personnalisation poussées ou avez besoin d’une configuration plus avancée, consultez la page Éléments Browser ou la section Configuration du manuel Zabbix.
Prérequis
Avant de poursuivre ce guide, vous devez télécharger et installer le serveur Zabbix et le frontend Zabbix conformément aux instructions correspondant à votre système d’exploitation.
Selon votre environnement, certaines étapes de ce guide peuvent légèrement différer. Ce guide est basé sur un environnement exécutant Ubuntu.
Configurer WebDriver
Les éléments de navigateur nécessitent un framework d’automatisation (soit Selenium Server, soit un WebDriver simple, par exemple ChromeDriver) comme point de terminaison de test web qui contrôle et interagit avec un navigateur, en exécutant des commandes de test telles que cliquer sur des boutons ou saisir du texte. À titre d’exemple, ce guide utilisera Selenium Server avec Chrome dans un conteneur Docker.
Il est supposé que Docker est déjà configuré. Ce guide ne couvre pas la configuration de Docker. Pour les instructions d’installation, voir Install Docker Engine on Ubuntu.
1. Lancez Selenium Server avec Chrome dans un conteneur Docker avec les options suivantes :
- docker run --name browser - exécute un nouveau conteneur Docker nommé « browser » ;
- -p 4444:4444 - mappe le port 4444 de votre machine hôte vers le port 4444 du conteneur (il s’agit du port utilisé par Selenium Server pour accepter les commandes) ;
- -p 7900:7900 - mappe le port 7900 de votre machine hôte vers le port 7900 du conteneur (il s’agit du port utilisé par le serveur Virtual Network Computing (VNC), vous permettant d’afficher l’interface graphique du navigateur à distance ; nécessite un client VNC) ;
- --shm-size="2g" - alloue 2 Go de mémoire partagée au conteneur (cela est important pour que Chrome fonctionne correctement, car il peut nécessiter une quantité importante de mémoire partagée afin d’éviter les plantages) ;
- -d - exécute le conteneur en mode détaché, ce qui signifie qu’il s’exécutera en arrière-plan ;
- selenium/standalone-chrome:latest - spécifie l’image Docker à utiliser ; dans ce cas, la dernière version de Selenium Server with Chrome.
docker run --name browser \
-p 4444:4444 \
-p 7900:7900 \
--shm-size="2g" \
-d selenium/standalone-chrome:latest
2. Assurez-vous que le conteneur Docker browser est en cours d’exécution et accessible.
- Récupérez l’adresse IP du conteneur (dans cet exemple, 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
# ...
- Testez la connexion au conteneur avec Ncat :
nc -zv 192.0.2.1 4444
# Connection to 192.0.2.1 4444 port [tcp/*] succeeded!
- Récupérez le contenu de la page web depuis Selenium Server avec 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>
# ...
Pour le dépannage, reportez-vous à la documentation Docker.
Configurer le serveur Zabbix
Les éléments de navigateur sont exécutés et traités par les processus Zabbix browser poller, qui doivent être activés en ajustant le paramètre de configuration du serveur StartBrowserPollers. De plus, le paramètre WebDriverURL doit spécifier le point de terminaison de test web configuré précédemment.
Par défaut, le paramètre StartBrowserPollers est défini sur 1 ; vous devez donc uniquement spécifier le point de terminaison de test web.
1. Ouvrez le fichier de configuration du serveur Zabbix.
vi /etc/zabbix/zabbix_server.conf
2. Recherchez et définissez le paramètre WebDriverURL dans le fichier de configuration du serveur Zabbix :
### Option: WebDriverURL
# URL HTTP[S] de l'interface WebDriver. Par exemple, http://localhost:4444 utilisé avec le serveur autonome Selenium WebDriver.
#
# Mandatory: no
# Default:
# WebDriverURL=
WebDriverURL=192.0.2.1:4444
3. Redémarrez le serveur Zabbix.
systemctl restart zabbix-server
Configurer l’interface web Zabbix
1. Connectez-vous à l’interface web Zabbix.
2. Créez un hôte dans l’interface web Zabbix :
- Dans le champ Host name, saisissez un nom d’hôte (par exemple, « git.zabbix.com »).
- Dans le champ Templates, saisissez ou sélectionnez le modèle « Website by Browser ». Pour plus d’informations sur ce modèle, consultez Website by Browser.
- Dans le champ Host groups, saisissez ou sélectionnez un groupe d’hôtes (par exemple, un nouveau groupe d’hôtes « Websites »).

- Dans l’onglet Macros, passez à Inherited and host macros, recherchez les macros suivantes et cliquez sur Change à côté de la valeur de la macro pour la mettre à jour :
- {$WEBSITE.DOMAIN} - Nom de domaine (par exemple, git.zabbix.com/projects/ZBX/repos/zabbix/browse)
- {$WEBSITE.GET.DATA.INTERVAL} - Intervalle de mise à jour des données de l’élément (par exemple, 15m)

3. Cliquez sur le bouton Add pour créer l’hôte. Cet hôte représentera le site web que vous souhaitez surveiller.
Voir les métriques collectées
Félicitations ! À ce stade, Zabbix surveille déjà le site web que vous avez spécifié.
Pour voir les métriques collectées, accédez à la section de menu Monitoring → Hosts et cliquez sur Dashboards à côté de l’hôte.

Cette action vous amènera au tableau de bord de l’hôte (configuré au niveau du modèle) avec les métriques les plus importantes collectées à partir du site web.

Configurer les alertes de problème
Zabbix peut vous informer d’un problème dans votre infrastructure à l’aide de différentes méthodes. Ce guide fournit les étapes de configuration de base pour l’envoi d’alertes par e-mail.
1. Accédez à Paramètres utilisateur → Profil, ouvrez l’onglet Médias et ajoutez votre adresse e-mail.

2. Suivez le guide pour Recevoir une notification de problème.
La prochaine fois que Zabbix détectera un problème, vous devriez recevoir une alerte par e-mail.
Testez votre configuration
Pour tester votre configuration, nous pouvons simuler un problème réel en mettant à jour la configuration de l’hôte dans l’interface Zabbix.
1. Ouvrez la configuration de l’hôte de votre site web dans Zabbix.
2. Passez à l’onglet Macros et sélectionnez Inherited and host macros.
3. Cliquez sur Change à côté, par exemple, de la valeur de macro {$WEBSITE.DOMAIN} précédemment configurée et définissez un nom de domaine incorrect (par exemple, /git.zabbix.com/projects/ZBX/repos/zabbix/browse).
4. Cliquez sur Update pour mettre à jour la configuration de l’hôte.
5. Dans quelques instants, Zabbix détectera le problème « Failed to get JSON of the requested website », car il ne pourra pas se connecter au site web spécifié. Le problème apparaîtra dans Monitoring → Problems.

Si les alertes sont configurées, vous recevrez également la notification du problème.
6. Remettez la valeur de la macro à sa valeur précédente afin de résoudre le problème et de continuer à surveiller le site web.
Voir aussi
- Création d’un élément - comment commencer à surveiller des métriques supplémentaires.
- Escalades de problèmes - comment créer des scénarios d’alerte en plusieurs étapes (par exemple, envoyer d’abord un message à l’administrateur système, puis, si un problème n’est pas résolu dans les 45 minutes, envoyer un message au responsable du centre de données).
- Éléments Browser - comment configurer les éléments Browser.
- Modèle Website by Browser - informations supplémentaires sur le modèle Website by Browser.