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

Lieben Sie Grafana für die Überwachung von Servermetriken? Sie werden Blackbox Exporter auch für die Website-Überwachung lieben!

In diesem Tutorial erfahren Sie, wie Sie Blackbox Exporter unter CentOS/RHEL installieren und verstehen, wie Sie ihn mit Prometheus und Grafana verwenden, um die Leistung und Verfügbarkeit von Websites zu überwachen.

Was ist Blackbox Exporter?

Blackbox-Exporteur von Prometheus wird verwendet, um Endpunkte wie HTTPS, HTTP, TCP, DNS und ICMP zu prüfen. Nachdem Sie den Endpunkt definiert haben, generiert der Blackbox-Exporter Hunderte von Metriken, die mit Grafana visualisiert werden können. Die Messung der Antwortzeit ist die wichtigste Funktion des Blackbox-Exporters.

Blackbox Exporter ist eine selbst gehostete Lösung. Wenn Sie nach etwas Ähnlichem suchen, aber als SaaS oder Cloud-basiert, dann können Sie Grafana worldPing ausprobieren.

Voraussetzungen

Prometheus und Grafana müssen vorinstalliert sein. Folgen Sie diesem Artikel, um Prometheus und Grafana zu installieren.

Blackbox-Exporter-Installation

Lassen Sie mich Ihnen zuerst zeigen, wie Sie den Blackbox-Exporter installieren.

Schritt 1: Blackbox Exporter herunterladen

Gehen Sie zum Offizielle Seite um das neueste Linux AMD Blackbox Exporter-Paket herunterzuladen. Ich lade die Datei blackbox_exporter-0.16.0.linux-amd64.tar.gz herunter.

  • Übertragen Sie die heruntergeladene Datei auf den Server
  • Extrahieren Sie Dateien aus dem Paket.
[[email protected] ~]$ tar -xzf blackbox_exporter-0.16.0.linux-amd64.tar.gz

Überprüfen Sie alle Dateien im Blackbox-Exporter.

