Vous appréciez la puissance de Grafana pour le suivi des performances de vos serveurs ? Alors, préparez-vous à être conquis par Blackbox Exporter, l’outil idéal pour la surveillance de vos sites web !
Ce tutoriel vous guidera pas à pas dans l’installation de Blackbox Exporter sur des systèmes CentOS/RHEL. Vous découvrirez comment l’intégrer avec Prometheus et Grafana pour observer avec précision les performances et la disponibilité de vos sites web.
Qu’est-ce que Blackbox Exporter ?
Développé par Prometheus, Blackbox Exporter est un outil qui permet de tester la disponibilité de différents types de points de terminaison : HTTPS, HTTP, TCP, DNS et ICMP. Après avoir configuré ces points, l’exportateur génère une multitude de métriques qui peuvent être visualisées de manière intuitive grâce à Grafana. La mesure du temps de réponse constitue l’une des principales fonctionnalités de Blackbox Exporter.
Blackbox Exporter est une solution que vous hébergez vous-même. Si vous préférez une alternative en mode SaaS ou basée sur le cloud, n’hésitez pas à explorer Grafana worldPing.
Prérequis
Avant de commencer, assurez-vous que Prometheus et Grafana sont déjà installés sur votre système. Consultez cet article pour une aide à l’installation de Prometheus et Grafana.
Installation de Blackbox Exporter
Voici les étapes détaillées pour installer Blackbox Exporter.
Étape 1 : Télécharger Blackbox Exporter
Rendez-vous sur la page officielle de Prometheus pour récupérer le dernier package Linux AMD de Blackbox Exporter. Pour cet exemple, nous utiliserons le fichier `blackbox_exporter-0.16.0.linux-amd64.tar.gz`.
- Transférez ce fichier sur votre serveur.
- Décompressez ensuite l’archive.
tar -xzf blackbox_exporter-0.16.0.linux-amd64.tar.gz
Vérifiez le contenu du répertoire extrait.
cd blackbox_exporter-0.16.0.linux-amd64/ ls -l total 16672 -rwxr-xr-x. 1 centos centos 17050332 Nov 11 2019 blackbox_exporter -rw-r--r--. 1 centos centos 629 Nov 11 2019 blackbox.yml -rw-r--r--. 1 centos centos 11357 Nov 11 2019 LICENSE -rw-r--r--. 1 centos centos 94 Nov 11 2019 NOTICE
Les fichiers importants ici sont `blackbox_exporter` et `blackbox.yml`.
- `blackbox_exporter` : le fichier exécutable pour démarrer le service.
- `blackbox.yml` : le fichier de configuration YAML où vous définirez les points de terminaison à surveiller et les modules à utiliser.
La commande ci-dessous affichera toutes les options que vous pouvez utiliser avec Blackbox Exporter.
./blackbox_exporter -h usage: blackbox_exporter [<flags>] Flags: -h, --help Show context-sensitive help (also try --help-long and --help-man). --config.file="blackbox.yml" Blackbox exporter configuration file. --web.listen-address=":9115" The address to listen on for HTTP requests. --timeout-offset=0.5 Offset to subtract from timeout in seconds. --config.check If true validate the config file and then exit. --history.limit=100 The maximum amount of items to keep in the history. --web.external-url=<url> The URL under which Blackbox exporter is externally reachable (for example, if Blackbox exporter is served via a reverse proxy). Used for generating relative and absolute links back to Blackbox exporter itself. If the URL has a path portion, it will be used to prefix all HTTP endpoints served by Blackbox exporter. If omitted, relevant URL components will be derived automatically. --web.route-prefix=<path> Prefix for the internal routes of web endpoints. Defaults to path of --web.external-url. --log.level=info Only log messages with the given severity or above. One of: [debug, info, warn, error] --log.format=logfmt Output format of log messages. One of: [logfmt, json] --version Show application version.
Étape 2 : Créer un utilisateur pour Blackbox
Cette étape est optionnelle.
Vous pouvez soit créer un nouvel utilisateur dédié pour exécuter Blackbox, soit utiliser un utilisateur existant comme celui de Prometheus.
N’oubliez pas d’accorder les permissions nécessaires et d’attribuer la propriété des fichiers à l’utilisateur choisi.
sudo useradd -rs /bin/false blackbox sudo chmod -R 777 /home/centos/blackbox_exporter-0.16.0.linux-amd64 sudo chown -R blackbox:blackbox /home/centos/blackbox_exporter-0.16.0.linux-amd64
Étape 3 : Configurer le service Blackbox
Il est temps de configurer Blackbox Exporter en tant que service systemd. Créez un fichier `blackbox.service`, ajoutez-y les informations ci-dessous et sauvegardez-le.
sudo gedit /etc/systemd/system/blackbox.service [Unit] Description=Blackbox Exporter Service Wants=network-online.target After=network-online.target [Service] Type=simple User=blackbox Group=blackbox ExecStart=/home/centos/blackbox_exporter-0.16.0.linux-amd64/blackbox_exporter --config.file==/home/centos/blackbox_exporter-0.16.0.linux-amd64/blackbox.yml [Install] WantedBy=multi-user.target
Assurez-vous de modifier le chemin vers l’emplacement réel où vous avez décompressé les fichiers.
Étape 4 : Démarrer Blackbox Exporter
Exécutez les commandes ci-dessous pour démarrer Blackbox Exporter en tant que service.
sudo systemctl daemon-reload sudo systemctl start blackbox.service sudo systemctl status blackbox.service ● blackbox.service - Blackbox Exporter Service Loaded: loaded (/etc/systemd/system/blackbox.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2020-06-13 17:28:40 EDT; 1s ago Main PID: 30427 (blackbox_export) Tasks: 5 CGroup: /system.slice/blackbox.service └─30427 /usr/local/bin/blackbox_exporter --config.file=/etc/blackbox.yml Jun 13 17:28:40 toptips.fr.linuxvmimages.com systemd[1]: Started Blackbox Exporter Service. Jun 13 17:28:40 toptips.fr.linuxvmimages.com blackbox_exporter[30427]: level=info ts=2020-06-13T21:28:40.283Z caller=main.go:212 msg="Starting b...b9a9)" Jun 13 17:28:40 toptips.fr.linuxvmimages.com blackbox_exporter[30427]: level=info ts=2020-06-13T21:28:40.283Z caller=main.go:213 msg="Build cont...SSING) Jun 13 17:28:40 toptips.fr.linuxvmimages.com blackbox_exporter[30427]: level=info ts=2020-06-13T21:28:40.283Z caller=main.go:225 msg="Loaded config file" Jun 13 17:28:40 toptips.fr.linuxvmimages.com blackbox_exporter[30
Excellent !
Blackbox Exporter est maintenant démarré avec succès. Vous pouvez y accéder via l’adresse http://localhost:9115/.
Intégration de Blackbox avec Prometheus
Passons à l’intégration de Blackbox Exporter avec Prometheus pour commencer à collecter les métriques.
- Ajoutez un job de type `blackbox` avec la configuration ci-dessous dans le fichier `prometheus.yml`. Dans cet exemple, nous allons surveiller les performances de `https://www.telegraph.co.uk`.
sudo gedit /etc/prometheus/prometheus.yml
- job_name: 'blackbox'
metrics_path: /probe
params:
module: [http_2xx] # Vérifie que le code de réponse HTTP est 200.
static_configs:
- targets:
- https://www.telegraph.co.uk
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 127.0.0.1:9115 # L'adresse et le port de Blackbox Exporter.
sudo systemctl restart prometheus.service
- Vérifiez les cibles sur http://localhost:9090/targets. Vous devriez voir un job `blackbox` en fonctionnement avec le point de terminaison défini.
- Cliquez sur « Graph » et entrez la requête : `probe_http_duration_seconds`.

- Un graphique montrant les données collectées par Prometheus sera généré.

Passons maintenant à la visualisation des données de Blackbox dans Grafana.
Une méthode rapide pour commencer consiste à utiliser un tableau de bord préconçu, comme le tableau de bord Prometheus Blackbox Exporter.
- Dans Grafana, cliquez sur le signe `+` puis sur « Importer ».
- Dans la section « Importer via grafana.com », entrez l’identifiant 7587 et cliquez sur « Charger ».
- Choisissez ensuite votre source de données Prometheus et cliquez sur « Importer ».

- Le tableau de bord Prometheus Blackbox Exporter est maintenant importé.
- Vous pouvez observer des métriques comme la durée globale de la sonde, le statut, la durée HTTP, la durée moyenne de la sonde, la recherche DNS moyenne, la date d’expiration SSL, et bien d’autres.

- Chaque métrique est affichée sur un panneau séparé. Examinons le panneau « Durée HTTP » plus en détail. Il affiche les temps nécessaires à la connexion, au traitement de la requête, à la résolution DNS, à la négociation TLS et au transfert des données.

Le tableau de bord offre de nombreuses options d’exploration. Vous pouvez modifier la plage temporelle affichée ou l’intervalle de rafraîchissement des données. Ici, par exemple, les nouvelles données sont mises à jour toutes les 5 secondes.

- Cliquez sur la flèche vers le bas du panneau « Durée HTTP » puis sur « Modifier ».

- L’éditeur de requête apparaît. La requête actuelle pour ce graphique est `probe_http_duration_seconds`.

- Il existe des centaines de requêtes disponibles que vous pouvez visualiser et ajouter à votre tableau de bord.

- Vous pouvez aussi changer le type de visualisation. Par exemple, la durée moyenne de la sonde est affichée sous forme de texte. Changez le type de visualisation pour un graphique de type « Jauge ».

- Et voici le résultat.

Conclusion
Ce guide vous donne une idée de la simplicité avec laquelle vous pouvez suivre les performances de votre site web en utilisant Prometheus Blackbox Exporter et Grafana. Les possibilités sont vastes, n’hésitez pas à expérimenter pour en découvrir toutes les facettes. Si vous êtes intéressé par l’apprentissage de Grafana, consultez ce cours en ligne.
Avez-vous apprécié cet article ? Pourquoi ne pas le partager avec votre entourage ?