Monitorowanie witryn internetowych za pomocą pozycji przeglądarki

Wprowadzenie

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

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 Browser. 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 kontrolą Ubuntu.

Konfiguracja WebDriver

Pozycje przeglądarki wymagają frameworka automatyzacji (Selenium Server albo zwykłego WebDrivera, na przykład ChromeDriver) jako punktu końcowego testów webowych, 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 w tym przewodniku 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 znajdują się 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 komputerze hosta na port 4444 w kontenerze (jest to port używany przez Selenium Server do przyjmowania poleceń);
  • -p 7900:7900 - mapuje port 7900 na komputerze hosta na port 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, którego należy użyć; 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 razie problemów zapoznaj się z dokumentacją Dockera.

Skonfiguruj serwer Zabbix

Pozycje przeglądarkowe są wykonywane i przetwarzane przez procesy Zabbix browser poller, które trzeba włączyć, ustawiając parametr konfiguracji serwera StartBrowserPollers. Dodatkowo parametr WebDriverURL powinien wskazywać wcześniej skonfigurowany punkt końcowy testów WWW.

Domyślnie parametr StartBrowserPollers ma wartość 1, więc wystarczy podać punkt końcowy testów WWW.

1. Otwórz plik konfiguracyjny serwera Zabbix:

vi /etc/zabbix/zabbix_server.conf

2. Znajdź i ustaw parametr WebDriverURL w pliku konfiguracyjnym 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

Skonfiguruj 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, wyszukaj 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.

Konfiguracja alertów o problemach

Zabbix może powiadamiać o problemach 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 we 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 kilku chwilach 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. Przywróć poprzednią wartość makra, 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.