[comment]: # ({b1d937a1-f18b8ec4})
# 8 Monitorowanie stron internetowych za pomocą pozycji przeglądarki

[comment]: # ({/b1d937a1-f18b8ec4})

[comment]: # ({fc6e7bc8-eda05db8})
#### Wprowadzenie

Ta strona przeprowadzi Cię przez kroki wymagane do rozpoczęcia podstawowego monitorowania stron internetowych za pomocą pozycji przeglądarkowych.

[comment]: # ({/fc6e7bc8-eda05db8})

[comment]: # ({b4ab39c1-0298d7f4})
**Dla kogo jest ten przewodnik**

Ten przewodnik jest przeznaczony dla nowych użytkowników Zabbix i zawiera minimalny zestaw kroków wymaganych do włączenia podstawowego monitorowania stron internetowych za pomocą pozycji przeglądarkowych.
Jeśli szukasz opcji zaawansowanego dostosowania lub potrzebujesz bardziej zaawansowanej konfiguracji, zobacz stronę [Pozycje przeglądarkowe](/manual/config/items/itemtypes/browser) lub sekcję [Konfiguracja](/manual/config) podręcznika Zabbix.

[comment]: # ({/b4ab39c1-0298d7f4})

[comment]: # ({7879a4ee-3a6a9a84})
**Wymagania wstępne**

