Websites mit Browser-Datenpunkten überwachen
Einführung
Diese Seite führt Sie durch die Schritte, die erforderlich sind, um mit der grundlegenden Überwachung von Websites mithilfe von Browser-Datenpunkten zu beginnen.
Für wen dieser Leitfaden gedacht ist
Dieser Leitfaden 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 umfangreichen Anpassungsoptionen suchen oder eine fortgeschrittenere Konfiguration benötigen, lesen Sie die Seite Browser items oder den Abschnitt Configuration 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.
Je nach Ihrer Umgebung können sich einige Schritte in dieser Anleitung geringfügig unterscheiden. Diese Anleitung basiert auf einer Umgebung mit Ubuntu.
WebDriver konfigurieren
Browser-Elemente erfordern ein Automatisierungs-Framework (entweder Selenium Server oder ein reines WebDriver, zum Beispiel ChromeDriver) als Web-Testendpunkt, der einen Browser steuert und mit ihm interagiert, indem er Testbefehle wie das Klicken auf Schaltflächen oder das Eingeben von Text ausführt.
Als Beispiel verwendet diese Anleitung Selenium Server mit Chrome in einem Docker-Container.
Es wird davon ausgegangen, 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 Hostsystem Port 4444 im Container zu (dies ist der Port, den Selenium Server zum Empfangen von Befehlen verwendet);
- -p 7900:7900 - ordnet Port 7900 auf Ihrem Hostsystem Port 7900 im Container zu (dies ist der Port, den der Virtual Network Computing-(VNC-)Server verwendet, damit Sie die Browser-GUI aus der Ferne anzeigen können; dafür ist ein VNC-Client erforderlich);
- --shm-size="2g" - weist dem Container 2 GB gemeinsamen Speicher zu (dies ist wichtig, damit Chrome ordnungsgemäß ausgeführt werden kann, da es eine erhebliche Menge an gemeinsamem Speicher benötigt, um Abstürze zu vermeiden);
- -d - startet den Container im Detached-Modus, d. h. 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 ausgeführt wird und erreichbar ist.
- Rufen Sie die IP-Adresse des Containers ab (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 Webseiteninhalt 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-Dokumentation.
Zabbix Server konfigurieren
Browser-Datenpunkte werden von Zabbix-Prozessen vom Typ browser poller ausgeführt und verarbeitet, die durch Anpassen des Server-Konfigurationsparameters StartBrowserPollers aktiviert werden müssen. Zusätzlich sollte der Parameter WebDriverURL den zuvor konfigurierten Web-Test-Endpunkt angeben.
Standardmäßig ist der Parameter StartBrowserPollers auf 1 gesetzt, daher müssen Sie nur den Web-Test-Endpunkt angeben.
1. Öffnen Sie die Konfigurationsdatei des Zabbix Server.
vi /etc/zabbix/zabbix_server.conf
2. Suchen Sie den Parameter WebDriverURL in der Konfigurationsdatei des Zabbix Server und setzen Sie ihn:
### Option: WebDriverURL
# WebDriver interface HTTP[S] URL. For example http://localhost:4444 used with Selenium WebDriver standalone 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 Hostnamen 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 Hostgruppe ein oder wählen Sie sie aus (zum Beispiel eine neue Hostgruppe "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} - Domänenname (zum Beispiel git.zabbix.com/projects/ZBX/repos/zabbix/browse)
- {$WEBSITE.GET.DATA.INTERVAL} - Aktualisierungsintervall für 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
Glückwunsch! Zu diesem Zeitpunkt überwacht Zabbix die von Ihnen angegebene Website bereits.
Um die erfassten Metriken anzuzeigen, navigieren Sie zum Menüpunkt Monitoring → Hosts und klicken Sie neben dem Host auf Dashboards.

Diese Aktion führt Sie zum Host-Dashboard (auf Vorlagenebene konfiguriert) mit den wichtigsten von der Website erfassten Metriken.

Problemalarme 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 zum 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 die Konfiguration Ihres Website-Hosts in Zabbix.
2. Wechseln Sie zur Registerkarte Macros und wählen Sie Inherited and host macros aus.
3. Klicken Sie neben dem zuvor konfigurierten Wert der Makro-Variable {$WEBSITE.DOMAIN} auf Change und setzen Sie einen falschen Domainnamen fest (zum Beispiel /git.zabbix.com/projects/ZBX/repos/zabbix/browse).
4. Klicken Sie auf Update, um die Host-Konfiguration zu aktualisieren.
5. Nach einigen Augenblicken erkennt Zabbix das Problem "Failed to get JSON of the requested website", da keine Verbindung zur angegebenen Website hergestellt werden kann. Das Problem wird unter Monitoring → Problems angezeigt.

Wenn Benachrichtigungen konfiguriert sind, erhalten Sie außerdem die Problembenachrichtigung.
6. Setzen Sie den Wert der Makro-Variable wieder auf den vorherigen Wert zurück, um das Problem zu beheben und die Überwachung der Website fortzusetzen.
Siehe auch
- Erstellen eines Datenpunkts - wie zusätzliche Metriken überwacht werden.
- Problem-Eskalationen - wie mehrstufige Alarmszenarien erstellt werden (z. B. zuerst eine Nachricht an den Systemadministrator senden und dann, wenn ein Problem nach 45 Minuten nicht behoben ist, eine Nachricht an den Rechenzentrumsleiter senden).
- Browser-Datenpunkte - wie Browser-Datenpunkte konfiguriert werden.
- Vorlage Website by Browser - zusätzliche Informationen zur Vorlage Website by Browser.