[comment]: # aside:9

[comment]: # ({b9451140-6b0e1e45})
# Surveiller des sites web avec des éléments de navigateur

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

[comment]: # ({6f758e8b-8046ed31})
#### Introduction

Cette page vous guide à travers les étapes nécessaires pour commencer la surveillance de base des sites web avec des éléments de navigateur.

[comment]: # ({/6f758e8b-8046ed31})

[comment]: # ({204c7929-1c8f337f})
**À qui ce guide est destiné**

Ce guide est conçu pour les nouveaux utilisateurs de Zabbix et contient l'ensemble minimal d'étapes nécessaires pour activer la supervision de base des sites web avec des éléments de navigateur.
Si vous recherchez des options de personnalisation avancées ou si vous avez besoin d'une configuration plus poussée, consultez la page [Browser items](/manual/config/items/itemtypes/browser) ou la section [Configuration](/manual/config) du manuel Zabbix.

[comment]: # ({/204c7929-1c8f337f})

[comment]: # ({7879a4ee-746e75a8})
**Prérequis**

Avant de poursuivre ce guide, vous devez [télécharger et installer](https://www.zabbix.com/download) le serveur Zabbix et l'interface 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.

[comment]: # ({/7879a4ee-746e75a8})

[comment]: # ({3498dadf-9003b4f8})
#### Configurer WebDriver

Les éléments de navigateur nécessitent un framework d'automatisation (soit Selenium Server, soit un simple WebDriver, 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 [Installer Docker Engine sur Ubuntu](https://docs.docker.com/engine/install/ubuntu/).

1\. Lancez Selenium Server avec Chrome dans un conteneur Docker avec les options suivantes :

-   **docker run --name browser** - lance un nouveau conteneur Docker nommé "browser" ;
-   **-p 4444:4444** - mappe le port 4444 de votre machine hôte vers le port 4444 du conteneur (c'est le 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 (c'est le port utilisé par le serveur Virtual Network Computing (VNC), vous permettant de visualiser 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 pour é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 avec Chrome](https://hub.docker.com/r/selenium/standalone-chrome).

```bash
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) :

```bash
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](https://nmap.org/ncat/) :

```bash
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](https://curl.se/) :

```bash
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>
# ...
```

::: noteclassic
Pour le dépannage, consultez la [documentation Docker](https://docs.docker.com/engine/).
:::

[comment]: # ({/3498dadf-9003b4f8})

[comment]: # ({538d8706-3e81f645})
#### 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](/manual/appendix/config/zabbix_server#startbrowserpollers).
De plus, le paramètre [WebDriverURL](/manual/appendix/config/zabbix_server#webdriverurl) doit spécifier le point de terminaison de test web précédemment configuré.

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.

```bash
vi /etc/zabbix/zabbix_server.conf
```

2\. Localisez et définissez le paramètre [WebDriverURL](/manual/appendix/config/zabbix_server#webdriverurl) dans le fichier de configuration du serveur Zabbix :

```ini
### Option: WebDriverURL
#	WebDriver interface HTTP[S] URL. For example http://localhost:4444 used with Selenium WebDriver standalone server.
#
# Mandatory: no
# Default:
# WebDriverURL=

WebDriverURL=192.0.2.1:4444
```

3\. Redémarrez le serveur Zabbix.

```bash
systemctl restart zabbix-server
```

[comment]: # ({/538d8706-3e81f645})

[comment]: # ({a0f152f6-48af2e5f})
#### Configurer l'interface Zabbix

1\. Connectez-vous à l'interface Zabbix.

2\. [Créez un hôte](/manual/config/hosts/host) 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](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/website_browser?at=refs%2Fheads%2Frelease%2F7.0).
- Dans le champ *Host groups*, saisissez ou sélectionnez un groupe d'hôtes (par exemple, un nouveau groupe d'hôtes "Websites").

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

- 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)

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

3\. Cliquez sur le bouton *Add* pour créer l'hôte. Cet hôte représentera le site web que vous souhaitez surveiller.

[comment]: # ({/a0f152f6-48af2e5f})

[comment]: # ({b5c590c2-f8dfb64b})
#### Afficher les métriques collectées

Félicitations ! À ce stade, Zabbix surveille déjà le site web que vous avez spécifié.

Pour afficher les métriques collectées, accédez à la section de menu [*Monitoring → Hosts*](/manual/web_interface/frontend_sections/monitoring/hosts) et cliquez sur *Dashboards* à côté de l'hôte.

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

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.

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

[comment]: # ({/b5c590c2-f8dfb64b})

[comment]: # ({eca01285-e3d26cda})
#### Configurer les alertes de problème

Zabbix peut vous avertir d'un problème dans votre infrastructure à l'aide de diverses 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*](/manual/web_interface/user_profile), ouvrez l'onglet *Média* et [ajoutez votre adresse e-mail](/manual/quickstart/basic_config/login#adding-user).

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

2\. Suivez le guide pour [Recevoir une notification de problème](/manual/quickstart/basic_config/notification).

La prochaine fois que Zabbix détectera un problème, vous devriez recevoir une alerte par e-mail.

[comment]: # ({/eca01285-e3d26cda})

[comment]: # ({06163b26-77577f84})
#### 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 votre hôte de site web dans Zabbix.

2\. Accédez à l'onglet *Macros* et sélectionnez *Macros héritées et de l'hôte*.

3\. Cliquez sur *Modifier* à côté, par exemple, de la valeur de macro {$WEBSITE.DOMAIN} [précédemment configurée](#configure-zabbix-frontend), puis définissez un nom de domaine incorrect (par exemple, /git.zabbix.com/projects/ZBX/repos/zabbix/browse).

4\. Cliquez sur *Mettre à jour* 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 [*Surveillance → Problèmes*](/manual/web_interface/frontend_sections/monitoring/problems).

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

Si les alertes sont [configurées](#set-up-problem-alerts), vous recevrez également la notification du problème.

6\. Modifiez la valeur de la macro pour rétablir sa valeur précédente afin de résoudre le problème et poursuivre la surveillance du site web.

[comment]: # ({/06163b26-77577f84})

[comment]: # ({13c610d2-cfdcb2f0})
#### Voir aussi

- [Créer un élément](/manual/config/items/item) - comment commencer à surveiller des métriques supplémentaires.
- [Escalades de problèmes](/manual/config/notifications/action/escalations) - 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 en 45 minutes, envoyer un message au responsable du centre de données).
- [Éléments de navigateur](/manual/config/items/itemtypes/browser) - comment configurer des éléments de navigateur.
- Modèle [Website by Browser](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/website_browser?at=refs%2Fheads%2Frelease%2F7.0) - informations supplémentaires sur le modèle *Website by Browser*.

[comment]: # ({/13c610d2-cfdcb2f0})
