8 Monitorowanie stron internetowych za pomocą pozycji przeglądarki

Wprowadzenie

Ta strona przeprowadzi Cię przez kroki wymagane do rozpoczęcia podstawowego monitorowania stron 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 stron internetowych za pomocą pozycji przeglądarkowych. Jeśli szukasz opcji zaawansowanego dostosowania lub potrzebujesz bardziej zaawansowanej konfiguracji, zobacz stronę Pozycje przeglądarkowe lub sekcję Konfiguracja podręcznika 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 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 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.

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.
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):
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 celu rozwiązywania problemów zapoznaj się z Docker documentation.

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. Dodatkowo parametr 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.

vi /etc/zabbix/zabbix_server.conf

2. Odszukaj 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

Konfiguracja frontendu Zabbix

1. Zaloguj się do frontendu Zabbix.

2. Utwórz hosta w interfejsie webowym Zabbix:

  • W polu Host name wprowadź 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, odszukaj następujące makra i kliknij Change obok wartości makra, aby je 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ć hosta. Ten host będzie reprezentował witrynę internetową, którą chcesz monitorować.

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 i kliknij Dashboards obok hosta.

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

Skonfiguruj alerty o problemach

Zabbix może powiadamiać Cię o problemach z infrastrukturą na wiele sposobów. Ten przewodnik przedstawia podstawowe kroki konfiguracji wysyłania alertów e-mail.

1. Przejdź do Ustawienia użytkownika → Profil, przejdź do zakładki Media i dodaj swój adres e-mail.

2. Postępuj zgodnie z przewodnikiem Otrzymywanie 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 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 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.

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 internetowej.

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.