[comment]: # aside:9

[comment]: # ({b9451140-6b0e1e45})
# Monitorowanie witryn za pomocą pozycji przeglądarki

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

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

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

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

[comment]: # ({204c7929-1c8f337f})
**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 witryn internetowych za pomocą pozycji przeglądarkowych.
Jeśli szukasz zaawansowanych opcji dostosowywania lub potrzebujesz bardziej rozbudowanej konfiguracji, zobacz stronę [Browser items](/manual/config/items/itemtypes/browser) lub sekcję [Configuration](/manual/config) w podręczniku Zabbix.

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

[comment]: # ({7879a4ee-746e75a8})
**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 opisane w tym przewodniku mogą się nieznacznie różnić.
Ten przewodnik opiera się na środowisku działającym pod Ubuntu.

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

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

Pozycje przeglądarki wymagają frameworka automatyzacji (Selenium Server albo zwykłego WebDrivera, na przykład ChromeDriver) jako punktu końcowego testowania webowego, który steruje przeglądarką i wchodzi z nią w interakcję, wykonując polecenia testowe, takie jak klikanie przycisków lub wprowadzanie tekstu.
Jako przykład ten przewodnik wykorzystuje Selenium Server z Chrome w kontenerze Docker.

Zakłada się, że Docker jest już skonfigurowany. Ten przewodnik nie obejmuje konfiguracji Dockera.
Instrukcje instalacji znajdziesz w [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 hoście do portu 4444 w kontenerze (jest to port używany przez Selenium Server do przyjmowania poleceń);
-   **-p 7900:7900** - mapuje port 7900 na hoście do portu 7900 w kontenerze (jest to port używany przez serwer Virtual Network Computing (VNC), umożliwiający zdalne wyświetlanie interfejsu GUI przeglądarki; wymaga klienta VNC);
-   **--shm-size="2g"** - przydziela kontenerowi 2 GB pamięci współdzielonej (jest to ważne, aby Chrome działał poprawnie, ponieważ może 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` jest uruchomiony i 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 przypadku rozwiązywania problemów odwołaj się do [dokumentacji Dockera](https://docs.docker.com/engine/).
:::

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

[comment]: # ({538d8706-3e81f645})
#### Konfiguracja serwera 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 punkt końcowy testów webowych.

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

1\. Otwórz plik konfiguracji serwera Zabbix.

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

2\. Znajdź i ustaw parametr [WebDriverURL](/manual/appendix/config/zabbix_server#webdriverurl) w pliku konfiguracji 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-3e81f645})

[comment]: # ({a0f152f6-48af2e5f})
#### Konfiguracja frontend Zabbix

1\. Zaloguj się do frontend Zabbix.

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

- 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.0).
- 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]: # ({/a0f152f6-48af2e5f})

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

Gratulacje! W tym momencie Zabbix już monitoruje wskazaną przez Ciebie witrynę.

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 akcja przeniesie Cię do dashboardu hosta (skonfigurowanego na poziomie szablonu) z najważniejszymi metrykami zebranymi z witryny.

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

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

[comment]: # ({eca01285-e3d26cda})
#### 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/basic_config/login#adding-user).

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

2\. Postępuj zgodnie z przewodnikiem dotyczącym [Odbierania powiadomienia o problemie](/manual/quickstart/basic_config/notification).

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

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

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

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

1\. Otwórz konfigurację hosta swojej witryny 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 w stanie połączyć się z określoną witryną.
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.

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

[comment]: # ({13c610d2-cfdcb2f0})
#### 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.0) - dodatkowe informacje o szablonie *Website by Browser*.

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