Wie überwacht man die Website-Performance mit Blackbox Exporter und Grafana?

Sind Sie ein Fan von Grafana zur Überwachung von Servermetriken? Dann wird Ihnen der Blackbox Exporter für die Webseitenüberwachung bestimmt auch gefallen!

Dieses Tutorial zeigt Ihnen, wie Sie den Blackbox Exporter unter CentOS/RHEL installieren und wie Sie ihn in Verbindung mit Prometheus und Grafana nutzen können, um die Leistung und Verfügbarkeit Ihrer Webseiten im Blick zu behalten.

Was ist der Blackbox Exporter?

Der Blackbox Exporter von Prometheus dient der Überprüfung verschiedener Endpunkte wie HTTPS, HTTP, TCP, DNS und ICMP. Nach der Definition des Endpunkts generiert der Blackbox Exporter eine Vielzahl an Metriken, die in Grafana visualisiert werden können. Die Messung der Antwortzeit ist dabei eine seiner Hauptfunktionen.

Der Blackbox Exporter ist eine selbst gehostete Lösung. Wenn Sie jedoch eine ähnliche Lösung als SaaS oder Cloud-basiert bevorzugen, könnten Sie Grafana worldPing in Erwägung ziehen.

Voraussetzungen

Für die folgenden Schritte müssen Prometheus und Grafana bereits installiert sein. Eine Anleitung zur Installation finden Sie in diesem Artikel: Link zum Artikel.

Installation des Blackbox Exporters

Hier erfahren Sie, wie Sie den Blackbox Exporter installieren.

Schritt 1: Blackbox Exporter herunterladen

Besuchen Sie die offizielle Downloadseite, um das aktuellste Linux AMD Blackbox Exporter-Paket herunterzuladen. In diesem Beispiel wird die Datei blackbox_exporter-0.16.0.linux-amd64.tar.gz verwendet.

  • Übertragen Sie die heruntergeladene Datei auf Ihren Server.
  • Entpacken Sie die Dateien aus dem Paket.
    
    tar -xzf blackbox_exporter-0.16.0.linux-amd64.tar.gz
    
  

Überprüfen Sie nun die Dateien innerhalb des Blackbox Exporter-Ordners.

    
    cd 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
    
  

Die Dateien blackbox_exporter und blackbox.yml sind hier von besonderer Bedeutung.

  • blackbox_exporter: Dies ist die ausführbare Datei, mit der der Dienst gestartet wird.
  • blackbox.yml: Diese YAML-Datei enthält die Konfigurationen des Blackbox Exporters, in der Sie die zu prüfenden Endpunkte und auszuführenden Module definieren.

Mit dem folgenden Befehl können Sie alle Flags anzeigen, die Sie mit dem Blackbox Exporter verwenden können.

        
    ./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.
        
    

Schritt 2: Benutzer für Blackbox erstellen

Dieser Schritt ist optional.

Sie können einen neuen Benutzer für den Blackbox Exporter erstellen oder den bereits vorhandenen Prometheus-Benutzer verwenden.

Vergeben Sie die notwendigen Berechtigungen und weisen Sie dem neuen Benutzer das Eigentum an allen Dateien zu.

        
    sudo useradd -rs /bin/false blackbox
    sudo chmod -R 777 /home/centos/blackbox_exporter-0.16.0.linux-amd64
    sudo chown -R blackbox:blackbox /home/centos/blackbox_exporter-0.16.0.linux-amd64
        
    

Schritt 3: Blackbox-Dienst konfigurieren

Jetzt konfigurieren wir den Blackbox Exporter als Dienst unter systemd. Erstellen Sie eine Datei namens blackbox.service und fügen Sie die folgenden Zeilen ein. Speichern Sie die Datei anschließend.

            
    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
            
        

Denken Sie daran, den Pfad an den tatsächlichen Speicherort anzupassen, an dem Sie den Blackbox Exporter entpackt haben.

Schritt 4: Blackbox Exporter starten

