Vous aimez Grafana pour la surveillance des métriques des serveurs ? Vous allez aussi adorer Blackbox Exporter pour la surveillance des sites web !
Dans ce tutoriel, vous apprendrez à installer Blackbox Exporter sur CentOS/RHEL et à comprendre comment l’utiliser avec Prometheus et Grafana pour surveiller les performances et le temps de fonctionnement des sites web.
BlackboxExporter de Prometheus est utilisé pour sonder des points de terminaison tels que HTTPS, HTTP, TCP, DNS et ICMP. Après avoir défini le point de terminaison, l’exportateur Blackbox génère des centaines de métriques qui peuvent être visualisées à l’aide de Grafana. La mesure du temps de réponse est la fonctionnalité la plus importante de l’exportateur Blackbox.
Blackbox Exporter est une solution auto-hébergée. Si vous cherchez quelque chose de similaire, mais en tant que SaaS ou basé sur le cloud, vous pouvez essayer Grafana worldPing.
Conditions préalables
Prometheus et Grafana doivent être préinstallés. Suivez cet article pour installer Prometheus et Grafana.
Installation de Blackbox Exporter
Laissez-moi d’abord vous montrer comment installer Blackbox exporter.
Étape 1 : Téléchargez Blackbox Exporter
Allez sur la page officielle pour télécharger le dernier paquetage Linux AMD Blackbox exporter. Je télécharge le fichier blackbox_exporter-0.16.0.linux-amd64.tar.gz
.
- Transférez le fichier téléchargé sur le serveur
- Extrayez les fichiers du paquet.
[centos@geekflare ~]$ tar -xzf blackbox_exporter-0.16.0.linux-amd64.tar.gz
Vérifiez tous les fichiers contenus dans Blackbox exporter.
[centos@geekflare ~]$ cd blackbox_exporter-0.16.0.linux-amd64/
[centos@geekflare 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
Deux fichiers blackbox_exporter
et blackbox.yml
sont importants ici.
- blackbox_exporter : Il s’agit d’un fichier exécutable permettant d’exécuter le service.
- blackbox.yml : Un fichier YAML avec toutes les configurations de l’exportateur backbox dans lequel vous définissez tous les points d’extrémité à sonder et les modules à exécuter.
La commande ci-dessous vous donnera tous les drapeaux que vous pouvez utiliser avec Blackbox exporter.
[centos@geekflare blackbox_exporter-0.16.0.linux-amd64]$ ./blackbox_exporter -h
utilisation : blackbox_exporter [<flags>]
Drapeaux :
-h, --help Affiche l'aide contextuelle (essayez aussi --help-long et --help-man).
--config.file="blackbox.yml"
Fichier de configuration de l'exportateur Blackbox.
--web.listen-address=":9115"
Adresse d'écoute des requêtes HTTP.
--timeout-offset=0.5 Décalage à soustraire du timeout en secondes.
--config.check Si vrai, validez le fichier de configuration et quittez.
--history.limit=100 Le nombre maximum d'éléments à conserver dans l'historique.
--web.external-url=<url>
L'URL sous laquelle Blackbox exporter est accessible de l'extérieur (par exemple, si Blackbox exporter est servi via un reverse proxy
). Elle est utilisée pour générer des liens relatifs et absolus vers l'exportateur Blackbox lui-même. Si l'URL comporte une partie de chemin
, elle sera utilisée pour préfixer tous les points d'extrémité HTTP desservis par Blackbox exporter. S'il est omis, les composants pertinents de l'URL
seront dérivés automatiquement.
--web.route-prefix=<path>
Préfixe pour les itinéraires internes des points d'extrémité Web. La valeur par défaut est le chemin de --web.external-url.
--log.level=info Ne consigne que les messages dont le niveau de gravité est supérieur ou égal au niveau indiqué. Un des éléments suivants : [debug, info, warn, error]
--log.format=logfmt Format de sortie des messages de log. L'un des formats suivants : [logfmt, json]
--version Affiche la version de l'application.
Étape 2 : Créer un utilisateur pour la Blackbox
Cette étape est facultative.
Vous pouvez soit créer un nouvel utilisateur pour exécuter Blackbox, soit utiliser des utilisateurs Prometheus existants pour l’exécuter.
Fournissez les permissions et attribuez la propriété de tous les fichiers au nouvel utilisateur.
[centos@geekflare ~]$ sudo useradd -rs /bin/false blackbox
[centos@geekflare ~]$ sudo chmod -R 777 /home/centos/blackbox_exporter-0.16.0.linux-amd64
[centos@geekflare ~]$ 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 dans systemd. Créez un fichier blackbox.service
et mettez les lignes mentionnées ci-dessous dans le fichier et sauvegardez-le.
[centos@geekflare ~]$ sudo gedit /etc/systemd/system/blackbox.service
[Unit]
Description=Service Blackbox Exporter
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
N’oubliez pas de changer le chemin d’accès à l’endroit où vous l’avez extrait.
Étape 4 : Démarrer Blackbox Exporter
Exécutez les commandes ci-dessous pour démarrer l’exportateur Blackbox en tant que service.
[centos@geekflare ~]$ sudo systemctl daemon-reload
[centos@geekflare ~]$ sudo systemctl start blackbox.service
[centos@geekflare ~]$ sudo systemctl status blackbox.service
● blackbox.service - Service Blackbox Exporter
Loaded : chargé (/etc/systemd/system/blackbox.service ; activé ; vendor preset : désactivé)
Active : actif (en cours d'exécution) depuis 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 geekflare.linuxvmimages.com systemd[1] : Started Blackbox Exporter Service.
Jun 13 17:28:40 geekflare.linuxvmimages.com blackbox_exporter[30427] : level=info ts=20-06-13T21:28:40.283Z caller=main.go:212 msg="Starting b...b9a9)"
Jun 13 17:28:40 geekflare.linuxvmimages.com blackbox_exporter[30427] : level=info ts=20-06-13T21:28:40.283Z caller=main.go:213 msg="Build cont...SSING)
Jun 13 17:28:40 geekflare.linuxvmimages.com blackbox_exporter[30427] : level=info ts=20-06-13T21:28:40.283Z caller=main.go:225 msg="Fichier de configuration chargé"
Jun 13 17:28:40 geekflare.linuxvmimages.com blackbox_exporter[30
Très bien !
Blackbox exporter a démarré avec succès. À l’adresse http://localhost:9115/, vous trouverez Blackbox Exporter en cours d’exécution.

Intégration de Blackbox à Prometheus
Intégrons Blackbox Exporter à Prometheus pour commencer à récupérer les métriques.
- Ajoutez un job blackbox avec les configurations ci-dessous dans le fichier prometheus.yml. Je vais surveiller les performances de https://www.telegraph.co.uk.
[centos@geekflare ~]$ sudo gedit /etc/prometheus/prometheus.yml
- job_name : 'blackbox'
metrics_path : /probe
params :
module : [http_2xx] # Recherche une réponse HTTP 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__
remplacement : 127.0.0.1:9115 # Le vrai nom d'hôte:port de l'exportateur de la boîte noire.
- Redémarrez Prometheus.
[centos@geekflare ~]$ sudo systemctl restart prometheus.service
- Lorsque vous vérifiez à nouveau les cibles sur http://localhost:9090/targets, vous trouverez un travail blackbox en cours d’exécution avec le point de terminaison que j’ai défini.

- Cliquez sur le graphique et exécutez la requête – probe_http_duration_seconds.

- Une visualisation sera créée sur les données surveillées par Prometheus.

Il est maintenant temps de visualiser le travail Blackbox sur Grafana.
Il y a plusieurs façons de commencer, mais l’une des plus rapides serait de commencer avec un tableau de bord prêt à l’emploi – Prometheus Blackbox Exporter.
- Allez sur le tableau de bord Grafana, cliquez sur sign et cliquez sur Import.
- Dans Import via grafana.com, mettez l’identifiant du tableau de bord 7587 et cliquez sur Load.
- Sélectionnez ensuite la source de données Prometheus et cliquez sur Import.

- Le tableau de bord Prometheus Blackbox Exporter sera importé.
- Vous serez en mesure de visualiser des mesures telles que la durée globale de la sonde, le statut, la durée HTTP, la durée moyenne de la sonde, la recherche DNS moyenne, l’expiration SSL, et bien d’autres encore.


- Il s’agit de panneaux distincts sur le tableau de bord. Laissez-moi vous montrer le panneau Durée HTTP en détail. Ce panneau affiche la visualisation de la durée de connexion, de traitement, de résolution, de tls et de transfert des requêtes.

Le tableau de bord comporte de nombreuses options avec lesquelles vous pouvez jouer. Vous pouvez modifier l’intervalle de temps pour lequel vous souhaitez que la visualisation apparaisse. Vous pouvez également modifier l’intervalle de temps dans le rafraîchissement des données ; ici, les nouvelles données arrivent dans le tableau de bord toutes les 5 secondes.

- Lorsque vous cliquez sur la flèche vers le bas HTTP Duration, vous obtenez les options ci-dessous. Cliquez sur modifier.

- Sous le panneau de visualisation, vous obtiendrez un éditeur de requête. Actuellement, la requête montrée dans l’instantané ci-dessous est visualisée – probe_http_duration_seconds.

- Il existe des centaines de requêtes que vous pouvez facilement visualiser et ajouter à votre tableau de bord en fonction de vos besoins.

- Vous disposez également de nombreuses options pour modifier le type de visualisation. La durée moyenne de la sonde est affichée dans le tableau de bord sous forme de texte. Dans le panneau de visualisation à droite, cliquez sur l’option Guage pour la durée moyenne de la sonde.

- Voilà comment la visualisation va changer.

Conclusion
Ce qui précède est juste pour vous donner une idée de la facilité avec laquelle il est possible de surveiller le site Web avec Prometheus Blackbox et Grafana. Il y a beaucoup d’options, et je vous suggère fortement de jouer avec pour en faire l’expérience. Si vous êtes curieux d’apprendre Grafana, consultez son cours en ligne.
-
Avi est un passionné de technologie avec une expertise dans les technologies en vogue telles que DevOps, Cloud Computing, Big Data et bien d'autres. Il est passionné par l'apprentissage des technologies de pointe et le partage de ses connaissances avec d'autres... en savoir plus