[comment]: # aside:9

[comment]: # ({b9451140-6b0e1e45})
# Websites mit Browser-Datenpunkten überwachen

[comment]: # ({/b9451140-6b0e1e45})

[comment]: # ({6f758e8b-8046ed31})
#### 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.

[comment]: # ({/6f758e8b-8046ed31})

[comment]: # ({204c7929-1c8f337f})
**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](/manual/config/items/itemtypes/browser) oder den Abschnitt [Configuration](/manual/config) im Zabbix-Handbuch.

[comment]: # ({/204c7929-1c8f337f})

[comment]: # ({7879a4ee-746e75a8})
**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](https://www.zabbix.com/download).

Je nach Ihrer Umgebung können sich einige Schritte in dieser Anleitung geringfügig unterscheiden.
Diese Anleitung basiert auf einer Umgebung mit Ubuntu.

[comment]: # ({/7879a4ee-746e75a8})

[comment]: # ({3498dadf-9003b4f8})
#### 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](https://docs.docker.com/engine/install/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](https://hub.docker.com/r/selenium/standalone-chrome).

```bash
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):

```bash
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](https://nmap.org/ncat/):

```bash
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](https://curl.se/) ab:

```bash
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>
# ...
```

::: noteclassic
Zur Fehlerbehebung siehe die [Docker-Dokumentation](https://docs.docker.com/engine/).
:::

[comment]: # ({/3498dadf-9003b4f8})

[comment]: # ({538d8706-3e81f645})
#### Zabbix Server konfigurieren

Browser-Datenpunkte werden von Zabbix-Prozessen vom Typ *browser poller* ausgeführt und verarbeitet, die durch Anpassen des Server-Konfigurationsparameters [StartBrowserPollers](/manual/appendix/config/zabbix_server#startbrowserpollers) aktiviert werden müssen.
Zusätzlich sollte der Parameter [WebDriverURL](/manual/appendix/config/zabbix_server#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.

```bash
vi /etc/zabbix/zabbix_server.conf
```

2\. Suchen Sie den Parameter [WebDriverURL](/manual/appendix/config/zabbix_server#webdriverurl) in der Konfigurationsdatei des Zabbix Server und setzen Sie ihn:

```ini
### 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.

```bash
systemctl restart zabbix-server
```

[comment]: # ({/538d8706-3e81f645})

[comment]: # ({a0f152f6-48af2e5f})
#### Zabbix Frontend konfigurieren

1\. Melden Sie sich im Zabbix Frontend an.

2\. [Erstellen Sie einen Host](/manual/config/hosts/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](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/website_browser?at=refs%2Fheads%2Frelease%2F7.0).
- Geben Sie im Feld *Host groups* eine Hostgruppe ein oder wählen Sie sie aus (zum Beispiel eine neue Hostgruppe "Websites").

![](../../../assets/en/manual/guides/browser_host.png){width="600"}

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

![](../../../assets/en/manual/guides/browser_macros.png){width="600"}

3\. Klicken Sie auf die Schaltfläche *Add*, um den Host zu erstellen. Dieser Host repräsentiert die Website, die Sie überwachen möchten.

[comment]: # ({/a0f152f6-48af2e5f})

[comment]: # ({b5c590c2-f8dfb64b})
#### 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*](/manual/web_interface/frontend_sections/monitoring/hosts) und klicken Sie neben dem Host auf *Dashboards*.

![](../../../assets/en/manual/guides/browser_monitored_hosts.png){width="600"}

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

![](../../../assets/en/manual/guides/browser_dashboard.png){width="600"}

[comment]: # ({/b5c590c2-f8dfb64b})

[comment]: # ({eca01285-e3d26cda})
#### 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*](/manual/web_interface/user_profile), wechseln Sie zur Registerkarte *Medien* und [fügen Sie Ihre E-Mail-Adresse hinzu](/manual/quickstart/basic_config/login#adding-user).

![](../../../assets/en/manual/quickstart/new_media.png){width="600"}

2\. Folgen Sie der Anleitung zum [Empfangen einer Problembenachrichtigung](/manual/quickstart/basic_config/notification).

Wenn Zabbix das nächste Mal ein Problem erkennt, sollten Sie eine Benachrichtigung per E-Mail erhalten.

[comment]: # ({/eca01285-e3d26cda})

[comment]: # ({06163b26-77577f84})
#### 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](#configure-zabbix-frontend) 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*](/manual/web_interface/frontend_sections/monitoring/problems) angezeigt.

![](../../../assets/en/manual/guides/browser_problem.png){width="600"}

Wenn Benachrichtigungen [konfiguriert](#set-up-problem-alerts) 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.

[comment]: # ({/06163b26-77577f84})

[comment]: # ({13c610d2-cfdcb2f0})
#### Siehe auch

- [Erstellen eines Datenpunkts](/manual/config/items/item) - wie zusätzliche Metriken überwacht werden.
- [Problem-Eskalationen](/manual/config/notifications/action/escalations) - 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](/manual/config/items/itemtypes/browser) - wie Browser-Datenpunkte konfiguriert werden.
- Vorlage [Website by Browser](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/website_browser?at=refs%2Fheads%2Frelease%2F7.0) - zusätzliche Informationen zur Vorlage *Website by Browser*.

[comment]: # ({/13c610d2-cfdcb2f0})
