Prometheus: Blackbox Exporter

Comment utiliser Prometheus Blackbox Exporter pour sonder les endpoints HTTP et ICMP (ping)

👋 Bienvenue sur la documentation de Stackhero !

Stackhero propose une solution Prometheus cloud prête à l'emploi qui offre de nombreux avantages, notamment :

  • Alert Manager inclus pour envoyer des alertes à Slack, Mattermost, PagerDuty, etc.
  • Serveur d'email dédié pour envoyer des alertes email illimitées.
  • Blackbox pour sonder HTTP, ICMP, TCP, et plus encore.
  • Configuration facile avec un éditeur de fichier de configuration en ligne.
  • Mises à jour sans effort en un clic.
  • Performance optimale et sécurité robuste grâce à une VM privée et dédiée.

Gagnez du temps et simplifiez-vous la vie : il suffit de 5 minutes pour essayer la solution Prometheus cloud hosting de Stackhero !

Le Prometheus Blackbox Exporter est un outil puissant qui vous permet de sonder des endpoints en utilisant divers protocoles, y compris HTTP, HTTPS, DNS, TCP et ICMP. Cette flexibilité permet une surveillance complète des différents aspects de votre infrastructure et de vos services.

Par exemple, lors du sondage des endpoints HTTP et HTTPS, vous pouvez :

  • Vérifier la disponibilité d'un site web en contrôlant un code de statut HTTP 2xx.
  • Assurer que du contenu spécifique est retourné, comme faire correspondre un titre de page web au texte attendu.
  • Valider les certificats TLS en récupérant leurs dates d'expiration, vous aidant à prévenir des problèmes de renouvellement inattendus.
  • Mesurer la performance en évaluant les temps de résolution DNS et la durée de la poignée de main TLS.

En utilisant ICMP, vous pouvez confirmer que les serveurs répondent aux requêtes ping et mesurer leurs temps de réponse. De plus, le sondage DNS fournit des informations sur les temps de réponse, tandis que le sondage TCP vous permet de vous connecter à un service pour vérifier le contenu et la version d'une bannière de serveur SSH.

Vue d'ensemble de Stackhero pour PrometheusVue d'ensemble de Stackhero pour Prometheus

La mise en place du Blackbox Exporter implique de travailler avec deux fichiers clés : blackbox-exporter.yml pour les paramètres de base et prometheus.yml pour définir comment Prometheus extrait les données de l'exporter.

La configuration de base, trouvée dans le fichier blackbox-exporter.yml, spécifie quels protocoles prendre en charge et comment ils doivent être surveillés.

Sur Stackhero pour Prometheus, ce fichier est préconfiguré pour prendre en charge à la fois la surveillance ICMP et la surveillance HTTP/HTTPS (via les requêtes GET et POST) dès le départ. Si vous avez besoin d'adapter ce fichier pour des scénarios plus avancés, vous pouvez consulter des exemples de configuration dans le répertoire Blackbox Exporter et consulter la documentation officielle pour plus de conseils.

La plupart de votre configuration se fera dans le fichier prometheus.yml, où vous instruisez Prometheus pour extraire des données de Blackbox Exporter comme tout autre exporter.

Par exemple, considérez la configuration ci-dessous qui vérifie les réponses ICMP (ping) de prometheus.io et grafana.com toutes les 15 secondes (comme 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 même, la configuration ci-dessous surveille les serveurs HTTP. Dans cette configuration, si le statut de réponse HTTP n'est pas dans la plage 2xx, la cible est signalée comme erronée. 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 que vous souhaitez 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 tâches de scraping configurées, vous pouvez consulter les journaux de débogage dans l'interface Blackbox. Le lien vers l'interface est disponible sur votre tableau de bord Stackhero, offrant des informations précieuses sur les résultats des sondages.

Interface Blackbox montrant les résultats des derniers sondagesInterface Blackbox montrant les résultats des derniers sondages

Grafana facilite la création de tableaux de bord qui visualisent les métriques de performance et de disponibilité collectées par le Blackbox Exporter. En quelques clics, vous pouvez configurer des tableaux de bord dynamiques qui donnent vie à vos données Prometheus. Pour plus de détails sur l'intégration de Grafana avec Prometheus, vous pouvez explorer la documentation de Grafana.

Exemple de tableau de bord généré par Grafana, basé sur les données de Prometheus Blackbox ExporterExemple de tableau de bord généré par Grafana, basé sur les données de Prometheus Blackbox Exporter