8 Websites mit Browser-Datenpunkten überwachen
Einführung
Diese Seite führt Sie durch die Schritte, die erforderlich sind, um die grundlegende Überwachung von Websites mit Browser-Datenpunkten zu starten.
Für wen diese Anleitung gedacht ist
Diese Anleitung richtet sich an neue Zabbix-Benutzer und enthält die minimale Anzahl an Schritten, die erforderlich sind, um die grundlegende Überwachung von Websites mit Browser-Datenpunkten zu aktivieren. Wenn Sie nach umfassenden Anpassungsoptionen suchen oder eine erweiterte Konfiguration benötigen, lesen Sie die Seite Browser-Datenpunkte oder den Abschnitt Konfiguration im Zabbix-Handbuch.
Voraussetzungen
Bevor Sie mit dieser Anleitung fortfahren, müssen Sie den Zabbix Server und das Zabbix Frontend gemäß den Anweisungen für Ihr Betriebssystem herunterladen und installieren.
Abhängig von Ihrer Umgebung können einige Schritte in dieser Anleitung leicht abweichen. Diese Anleitung basiert auf einer Umgebung mit Ubuntu.
WebDriver konfigurieren
Browser-Datenpunkte benötigen ein Automatisierungs-Framework (entweder Selenium Server oder einen einfachen WebDriver, zum Beispiel ChromeDriver) als Endpunkt für Webtests, der einen Browser steuert und mit ihm interagiert und dabei Testbefehle wie das Klicken auf Schaltflächen oder die Eingabe von Text ausführt. Als Beispiel wird in dieser Anleitung Selenium Server mit Chrome in einem Docker-Container verwendet.
Es wird vorausgesetzt, dass Docker bereits konfiguriert ist. Diese Anleitung behandelt die Konfiguration von Docker nicht. Installationsanweisungen finden Sie unter Install Docker Engine on Ubuntu.
1. Starten Sie Selenium Server mit Chrome in einem Docker-Container mit den folgenden Optionen:
- docker run --name browser - startet einen neuen Docker-Container mit dem Namen "browser";
- -p 4444:4444 - ordnet Port 4444 auf Ihrem Host-Rechner Port 4444 im Container zu (dies ist der Port, den Selenium Server zum Entgegennehmen von Befehlen verwendet);
- -p 7900:7900 - ordnet Port 7900 auf Ihrem Host-Rechner Port 7900 im Container zu (dies ist der Port, den der Virtual Network Computing (VNC)-Server verwendet, sodass Sie die Browser-GUI aus der Ferne anzeigen können; ein VNC-Client ist erforderlich);
- --shm-size="2g" - weist dem Container 2 GB Shared Memory zu (dies ist wichtig, damit Chrome ordnungsgemäß ausgeführt werden kann, da es eine erhebliche Menge an Shared Memory benötigen kann, um Abstürze zu vermeiden);
- -d - führt den Container im Detached-Modus aus, das heißt, er läuft im Hintergrund;
- selenium/standalone-chrome:latest - gibt das zu verwendende Docker-Image an; in diesem Fall die neueste Version von Selenium Server with Chrome.
docker run --name browser \
-p 4444:4444 \
-p 7900:7900 \
--shm-size="2g" \
-d selenium/standalone-chrome:latest
2. Stellen Sie sicher, dass der Docker-Container browser läuft und erreichbar ist.
- Ermitteln Sie die IP-Adresse des Containers (in diesem Beispiel 192.0.2.1):
ip addr
# 1: lo: <LOOPBACK,UP,LOWER_UP>
# ...
# 3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> ...
# inet 192.0.2.1/16 brd 192.0.255.255 scope global docker0
# ...
- Testen Sie die Verbindung zum Container mit Ncat:
nc -zv 192.0.2.1 4444
# Connection to 192.0.2.1 4444 port [tcp/*] succeeded!
- Rufen Sie den Inhalt der Webseite von Selenium Server mit curl ab:
curl -L 192.0.2.1:4444
# <!DOCTYPE html>
# <html lang="en">
#
# <head>
# <meta charset="utf-8"/>
# <link href="favicon.svg" rel="icon" type="image/svg">
# <meta content="width=device-width, initial-scale=1" name="viewport"/>
# <link href="logo192.png" rel="apple-touch-icon"/>
# <link href="manifest.json" rel="manifest"/>
# <title>Selenium Grid</title>
# </head>
#
# <body>
# ...
Zur Fehlerbehebung siehe die Docker documentation.
Zabbix Server konfigurieren
Browser-Datenpunkte werden von browser poller-Zabbix-Prozessen ausgeführt und verarbeitet, die durch Anpassen des Server-Konfigurationsparameters StartBrowserPollers aktiviert werden müssen. Zusätzlich sollte der Parameter WebDriverURL den zuvor konfigurierten Endpunkt für Webtests angeben.
Standardmäßig ist der Parameter StartBrowserPollers auf 1 gesetzt, daher müssen Sie nur den Endpunkt für Webtests angeben.
1. Öffnen Sie die Zabbix-Server-Konfigurationsdatei.
vi /etc/zabbix/zabbix_server.conf
2. Suchen Sie den Parameter WebDriverURL in der Zabbix-Server-Konfigurationsdatei und setzen Sie ihn:
### Option: WebDriverURL
# WebDriver-Schnittstellen-HTTP[S]-URL. Zum Beispiel http://localhost:4444, verwendet mit dem eigenständigen Selenium WebDriver-Server.
#
# Mandatory: no
# Default:
# WebDriverURL=
WebDriverURL=192.0.2.1:4444
3. Starten Sie den Zabbix Server neu.
systemctl restart zabbix-server
Zabbix Frontend konfigurieren
1. Melden Sie sich im Zabbix Frontend an.
2. Erstellen Sie einen Host in der Zabbix-Weboberfläche:
- Geben Sie im Feld Host name einen Host-Namen ein (zum Beispiel „git.zabbix.com“).
- Geben Sie im Feld Templates die Vorlage „Website by Browser“ ein oder wählen Sie sie aus. Weitere Informationen zu dieser Vorlage finden Sie unter Website by Browser.
- Geben Sie im Feld Host groups eine Host-Gruppe ein oder wählen Sie sie aus (zum Beispiel eine neue Host-Gruppe „Websites“).

