Geekflare est soutenu par son public. Nous pouvons percevoir des commissions d'affiliation sur les liens d'achat présents sur ce site.
En Développement Dernière mise à jour : 25 septembre 2023
Partager sur :
Invicti Web Application Security Scanner - la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

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.

Qu’est-ce que Blackbox Exporter ?

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.

blackbox exporter - geekflare

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.
blackbox job target - geekflare
  • Cliquez sur le graphique et exécutez la requête – probe_http_duration_seconds.
prometheus query - geekflare
  • Une visualisation sera créée sur les données surveillées par Prometheus.
prometheus visualization - geekflare

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.
grafana import - geekflare
  • 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.
grafana dashboard - geekflare
grafana dashboard 1 - geekflare
  • 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.
HTTP Duration

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.

time range
  • Lorsque vous cliquez sur la flèche vers le bas HTTP Duration, vous obtenez les options ci-dessous. Cliquez sur modifier.
panel edit
  • 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.
query editor
  • Il existe des centaines de requêtes que vous pouvez facilement visualiser et ajouter à votre tableau de bord en fonction de vos besoins.
metrics
  • 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.
avg probe duration
  • Voilà comment la visualisation va changer.
avg probe duration guage

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
    Auteur
    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
Merci à nos sponsors
D'autres lectures intéressantes sur le développement
Alimentez votre entreprise
Quelques outils et services pour aider votre entreprise à se développer.
  • Invicti utilise le Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, search engine crawler, et tout ce dont vous avez besoin pour collecter des données web.
    Essayez Brightdata
  • Monday.com est un système d'exploitation tout-en-un qui vous aide à gérer vos projets, vos tâches, votre travail, vos ventes, votre CRM, vos opérations, vos flux de travail et bien plus encore.
    Essayez le lundi
  • Intruder est un scanner de vulnérabilité en ligne qui détecte les faiblesses de votre infrastructure en matière de cybersécurité, afin d'éviter des violations de données coûteuses.
    Essayer l'intrus