Comment surveiller les performances d’un site Web avec Blackbox Exporter et Grafana ?

Vous aimez Grafana pour la surveillance des métriques de serveur ? Vous adorerez également Blackbox Exporter pour la surveillance de sites Web !

Dans ce didacticiel, vous apprendrez à installer Blackbox Exporter sur CentOS/RHEL et comprendrez comment l’utiliser avec Prometheus et Grafana pour surveiller les performances et la disponibilité du site Web.

Qu’est-ce que Blackbox Exporter ?

Exportateur de boîte noire par 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 caractéristique la plus importante de l’exportateur Blackbox.

Blackbox Exporter est une solution auto-hébergée. Si vous recherchez quelque chose de similaire, mais en mode 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 l’exportateur Blackbox

Laissez-moi vous montrer comment installer d’abord l’exportateur Blackbox.

Étape 1 : Téléchargez Blackbox Exporter

Allez à la Page Officielle pour télécharger le dernier package d’exportation Linux AMD Blackbox. Je télécharge le fichier blackbox_exporter-0.16.0.linux-amd64.tar.gz.

  • Transférer le fichier téléchargé sur le serveur
  • Extraire les fichiers du package.
[[email protected] ~]$ tar -xzf blackbox_exporter-0.16.0.linux-amd64.tar.gz

Vérifiez tous les fichiers dans l’exportateur Blackbox.

[[email protected] ~]$ cd blackbox_exporter-0.16.0.linux-amd64/
[[email protected] 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 de terminaison à tester et les modules à exécuter.

La commande ci-dessous vous donnera tous les drapeaux que vous pouvez utiliser avec l’exportateur Blackbox.

[[email protected] blackbox_exporter-0.16.0.linux-amd64]$ ./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

Ceci est facultatif.

Vous pouvez soit créer un nouvel utilisateur pour exécuter Blackbox, soit utiliser des utilisateurs Prometheus existants pour l’exécuter.

Fournissez des autorisations et attribuez la propriété de tous ses fichiers au nouvel utilisateur.

[[email protected] ~]$ sudo useradd -rs /bin/false blackbox
[[email protected] ~]$ sudo chmod -R 777 /home/centos/blackbox_exporter-0.16.0.linux-amd64
[[email protected] ~]$ 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 enregistrez-le.

[[email protected] ~]$ 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

N’oubliez pas de changer le chemin vers le chemin réel où vous l’avez extrait.

Étape 4 : Démarrez Blackbox Exporter

Exécutez les commandes ci-dessous pour démarrer l’exportateur Blackbox en tant que service.

[[email protected] ~]$ sudo systemctl daemon-reload
[[email protected] ~]$ sudo systemctl start blackbox.service
[[email protected] ~]$ 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

Super!

L’exportateur Blackbox a démarré avec succès. Sur http://localhost:9115/, vous pouvez trouver Blackbox Exporter en cours d’exécution.

Intégration de Blackbox avec Prometheus

Intégrons Blackbox Exporter à Prometheus pour commencer à gratter les métriques.

  • Ajoutez un travail de boîte noire avec les configurations ci-dessous dans le fichier prometheus.yml. Je vais surveiller les performances de https://www.telegraph.co.uk.
[[email protected] ~]$ sudo gedit /etc/prometheus/prometheus.yml

- job_name: 'blackbox'
metrics_path: /probe
params:
module: [http_2xx] # Look for a HTTP 200 response.
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 # The blackbox exporter's real hostname:port.
[[email protected] ~]$ sudo systemctl restart prometheus.service
  • Lorsque vous vérifiez à nouveau les cibles sur http://localhost:9090/targets, vous trouverez un travail de boîte noire 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 existe de nombreuses façons de démarrer, mais l’une des plus rapides serait de commencer avec un tableau de bord prêt à l’emploi – Exportateur Prometheus Blackbox.

  • Accédez au tableau de bord Grafana, cliquez sur le signe + et cliquez sur Importer.
  • Dans Importer via grafana.com, mettez l’identifiant du tableau de bord 7587 et cliquez sur Charger.
  • Sélectionnez ensuite la source de données Prometheus et cliquez sur Importer.

  • Le tableau de bord Prometheus Blackbox Exporter sera importé.
  • Vous pourrez visualiser des métriques 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.

  • Ce sont tous des panneaux séparés sur le tableau de bord. Permettez-moi de vous montrer le panneau Durée HTTP en détail. Ce panneau affiche la visualisation de la durée nécessaire à la connexion, au traitement, à la résolution, au tls et aux demandes de transfert.

Il y a beaucoup d’options sur le tableau de bord avec lesquelles vous pouvez jouer. Vous pouvez modifier la plage de temps pour laquelle vous souhaitez que la visualisation apparaisse. Vous pouvez également modifier l’intervalle de temps dans l’actualisation 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 de la durée HTTP, 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 affiché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 selon les besoins.

  • Vous disposez également de nombreuses options pour modifier le type de visualisation. La durée moyenne de la sonde est présente sur le tableau de bord au format texte. Dans le panneau de visualisation à droite, cliquez sur l’option Jauge pour la durée moyenne de la sonde.

  • Et c’est ainsi que 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 suggérerais fortement de jouer avec pour en faire l’expérience. Si vous êtes curieux d’apprendre Grafana, alors consultez son Cours en ligne.

Vous avez apprécié la lecture de l’article ? Que diriez-vous de partager avec le monde ?