Prometheus: Blackbox Exporter
Comment utiliser Prometheus Blackbox Exporter pour sonder des endpoints HTTP et ICMP (ping)
👋 Bienvenue sur la documentation de Stackhero !
Stackhero propose une plateforme Prometheus cloud entièrement managée, pensée pour la fiabilité et la simplicité :
Alert Managerest intégré, ce qui vous permet d'envoyer vos alertes directement versSlack,Mattermost,PagerDutyet d'autres destinations populaires.- Un serveur d'e-mail dédié vous permet d'envoyer un nombre illimité d'alertes par e-mail sans configuration supplémentaire.
Blackboxest inclus, pour sonder les protocolesHTTP,ICMP,TCPet bien d'autres, afin d'assurer une supervision complète.- Configurez rapidement votre instance grâce à l'éditeur de fichier de configuration en ligne. Il n'est pas nécessaire de gérer le YAML manuellement.
- Appliquez les mises à jour en un clic. Stackhero s'occupe du processus de mise à niveau pour vous, en limitant les interruptions et les interventions manuelles.
- Performances élevées et sécurité renforcée sont intégrées, grâce à votre propre infrastructure privée et dédiée.
Soyez opérationnel en environ 5 minutes. Stackhero prend en charge l'installation pour que vous puissiez vous concentrer sur la supervision, pas sur la maintenance. Essayez l'hébergement Prometheus cloud sur Stackhero pour simplifier vos workflows de monitoring et d'alerting.
Introduction à Prometheus Blackbox Exporter
Le Prometheus Blackbox Exporter est un outil puissant qui vous permet de sonder des endpoints via différents protocoles, notamment HTTP, HTTPS, DNS, TCP et ICMP. Cette flexibilité offre une surveillance complète de divers aspects de votre infrastructure et de vos services.
Par exemple, lors du sondage de endpoints HTTP et HTTPS, vous pouvez :
- Vérifier la disponibilité d'un site web en contrôlant le code HTTP 2xx.
- S'assurer que du contenu spécifique est retourné, comme la correspondance du titre d'une page avec le texte attendu.
- Valider les certificats TLS en récupérant leur date d'expiration, ce qui vous aide à anticiper les renouvellements.
- Mesurer les performances en évaluant le temps de résolution DNS et la durée du handshake TLS.
Avec ICMP, vous pouvez vérifier que les serveurs répondent aux requêtes ping et mesurer leur temps de réponse. De plus, le sondage DNS fournit des informations sur les temps de réponse, tandis que le sondage TCP permet de se connecter à un service pour vérifier le contenu et la version de la bannière d'un serveur SSH.
Vue d'ensemble de Stackhero for Prometheus
Configuration de Prometheus Blackbox Exporter
La mise en place du Blackbox Exporter nécessite de travailler avec deux fichiers principaux : blackbox-exporter.yml pour les paramètres de base et prometheus.yml pour définir comment Prometheus collecte les données auprès de l'exporter.
Configuration du cœur de Blackbox Exporter
La configuration principale, située dans le fichier blackbox-exporter.yml, précise quels protocoles sont pris en charge et comment ils doivent être surveillés.
Sur Stackhero for Prometheus, ce fichier est préconfiguré pour prendre en charge la surveillance ICMP ainsi que la surveillance HTTP/HTTPS (via les requêtes GET et POST) dès le départ. Si vous souhaitez adapter ce fichier à des scénarios plus avancés, vous pouvez consulter des exemples de configuration dans le dépôt Blackbox Exporter et vous référer à la documentation officielle pour plus d'informations.
Configuration de la cible Prometheus Blackbox Exporter
L'essentiel de votre configuration se fera dans le fichier prometheus.yml, où vous indiquez à Prometheus de collecter les données du Blackbox Exporter comme pour tout autre exporter.
Par exemple, la configuration ci-dessous vérifie les réponses ICMP (ping) de prometheus.io et grafana.com toutes les 15 secondes (défini par le scrape_interval). Vous pouvez ajouter ce bloc à votre fichier prometheus.yml dans la section scrape_configs et mettre à jour le tableau targets avec les noms de domaine ou adresses IP que vous souhaitez surveiller :
- job_name: "blackbox-icmp"
metrics_path: "/blackbox-exporter/probe"
params:
module: [ "icmp" ]
relabel_configs:
- source_labels: [ "__address__" ]
target_label: "__param_target"
- source_labels: [ "__param_target" ]
target_label: "instance"
- target_label: "__address__"
replacement: "prometheus-blackbox-exporter:9115"
static_configs:
- targets: [ "prometheus.io", "grafana.com" ]
De la même façon, la configuration suivante permet de surveiller des serveurs HTTP. Dans ce cas, si le code de réponse HTTP n'est pas dans la plage 2xx, la cible est considérée comme en erreur. Vous pouvez insérer ce bloc dans votre fichier prometheus.yml sous la section scrape_configs et mettre à jour le tableau targets avec les URLs à surveiller :
- job_name: "blackbox-http"
metrics_path: "/blackbox-exporter/probe"
params:
module: [ "http_2xx" ]
relabel_configs:
- source_labels: [ "__address__" ]
target_label: "__param_target"
- source_labels: [ "__param_target" ]
target_label: "instance"
- target_label: "__address__"
replacement: "prometheus-blackbox-exporter:9115"
static_configs:
- targets: [ "https://prometheus.io/", "https://grafana.com/" ]
Une fois vos jobs de collecte configurés, vous pouvez consulter les logs de debug dans la Blackbox UI. Le lien vers l'interface est disponible sur votre tableau de bord Stackhero et vous donne un aperçu détaillé des résultats des sondes.
Blackbox UI affichant les résultats des derniers scrapes
Configuration de Grafana pour afficher les données Prometheus issues du Blackbox Exporter
Grafana facilite la création de dashboards pour visualiser les métriques de performance et de disponibilité collectées par le Blackbox Exporter. En quelques clics, vous pouvez mettre en place des dashboards dynamiques qui valorisent vos données Prometheus. Pour plus d'informations sur l'intégration de Grafana avec Prometheus, vous pouvez consulter la documentation de Grafana.
Exemple de dashboard généré par Grafana, basé sur les données de Prometheus Blackbox Exporter