- Wechseln Sie auf der Registerkarte Macros zu Inherited and host macros, suchen Sie nach den folgenden Makros und klicken Sie neben dem Makrowert auf Change, um ihn zu aktualisieren:
- {$WEBSITE.DOMAIN} - Domainname (zum Beispiel git.zabbix.com/projects/ZBX/repos/zabbix/browse)
- {$WEBSITE.GET.DATA.INTERVAL} - Aktualisierungsintervall der Datenpunkte (zum Beispiel 15m)

3. Klicken Sie auf die Schaltfläche Add, um den Host zu erstellen. Dieser Host repräsentiert die Website, die Sie überwachen möchten.
Erfasste Metriken anzeigen
Herzlichen Glückwunsch! Zu diesem Zeitpunkt überwacht Zabbix bereits die von Ihnen angegebene Website.
Um die erfassten Metriken anzuzeigen, wechseln Sie zum Menüabschnitt Monitoring → Hosts und klicken Sie neben dem Host auf Dashboards.

Dadurch gelangen Sie zum Host-Dashboard (auf Vorlagenebene konfiguriert) mit den wichtigsten von der Website erfassten Metriken.

Problembenachrichtigungen einrichten
Zabbix kann Sie mit verschiedenen Methoden über ein Problem in Ihrer Infrastruktur benachrichtigen. Diese Anleitung enthält grundlegende Konfigurationsschritte zum Senden von E-Mail-Benachrichtigungen.
1. Navigieren Sie zu Benutzereinstellungen → Profil, wechseln Sie zur Registerkarte Medien und fügen Sie Ihre E-Mail-Adresse hinzu.

2. Folgen Sie der Anleitung für Empfangen einer Problembenachrichtigung.
Wenn Zabbix das nächste Mal ein Problem erkennt, sollten Sie eine Benachrichtigung per E-Mail erhalten.
Testen Sie Ihre Konfiguration
Um Ihre Konfiguration zu testen, können wir ein echtes Problem simulieren, indem wir die Host-Konfiguration im Zabbix Frontend aktualisieren.
1. Öffnen Sie Ihre Website-Host-Konfiguration in Zabbix.
2. Wechseln Sie zur Registerkarte Macros und wählen Sie Inherited and host macros.
3. Klicken Sie neben dem zuvor konfigurierten Makrowert {$WEBSITE.DOMAIN} auf Change und setzen Sie einen falschen Domainnamen (zum Beispiel /git.zabbix.com/projects/ZBX/repos/zabbix/browse).
4. Klicken Sie auf Update, um die Host-Konfiguration zu aktualisieren.
5. In wenigen Augenblicken wird Zabbix das Problem „JSON der angeforderten Website konnte nicht abgerufen werden“ erkennen, da keine Verbindung zur angegebenen Website hergestellt werden kann. Das Problem wird unter Monitoring → Problems angezeigt.

Wenn Benachrichtigungen konfiguriert sind, erhalten Sie außerdem eine Problembenachrichtigung.
6. Ändern Sie den Makrowert wieder auf den vorherigen Wert zurück, um das Problem zu beheben und die Überwachung der Website fortzusetzen.
Siehe auch
- Erstellen eines Datenpunkts – wie Sie mit der Überwachung zusätzlicher Metriken beginnen.
- Problemeskalationen – wie Sie mehrstufige Warnszenarien erstellen (z. B. zuerst eine Nachricht an den Systemadministrator senden und dann, wenn ein Problem nicht innerhalb von 45 Minuten behoben wird, eine Nachricht an den Rechenzentrumsleiter senden).
- Browser-Datenpunkte – wie Sie Browser-Datenpunkte konfigurieren.
- Vorlage Website by Browser – zusätzliche Informationen über die Vorlage Website by Browser.