Prometheus: Blackbox Exporter

Wie man den Prometheus Blackbox Exporter verwendet, um HTTP- und ICMP (Ping)-Endpunkte zu prüfen

👋 Willkommen in der Stackhero-Dokumentation!

Stackhero bietet eine einsatzbereite Prometheus Cloud-Lösung, die zahlreiche Vorteile bietet, darunter:

  • Alert Manager inklusive, um Warnungen an Slack, Mattermost, PagerDuty usw. zu senden.
  • Dedizierter E-Mail-Server zum Versenden von unbegrenzten E-Mail-Warnungen.
  • Blackbox zur Überprüfung von HTTP, ICMP, TCP und mehr.
  • Einfache Konfiguration mit Online-Konfigurationsdatei-Editor.
  • Mühelose Updates mit nur einem Klick.
  • Optimale Leistung und robuste Sicherheit durch eine private und dedizierte VM.

Sparen Sie Zeit und vereinfachen Sie Ihr Leben: Es dauert nur 5 Minuten, um die Prometheus Cloud Hosting-Lösung von Stackhero auszuprobieren!

Der Prometheus Blackbox Exporter ist ein leistungsstarkes Tool, das es Ihnen ermöglicht, Endpunkte mit verschiedenen Protokollen zu prüfen, darunter HTTP, HTTPS, DNS, TCP und ICMP. Diese Flexibilität ermöglicht eine umfassende Überwachung verschiedener Aspekte Ihrer Infrastruktur und Dienste.

Zum Beispiel können Sie beim Prüfen von HTTP- und HTTPS-Endpunkten:

  • Die Verfügbarkeit einer Website überprüfen, indem Sie nach einem 2xx-HTTP-Statuscode suchen.
  • Sicherstellen, dass spezifische Inhalte zurückgegeben werden, wie z.B. das Abgleichen eines Webseitentitels mit dem erwarteten Text.
  • TLS-Zertifikate validieren, indem Sie deren Ablaufdaten abrufen, um unerwartete Erneuerungsprobleme zu vermeiden.
  • Die Leistung messen, indem Sie DNS-Auflösungszeiten und die Dauer des TLS-Handshakes bewerten.

Mit ICMP können Sie bestätigen, dass Server auf Ping-Anfragen antworten und deren Antwortzeiten messen. Zusätzlich bietet DNS-Prüfung Einblicke in Antwortzeiten, während TCP-Prüfung es Ihnen ermöglicht, sich mit einem Dienst zu verbinden, um den Inhalt und die Version eines SSH-Server-Banners zu überprüfen.

Großes Bild von Stackhero für PrometheusGroßes Bild von Stackhero für Prometheus

Das Einrichten des Blackbox Exporters erfordert die Arbeit mit zwei wichtigen Dateien: blackbox-exporter.yml für die Grundeinstellungen und prometheus.yml, um zu definieren, wie Prometheus Daten vom Exporter abruft.

Die Kernkonfiguration, die in der Datei blackbox-exporter.yml zu finden ist, gibt an, welche Protokolle unterstützt werden sollen und wie sie überwacht werden sollen.

Auf Stackhero für Prometheus ist diese Datei vorkonfiguriert, um sowohl ICMP-Überwachung als auch HTTP/HTTPS-Überwachung (über GET- und POST-Anfragen) direkt zu unterstützen. Wenn Sie diese Datei für fortgeschrittenere Szenarien anpassen müssen, können Sie sich Konfigurationsbeispiele im Blackbox Exporter-Repository ansehen und die offizielle Dokumentation für weitere Anleitungen konsultieren.

Der Großteil Ihrer Konfiguration erfolgt in der Datei prometheus.yml, in der Sie Prometheus anweisen, Daten vom Blackbox Exporter wie von jedem anderen Exporter abzurufen.

Betrachten Sie zum Beispiel die folgende Konfiguration, die ICMP (Ping)-Antworten von prometheus.io und grafana.com alle 15 Sekunden überprüft (wie durch das scrape_interval definiert). Sie können diesen Block in Ihre prometheus.yml-Datei innerhalb des Abschnitts scrape_configs einfügen und das targets-Array mit den Domainnamen oder IP-Adressen aktualisieren, die Sie überwachen möchten:

  - 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" ]

Ähnlich überwacht die folgende Konfiguration HTTP-Server. In dieser Konfiguration wird das Ziel als fehlerhaft markiert, wenn der HTTP-Antwortstatus nicht im 2xx-Bereich liegt. Sie können diesen Block in Ihre prometheus.yml-Datei unter dem Abschnitt scrape_configs einfügen und das targets-Array mit den URLs aktualisieren, die Sie überwachen möchten:

  - 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/" ]

Sobald Ihre Scrape-Jobs konfiguriert sind, können Sie Debug-Protokolle in der Blackbox-UI überprüfen. Der Link zur UI ist auf Ihrem Stackhero-Dashboard verfügbar und bietet wertvolle Einblicke in die Prüfergebnisse.

Blackbox-UI zeigt die Ergebnisse der letzten ScrapesBlackbox-UI zeigt die Ergebnisse der letzten Scrapes

Grafana erleichtert die Erstellung von Dashboards, die die von Blackbox Exporter gesammelten Leistungs- und Verfügbarkeitsmetriken visualisieren. Mit nur wenigen Klicks können Sie dynamische Dashboards einrichten, die Ihre Prometheus-Daten zum Leben erwecken. Für weitere Details zur Integration von Grafana mit Prometheus können Sie die Grafana-Dokumentation erkunden.

Beispiel eines Dashboards, das von Grafana basierend auf Prometheus Blackbox Exporter-Daten generiert wurdeBeispiel eines Dashboards, das von Grafana basierend auf Prometheus Blackbox Exporter-Daten generiert wurde