Websites mit Browser-Datenpunkten überwachen

Einführung

Diese Seite führt Sie durch die Schritte, die erforderlich sind, um mit Browser-Datenpunkten die grundlegende Überwachung von Websites zu starten.

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

Je nach Ihrer Umgebung können einige Schritte in dieser Anleitung leicht abweichen. Diese Anleitung basiert auf einer Umgebung mit Ubuntu.

WebDriver konfigurieren

Browser-Items erfordern ein Automatisierungs-Framework (entweder Selenium Server oder ein reiner WebDriver, zum Beispiel ChromeDriver) als Web-Test-Endpunkt, 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.
Anweisungen zur Installation 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 dem Port 4444 im Container zu (dies ist der Port, den Selenium Server zum Annehmen von Befehlen verwendet);
  • -p 7900:7900 - ordnet Port 7900 auf Ihrem Host dem 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 beträchtliche Menge an gemeinsamem Speicher benötigt, um Abstürze zu vermeiden);
  • -d - führt den Container im Detached-Modus aus, 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 mit 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 lesen Sie die Docker-Dokumentation.

Zabbix Server konfigurieren

Browser-Datenpunkte werden von Zabbix-Prozessen des Typs browser poller ausgeführt und verarbeitet, die durch Anpassen des Serverkonfigurationsparameters 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 Servers:

vi /etc/zabbix/zabbix_server.conf

2. Suchen Sie den Parameter WebDriverURL in der Konfigurationsdatei des Zabbix Servers 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} - Domainname (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üabschnitt 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 Host-Konfiguration Ihrer Website 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 {$WEBSITE.DOMAIN}-Macro, beispielsweise previously configured, 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. 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. Ändern Sie den Macro-Wert wieder auf den vorherigen Wert zurück, um das Problem zu beheben und die Überwachung der Website fortzusetzen.

Siehe auch

  • Ein Datenpunkt erstellen - 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.