Monitorowanie witryn za pomocą pozycji przeglądarki
Wprowadzenie
Ta strona przeprowadzi Cię przez kroki wymagane do rozpoczęcia podstawowego monitorowania witryn internetowych za pomocą pozycji przeglądarkowych.
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 lub sekcję Configuration w podręczniku Zabbix.
Wymagania wstępne
Przed kontynuowaniem tego przewodnika należy pobrać i zainstalować 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.
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.
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.
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):
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:
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:
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>
# ...
W przypadku rozwiązywania problemów odwołaj się do dokumentacji Dockera.
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. Dodatkowo parametr 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.
vi /etc/zabbix/zabbix_server.conf
2. Znajdź i ustaw parametr WebDriverURL w pliku konfiguracji serwera Zabbix:
### 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.
systemctl restart zabbix-server
Konfiguracja frontend Zabbix
1. Zaloguj się do frontend Zabbix.
2. Utwórz 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.
- W polu Host groups wpisz lub wybierz grupę hostów (na przykład nową grupę hostów "Websites").

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

3. Kliknij przycisk Add, aby utworzyć host. Ten host będzie reprezentował witrynę, którą chcesz monitorować.
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 i kliknij Dashboards obok hosta.

Ta akcja przeniesie Cię do dashboardu hosta (skonfigurowanego na poziomie szablonu) z najważniejszymi metrykami zebranymi z witryny.

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, przełącz się na kartę Media i dodaj swój adres e-mail.

2. Postępuj zgodnie z przewodnikiem dotyczącym Odbierania powiadomienia o problemie.
Następnym razem, gdy Zabbix wykryje problem, powinieneś otrzymać alert e-mail.
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 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.

Jeśli alerty są skonfigurowane, otrzymasz również powiadomienie o problemie.
6. Zmień wartość makra z powrotem na poprzednią, aby rozwiązać problem i kontynuować monitorowanie witryny.
Zobacz także
- Tworzenie pozycji - jak rozpocząć monitorowanie dodatkowych metryk.
- Eskalacje problemów - 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 - jak skonfigurować pozycje przeglądarki.
- Szablon Website by Browser - dodatkowe informacje o szablonie Website by Browser.