Führen Sie die folgenden Befehle aus, um den Blackbox Exporter als Dienst zu starten.

                
    sudo systemctl daemon-reload
    sudo systemctl start blackbox.service
    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 wdzwdz.linuxvmimages.com systemd[1]: Started Blackbox Exporter Service.
    Jun 13 17:28:40 wdzwdz.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 wdzwdz.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 wdzwdz.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 wdzwdz.linuxvmimages.com blackbox_exporter[30
                
            

Perfekt!

Der Blackbox Exporter ist nun erfolgreich gestartet. Sie finden ihn unter https://localhost:9115/.

Integration von Blackbox in Prometheus

Lassen Sie uns den Blackbox Exporter in Prometheus integrieren, um mit dem Erfassen der Metriken zu beginnen.

  • Fügen Sie in der Datei prometheus.yml einen Blackbox-Job mit den folgenden Konfigurationen hinzu. In diesem Beispiel überwachen wir die Leistung von https://www.telegraph.co.uk.
    
    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.
    
  
    
    sudo systemctl restart prometheus.service
    
  
  • Wenn Sie die Ziele unter https://localhost:9090/targets erneut überprüfen, finden Sie dort einen Blackbox-Job, der mit dem von Ihnen definierten Endpunkt ausgeführt wird.
  • Klicken Sie auf „Graph“ und führen Sie die Abfrage probe_http_duration_seconds aus.
  • Nun wird eine Visualisierung der von Prometheus erfassten Daten erstellt.

Als nächstes visualisieren wir den Blackbox-Job in Grafana.

Es gibt verschiedene Möglichkeiten, hier anzufangen. Eine der schnellsten Methoden ist die Verwendung eines vorgefertigten Dashboards – Prometheus Blackbox Exporter.

  • Gehen Sie zum Grafana Dashboard, klicken Sie auf das „+“-Symbol und anschließend auf „Importieren“.
  • Geben Sie unter „Import via grafana.com“ die Dashboard ID 7587 ein und klicken Sie auf „Load“.
  • Wählen Sie dann Ihre Prometheus Datenquelle aus und klicken Sie auf „Importieren“.

  • Das Prometheus Blackbox Exporter Dashboard wird nun importiert.
  • Sie können jetzt Metriken wie globale Sondendauer, Status, HTTP-Dauer, durchschnittliche Sondendauer, durchschnittliche DNS-Suche, SSL-Ablauf und vieles mehr visualisieren.

  • Dies sind alles einzelne Panels im Dashboard. Betrachten wir das „HTTP Duration“-Panel im Detail. Dieses Panel visualisiert die Zeit, die für Verbindungsaufbau, Verarbeitung, Auflösung, TLS-Verbindungen und Übertragungsanforderungen benötigt wird.

Es gibt viele Optionen im Dashboard, mit denen Sie experimentieren können. Sie können den Zeitraum ändern, für den die Visualisierung angezeigt werden soll. Sie können auch das Zeitintervall für die Datenaktualisierung verändern. In diesem Beispiel kommen alle 5 Sekunden neue Daten ins Dashboard.

  • Klicken Sie auf den Abwärtspfeil des „HTTP Duration“-Panels, um die unten gezeigten Optionen zu sehen. Klicken Sie dort auf „Bearbeiten“.

  • Unterhalb des Visualisierungsbereichs finden Sie den Abfrageeditor. Aktuell wird die im folgenden Screenshot gezeigte Abfrage probe_http_duration_seconds visualisiert.

  • Es gibt hunderte von Abfragen, die Sie visualisieren und nach Bedarf zu Ihrem Dashboard hinzufügen können.

  • Sie haben außerdem die Möglichkeit, den Visualisierungstyp zu verändern. Die durchschnittliche Sondendauer wird standardmäßig im Textformat angezeigt. Klicken Sie dazu im Visualisierungsbereich auf der rechten Seite auf die Option „Gauge“ für die durchschnittliche Sondendauer.

  • Und so verändert sich die Visualisierung.

Fazit

Dieses Tutorial soll Ihnen einen Einblick geben, wie einfach es ist, eine Website mithilfe von Prometheus, dem Blackbox Exporter und Grafana zu überwachen. Es gibt viele Möglichkeiten, also experimentieren Sie ruhig damit, um ein Gefühl dafür zu bekommen. Wenn Sie Interesse an Grafana haben, empfehle ich Ihnen den Online-Kurs von Udemy.

Hat Ihnen der Artikel gefallen? Teilen Sie ihn doch mit anderen!