[[email protected] ~]$ cd blackbox_exporter-0.16.0.linux-amd64/
[[email protected] 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

Wichtig sind hier zwei Dateien blackbox_exporter und blackbox.yml.

  • blackbox_exporter: Dies ist eine ausführbare Datei zum Ausführen des Dienstes.
  • blackbox.yml: Eine YAML-Datei mit allen Backbox-Exporter-Konfigurationen, in denen Sie alle zu prüfenden Endpunkte und auszuführenden Module definieren.

Der folgende Befehl gibt Ihnen alle Flags, die Sie mit dem Blackbox-Exporter verwenden können.

[[email protected] blackbox_exporter-0.16.0.linux-amd64]$ ./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

Dies ist optional.

  Family Guy, die Suche nach Sachen ist fesselnd, lustig und Sachen [Game Review]

Sie können entweder einen neuen Benutzer erstellen, um Blackbox auszuführen, oder vorhandene Prometheus-Benutzer verwenden, um es auszuführen.

Erteilen Sie Berechtigungen und weisen Sie dem neuen Benutzer das Eigentum an allen seinen Dateien zu.

[[email protected] ~]$ sudo useradd -rs /bin/false blackbox
[[email protected] ~]$ sudo chmod -R 777 /home/centos/blackbox_exporter-0.16.0.linux-amd64
[[email protected] ~]$ sudo chown -R blackbox:blackbox /home/centos/blackbox_exporter-0.16.0.linux-amd64

Schritt 3: Konfigurieren Sie den Blackbox-Dienst

Es ist an der Zeit, Blackbox Exporter als Dienst innerhalb von systemd zu konfigurieren. Erstellen Sie eine Datei blackbox.service und fügen Sie die unten genannten Zeilen in die Datei ein und speichern Sie sie.

[[email protected] ~]$ 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

Vergessen Sie nicht, den Pfad auf den tatsächlichen Pfad zu ändern, in dem Sie ihn extrahiert haben.

Schritt 4: Starten Sie Blackbox Exporter

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

[[email protected] ~]$ sudo systemctl daemon-reload
[[email protected] ~]$ sudo systemctl start blackbox.service
[[email protected] ~]$ 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

Groß!

  So analysieren Sie Text

Der Blackbox-Exporter wurde erfolgreich gestartet. Unter http://localhost:9115/ finden Sie Blackbox Exporter ausgeführt.

Integration von Blackbox mit Prometheus

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

  • Fügen Sie einen Blackbox-Job mit den folgenden Konfigurationen in der Datei prometheus.yml hinzu. Ich werde die Leistung von https://www.telegraph.co.uk überwachen.
[[email protected] ~]$ 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.
[[email protected] ~]$ sudo systemctl restart prometheus.service
  • Wenn Sie die Ziele unter http://localhost:9090/targets erneut überprüfen, finden Sie einen Blackbox-Job, der mit dem von mir definierten Endpunkt ausgeführt wird.

  • Klicken Sie auf das Diagramm und führen Sie die Abfrage aus – probe_http_duration_seconds.

  • Auf den von Prometheus überwachten Daten wird eine Visualisierung erstellt.

Jetzt ist es an der Zeit, den Blackbox-Job auf Grafana zu visualisieren.

Es gibt viele Möglichkeiten, damit anzufangen, aber eine der schnellsten wäre, mit einem vorgefertigten Dashboard zu beginnen – Prometheus-Blackbox-Exporteur.

  • Gehen Sie zum Grafana-Dashboard, klicken Sie auf + Zeichen und klicken Sie auf Importieren.
  • Geben Sie in Import via grafana.com die Dashboard-ID 7587 ein und klicken Sie auf Load.
  • Wählen Sie dann die Prometheus-Datenquelle aus und klicken Sie auf Importieren.
  Wie das Gravis PC GamePad das PC-Gaming in den 90er Jahren veränderte

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

  • All dies sind separate Bedienfelder auf dem Dashboard. Lassen Sie mich das HTTP-Duration-Panel im Detail zeigen. Dieses Panel zeigt die Visualisierung der Zeitdauer, die für Verbindungs-, Verarbeitungs-, Lösungs-, TLS- und Übertragungsanforderungen benötigt wird.

Es gibt viele Optionen auf dem Dashboard, mit denen Sie herumspielen können. Sie können den Zeitraum ändern, für den die Visualisierung angezeigt werden soll. Sie können auch das Zeitintervall bei der Datenaktualisierung ändern; Hier kommen die neuen Daten alle 5 Sekunden in das Dashboard.

  • Wenn Sie auf den Abwärtspfeil für die HTTP-Dauer klicken, erhalten Sie die unten gezeigten Optionen. Klicken Sie auf Bearbeiten.

  • Unterhalb des Visualisierungsbereichs erhalten Sie einen Abfrageeditor. Derzeit wird die im folgenden Schnappschuss gezeigte Abfrage visualisiert – probe_http_duration_seconds.

  • Es gibt Hunderte von Abfragen, die Sie einfach visualisieren und je nach Anforderung zu Ihrem Dashboard hinzufügen können.

  • Sie haben auch viele Möglichkeiten, den Visualisierungstyp zu ändern. Die durchschnittliche Sondendauer wird auf dem Dashboard im Textformat angezeigt. Klicken Sie im Visualisierungsbereich auf der rechten Seite auf die Option Gauge für die durchschnittliche Sondendauer.

  • Und so wird sich die Visualisierung verändern.

Fazit

Das Obige soll Ihnen nur eine Vorstellung davon geben, wie einfach es ist, die Website mit Prometheus Blackbox und Grafana zu überwachen. Es gibt viele Möglichkeiten, und ich würde dringend empfehlen, damit herumzuspielen, um es zu erleben. Wenn Sie neugierig sind, Grafana zu lernen, dann schauen Sie sich seine an Online Kurs.

Haben Sie den Artikel gerne gelesen? Wie wäre es mit der Welt zu teilen?