Sie lieben Grafana für die Überwachung von Servermetriken? Dann werden Sie auch Blackbox Exporter für die Überwachung von Websites lieben!
In diesem Tutorial lernen Sie, Blackbox Exporter auf CentOS/RHEL zu installieren und zu verstehen, wie Sie es zusammen mit Prometheus und Grafana zur Überwachung der Website-Performance und -Uptime einsetzen können.
Blackbox Ausführer von Prometheus wird verwendet, um Endpunkte wie HTTPS, HTTP, TCP, DNS und ICMP zu untersuchen. 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 zunächst zeigen, wie Sie Blackbox Exporter installieren.
Schritt 1: Blackbox Exporter herunterladen
Rufen Sie die offizielle Seite auf, 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
- Entpacken Sie die Dateien aus dem Paket.
[centos@geekflare ~]$ tar -xzf blackbox_exporter-0.16.0.linux-amd64.tar.gz
Prüfen Sie alle Dateien im Blackbox-Exporter.
[centos@geekflare ~]$ cd blackbox_exporter-0.16.0.linux-amd64/
[centos@geekflare 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 HINWEIS
Die beiden Dateien blackbox_exporter
und blackbox.yml
sind hier wichtig.
- blackbox_exporter: Dies ist eine ausführbare Datei für die Ausführung des Dienstes.
- blackbox.yml: Eine YAML-Datei mit allen Konfigurationen des Backbox-Exporters, in der Sie alle zu prüfenden Endpunkte und auszuführenden Module definieren.
Mit dem folgenden Befehl erhalten Sie alle Flags, die Sie mit dem Blackbox-Exporter verwenden können.
[centos@geekflare blackbox_exporter-0.16.0.linux-amd64]$ ./blackbox_exporter -h
usage: blackbox_exporter [<flags>]
Flags:
-h, --help Zeigt eine kontextabhängige Hilfe an (versuchen Sie auch --help-long und --help-man).
--config.file="blackbox.yml"
Blackbox-Exporter-Konfigurationsdatei.
--web.listen-address=":9115"
Die Adresse, an der auf HTTP-Anfragen gelauscht werden soll.
--timeout-offset=0.5 Offset, der von der Zeitüberschreitung in Sekunden abgezogen wird.
--config.check Wenn true, validieren Sie die Konfigurationsdatei und beenden Sie sie dann.
--history.limit=100 Die maximale Anzahl der Elemente, die in der Historie gespeichert werden sollen.
--web.external-url=<url>
Die URL, unter der Blackbox exporter extern erreichbar ist (z.B. wenn Blackbox exporter über einen
Reverse Proxy bereitgestellt wird). Wird verwendet, um relative und absolute Links zurück zum Blackbox exporter selbst zu erzeugen. Wenn die URL einen
Pfadteil enthält, wird dieser als Präfix für alle HTTP-Endpunkte verwendet, die von Blackbox exporter bedient werden. Wenn Sie ihn weglassen, werden die entsprechenden Komponenten der URL
automatisch abgeleitet.
--web.route-prefix=<Pfad>
Präfix für die internen Routen der Web-Endpunkte. Standardmäßig wird der Pfad von --web.external-url verwendet.
--log.level=info Nur Protokollmeldungen mit dem angegebenen Schweregrad oder höher. Einer der folgenden Werte: [debug, info, warn, error]
--log.format=logfmt Ausgabeformat der Protokollmeldungen. Eines von: [logfmt, json]
--version Zeigt die Anwendungsversion an.
Schritt 2: Benutzer für Blackbox erstellen
Dieser Schritt ist optional.
Sie können entweder einen neuen Benutzer erstellen, um Blackbox auszuführen, oder bestehende Prometheus-Benutzer verwenden.
Erteilen Sie dem neuen Benutzer Berechtigungen und weisen Sie ihm die Rechte an allen Dateien zu.
[centos@geekflare ~]$ sudo useradd -rs /bin/false blackbox
[centos@geekflare ~]$ sudo chmod -R 777 /home/centos/blackbox_exporter-0.16.0.linux-amd64
[centos@geekflare ~]$ 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.
[centos@geekflare ~]$ sudo gedit /etc/systemd/system/blackbox.service
[Einheit]
Beschreibung=Blackbox Exporter Service
Wants=network-online.target
After=network-online.target
[Dienst]
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 in den tatsächlichen Pfad zu ändern, in den Sie die Datei extrahiert haben.
Schritt 4: Blackbox Exporter starten
Führen Sie die folgenden Befehle aus, um den Blackbox Exporter als Dienst zu starten.
[centos@geekflare ~]$ sudo systemctl daemon-reload
[centos@geekflare ~]$ sudo systemctl start blackbox.service
[centos@geekflare ~]$ sudo systemctl status blackbox.service
● blackbox.service - Blackbox Exporter Service
Geladen: geladen (/etc/systemd/system/blackbox.service; aktiviert; Hersteller-Voreinstellung: deaktiviert)
Aktiv: aktiv (läuft) seit Sat 2020-06-13 17:28:40 EDT; vor 1s
Haupt-PID: 30427 (blackbox_export)
Aufgaben: 5
CGroup: /system.slice/blackbox.service
└─30427 /usr/local/bin/blackbox_exporter --config.file=/etc/blackbox.yml
Jun 13 17:28:40 geekflare.linuxvmimages.com systemd[1]: Blackbox Exporter Service gestartet.
Jun 13 17:28:40 geekflare.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 geekflare.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 geekflare.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 geekflare.linuxvmimages.com blackbox_exporter[30
Großartig!
Der Blackbox-Exporter wurde erfolgreich gestartet. Unter http://localhost:9115/ können Sie sehen, dass Blackbox Exporter läuft.

Integration von Blackbox in Prometheus
Lassen Sie uns Blackbox Exporter mit Prometheus integrieren, um mit dem Scraping der Metriken zu beginnen.
- Fügen Sie einen Blackbox-Job mit den unten aufgeführten Konfigurationen in die Datei prometheus.yml ein. Ich werde die Leistung von https://www.telegraph.co.uk überwachen .
[centos@geekflare ~]$ sudo gedit /etc/prometheus/prometheus.yml
- job_name: 'blackbox'
metrics_path: /probe
params:
module: [http_2xx] # Suche nach einer HTTP 200 Antwort.
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 # Der echte Hostname:Port des Blackbox-Exporters.
- Starten Sie Prometheus neu.
[centos@geekflare ~]$ 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 läuft.

- Klicken Sie auf den Graph und führen Sie die Abfrage probe_http_duration_seconds aus .

- Es wird eine Visualisierung der Daten erstellt, die von Prometheus überwacht werden.

Jetzt ist es an der Zeit, den Blackbox-Job auf Grafana zu visualisieren.
Es gibt viele Möglichkeiten, damit zu beginnen, aber eine der schnellsten wäre, mit einem vorgefertigten Dashboard zu beginnen - dem Prometheus Blackbox Ausführer.
- Gehen Sie zum Grafana Dashboard, klicken Sie auf Zeichen und dann auf Importieren.
- Geben Sie in Import via grafana.com die Dashboard-ID ein. 7587 ein und klicken Sie auf Laden.
- Wählen Sie dann die Prometheus-Datenquelle und klicken Sie auf Importieren.

- Das Prometheus Blackbox Exporter Dashboard wird importiert.
- Sie können Metriken wie Global Probe Duration, Status, HTTP Duration, Average Probe Duration, Average DNS Lookup, SSL Expiry und viele mehr anzeigen lassen.


- Dies sind alle separaten Bereiche auf dem Dashboard. Lassen Sie sich das Panel HTTP-Dauer im Detail zeigen. Dieses Panel zeigt die Zeit an, die für die Verbindung, die Verarbeitung, die Auflösung, die tls und die Übertragung von Anfragen benötigt wird.

Auf dem Dashboard gibt es viele Optionen, mit denen Sie herumspielen können. Sie können den Zeitbereich ändern, für den die Visualisierung angezeigt werden soll. Sie können auch das Zeitintervall für die Datenaktualisierung ändern; hier werden die neuen Daten alle 5 Sekunden im Dashboard angezeigt.

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

- Unterhalb des Visualisierungspanels erhalten Sie einen Abfrage-Editor. Derzeit wird die Abfrage aus dem folgenden Schnappschuss visualisiert - probe_http_duration_seconds.

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

- Sie haben auch zahlreiche Optionen, um die Art der Visualisierung zu ändern. Die durchschnittliche Prüfdauer wird auf dem Dashboard im Textformat angezeigt. Klicken Sie im Visualisierungsbereich auf der rechten Seite auf die Option Leitfaden für die durchschnittliche Messdauer.

- Und so ändert sich die Darstellung.

Fazit
Die obigen Ausführungen sollen Ihnen nur einen Eindruck davon vermitteln, wie einfach es ist, die Website mit Prometheus Blackbox und Grafana zu überwachen. Es gibt eine Fülle von Optionen, und ich empfehle Ihnen dringend, damit herumzuspielen, um es auszuprobieren. Wenn Sie neugierig sind, Grafana zu erlernen, dann schauen Sie sich seine Online-Kurs an.
-
Avi ist ein Technik-Enthusiast mit Fachkenntnissen in Trendtechnologien wie DevOps, Cloud Computing, Big Data und vielen mehr. Seine Leidenschaft ist es, Spitzentechnologien zu lernen und sein Wissen mit anderen zu teilen, indem er... mehr lesen