Przed kontynuowaniem tego przewodnika należy [pobrać i zainstalować](https://www.zabbix.com/download) serwer Zabbix oraz frontend Zabbix zgodnie z instrukcjami dla używanego systemu operacyjnego.

W zależności od środowiska niektóre kroki w tym przewodniku mogą się nieznacznie różnić.
Ten przewodnik opiera się na środowisku działającym pod kontrolą Ubuntu.

[comment]: # ({/7879a4ee-3a6a9a84})

[comment]: # ({3498dadf-0b26bd12})
#### Konfiguracja WebDriver

Pozycje przeglądarki wymagają frameworka automatyzacji (Selenium Server lub zwykłego WebDriver, na przykład ChromeDriver) jako punktu końcowego testów web, który steruje przeglądarką i wchodzi z nią w interakcję, wykonując polecenia testowe, takie jak klikanie przycisków lub wprowadzanie tekstu.
W tym przewodniku jako przykład zostanie użyty Selenium Server z Chrome w kontenerze Docker.

Zakłada się, że Docker jest już skonfigurowany. Ten przewodnik nie obejmuje konfiguracji Dockera.
Instrukcje instalacji można znaleźć tutaj: [Install Docker Engine on Ubuntu](https://docs.docker.com/engine/install/ubuntu/).

1\. Uruchom Selenium Server z Chrome w kontenerze Docker z następującymi opcjami:

-   **docker run --name browser** — uruchamia nowy kontener Docker o nazwie „browser”;
-   **-p 4444:4444** — mapuje port 4444 na twoim hoście na port 4444 w kontenerze (jest to port używany przez Selenium Server do przyjmowania poleceń);
-   **-p 7900:7900** — mapuje port 7900 na twoim hoście na port 7900 w kontenerze (jest to port używany przez serwer Virtual Network Computing (VNC), umożliwiający zdalne wyświetlanie GUI przeglądarki; wymaga klienta VNC);
-   **--shm-size="2g"** — przydziela kontenerowi 2 GB pamięci współdzielonej (jest to ważne dla prawidłowego działania Chrome, ponieważ może on wymagać znacznej ilości pamięci współdzielonej, aby uniknąć awarii);
-   **-d** — uruchamia kontener w trybie odłączonym, co oznacza, że będzie działał w tle;
-   **selenium/standalone-chrome:latest** — określa obraz Docker do użycia; w tym przypadku jest to najnowsza wersja [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\. Upewnij się, że kontener Docker `browser` działa i jest dostępny.

-   Pobierz adres IP kontenera (w tym przykładzie 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
#    ...
```

-   Przetestuj połączenie z kontenerem za pomocą [Ncat](https://nmap.org/ncat/):

```bash
nc -zv 192.0.2.1 4444

# Connection to 192.0.2.1 4444 port [tcp/*] succeeded!
```

-   Pobierz zawartość strony internetowej z Selenium Server za pomocą [curl](https://curl.se/):

```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
W celu rozwiązywania problemów zapoznaj się z [Docker documentation](https://docs.docker.com/engine/).
:::

[comment]: # ({/3498dadf-0b26bd12})

[comment]: # ({538d8706-a02ee5f3})
#### Skonfiguruj serwer Zabbix

Pozycje przeglądarki są wykonywane i przetwarzane przez procesy Zabbix *browser poller*, które należy włączyć, dostosowując parametr konfiguracji serwera [StartBrowserPollers](/manual/appendix/config/zabbix_server#startbrowserpollers).
Dodatkowo parametr [WebDriverURL](/manual/appendix/config/zabbix_server#webdriverurl) powinien wskazywać wcześniej skonfigurowany endpoint testów webowych.

Domyślnie parametr StartBrowserPollers jest ustawiony na 1, dlatego wystarczy określić endpoint testów webowych.

1\. Otwórz plik konfiguracyjny serwera Zabbix.

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

2\. Odszukaj i ustaw parametr [WebDriverURL](/manual/appendix/config/zabbix_server#webdriverurl) w pliku konfiguracyjnym serwera Zabbix:

```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\. Uruchom ponownie serwer Zabbix.

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

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

[comment]: # ({5dcbc68f-6094e1b6})
#### Skonfiguruj frontend Zabbixa

1\. Zaloguj się do frontend Zabbixa.

2\. [Utwórz host](/manual/config/hosts/host) w interfejsie webowym Zabbixa:

- W polu *Host name* wpisz nazwę hosta (na przykład "git.zabbix.com").
- W polu *Templates* wpisz lub wybierz szablon "Website by Browser". Więcej informacji o tym szablonie znajdziesz tutaj: [Website by Browser](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/website_browser?at=refs%2Fheads%2Frelease%2F7.4).
- W polu *Host groups* wpisz lub wybierz grupę hostów (na przykład nową grupę hostów "Websites").

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

- Na karcie *Macros* przełącz się na *Inherited and host macros*, znajdź następujące makra i kliknij *Change* obok wartości makra, aby ją zaktualizować:
    - {$WEBSITE.DOMAIN} - nazwa domeny (na przykład git.zabbix.com/projects/ZBX/repos/zabbix/browse)
    - {$WEBSITE.GET.DATA.INTERVAL} - interwał aktualizacji danych pozycji (na przykład 15m)

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

3\. Kliknij przycisk *Add*, aby utworzyć host. Ten host będzie reprezentować witrynę, którą chcesz monitorować.

[comment]: # ({/5dcbc68f-6094e1b6})

[comment]: # ({b5c590c2-b09d6e6d})
#### Wyświetlanie zebranych metryk

Gratulacje! Na tym etapie Zabbix monitoruje już wskazaną przez Ciebie witrynę internetową.

Aby wyświetlić zebrane metryki, przejdź do sekcji menu [*Monitoring → Hosts*](/manual/web_interface/frontend_sections/monitoring/hosts) i kliknij *Dashboards* obok hosta.

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

Ta czynność przeniesie Cię do pulpitu hosta (skonfigurowanego na poziomie szablonu) z najważniejszymi metrykami zebranymi z witryny internetowej.

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

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

[comment]: # ({4cead10e-11902dbb})
#### Skonfiguruj alerty o problemach

Zabbix może powiadamiać o problemie z infrastrukturą za pomocą różnych metod.
Ten przewodnik zawiera podstawowe kroki konfiguracji wysyłania alertów e-mail.

1\. Przejdź do [*Ustawienia użytkownika → Profil*](/manual/web_interface/user_profile), przełącz się na kartę *Media* i [dodaj swój adres e-mail](/manual/quickstart/login#adding-user).

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

2\. Postępuj zgodnie z instrukcjami dla [Odbierania powiadomienia o problemie](/manual/quickstart/notification).

Następnym razem, gdy Zabbix wykryje problem, powinieneś otrzymać alert e-mail.

[comment]: # ({/4cead10e-11902dbb})

[comment]: # ({06163b26-7f332a36})
#### Przetestuj swoją konfigurację

Aby przetestować swoją konfigurację, możemy zasymulować rzeczywisty problem, aktualizując konfigurację hosta w Zabbix frontend.

1\. Otwórz konfigurację hosta swojej witryny internetowej w Zabbix.

2\. Przejdź do zakładki *Macros* i wybierz *Inherited and host macros*.

3\. Kliknij *Change* obok, na przykład, wcześniej [skonfigurowanej](#configure-zabbix-frontend) wartości makra {$WEBSITE.DOMAIN} i ustaw nieprawidłową nazwę domeny (na przykład /git.zabbix.com/projects/ZBX/repos/zabbix/browse).

4\. Kliknij *Update*, aby zaktualizować konfigurację hosta.

5\. Po chwili Zabbix wykryje problem „Failed to get JSON of the requested website”, ponieważ nie będzie mógł połączyć się z określoną witryną internetową.
Problem pojawi się w [*Monitoring → Problems*](/manual/web_interface/frontend_sections/monitoring/problems).

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

Jeśli alerty są [skonfigurowane](#set-up-problem-alerts), otrzymasz również powiadomienie o problemie.

6\. Zmień wartość makra z powrotem na poprzednią, aby rozwiązać problem i kontynuować monitorowanie witryny internetowej.

[comment]: # ({/06163b26-7f332a36})

[comment]: # ({458aaef8-5a9ff105})
#### Zobacz także

- [Tworzenie pozycji](/manual/config/items/item) - jak rozpocząć monitorowanie dodatkowych metryk.
- [Eskalacje problemów](/manual/config/notifications/action/escalations) - jak tworzyć wieloetapowe scenariusze alertów
  (np. najpierw wysłać wiadomość do administratora systemu, a następnie, jeśli problem nie zostanie rozwiązany w ciągu 45 minut, wysłać wiadomość do kierownika centrum danych).
- [Pozycje przeglądarki](/manual/config/items/itemtypes/browser) - jak skonfigurować pozycje przeglądarki.
- Szablon [Website by Browser](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/website_browser?at=refs%2Fheads%2Frelease%2F7.4) - dodatkowe informacje o szablonie *Website by Browser*.

[comment]: # ({/458aaef8-5a9ff105})
