Jak monitorować wydajność witryny za pomocą Blackbox Exporter i Grafana?

Uwielbiasz Grafana do monitorowania metryk serwera? Pokochasz również Blackbox Exporter do monitorowania stron internetowych!

W tym samouczku nauczysz się instalować Blackbox Exporter na CentOS/RHEL i zrozumiesz, jak używać go z Prometheus i Grafana do monitorowania wydajności i czasu pracy witryny.

Co to jest Blackbox Exporter?

Eksporter czarnej skrzynki przez Prometheus służy do sondowania punktów końcowych, takich jak HTTPS, HTTP, TCP, DNS i ICMP. Po zdefiniowaniu punktu końcowego eksporter Blackbox generuje setki metryk, które można zwizualizować za pomocą Grafana. Mierzenie czasu reakcji to najważniejsza cecha eksportera Blackboksa.

Blackbox Exporter to samoobsługowe rozwiązanie. Jeśli szukasz czegoś podobnego, ale jako SaaS lub opartego na chmurze, możesz wypróbować Grafana worldPing.

Wymagania wstępne

Prometheus i Grafana muszą być wstępnie zainstalowane. Postępuj zgodnie z tym artykułem, aby zainstalować Prometheus i Grafana.

Instalacja eksportera Blackbox

Pozwól, że najpierw pokażę ci, jak zainstalować eksporter Blackbox.

Krok 1: Pobierz Blackbox Exporter

Idź do oficjalna strona aby pobrać najnowszy pakiet eksportera Linux AMD Blackbox. Pobieram plik blackbox_exporter-0.16.0.linux-amd64.tar.gz.

  • Przenieś pobrany plik na serwer
  • Wyodrębnij pliki z pakietu.
[[email protected] ~]$ tar -xzf blackbox_exporter-0.16.0.linux-amd64.tar.gz

Sprawdź wszystkie pliki w eksporterze Blackbox.

[[email protected] ~]$ cd blackbox_exporter-0.16.0.linux-amd64/
[[email protected] blackbox_exporter-0.16.0.linux-amd64]$ ls -l
total 16672
-rwxr-xr-x. 1 centos centos 17050332 Nov 11 2019 blackbox_exporter
-rw-r--r--. 1 centos centos 629 Nov 11 2019 blackbox.yml
-rw-r--r--. 1 centos centos 11357 Nov 11 2019 LICENSE
-rw-r--r--. 1 centos centos 94 Nov 11 2019 NOTICE

Istotne są tutaj dwa pliki blackbox_exporter i blackbox.yml.

  • blackbox_exporter: To jest plik wykonywalny do uruchamiania usługi.
  • blackbox.yml: plik YAML ze wszystkimi konfiguracjami eksportera zaplecza, w których definiujesz wszystkie punkty końcowe do sondowania i uruchamiane moduły.

Poniższe polecenie da ci wszystkie flagi, których możesz użyć z eksporterem Blackbox.

[[email protected] blackbox_exporter-0.16.0.linux-amd64]$ ./blackbox_exporter -h
usage: blackbox_exporter [<flags>]

Flags:
-h, --help Show context-sensitive help (also try --help-long and --help-man).

--config.file="blackbox.yml"
Blackbox exporter configuration file.
--web.listen-address=":9115"
The address to listen on for HTTP requests.

--timeout-offset=0.5 Offset to subtract from timeout in seconds.

--config.check If true validate the config file and then exit.

--history.limit=100 The maximum amount of items to keep in the history.

--web.external-url=<url>
The URL under which Blackbox exporter is externally reachable (for example, if Blackbox exporter is served via a
reverse proxy). Used for generating relative and absolute links back to Blackbox exporter itself. If the URL has a
path portion, it will be used to prefix all HTTP endpoints served by Blackbox exporter. If omitted, relevant URL
components will be derived automatically.

--web.route-prefix=<path>
Prefix for the internal routes of web endpoints. Defaults to path of --web.external-url.

--log.level=info Only log messages with the given severity or above. One of: [debug, info, warn, error]

--log.format=logfmt Output format of log messages. One of: [logfmt, json]
--version Show application version.

Krok 2: Utwórz użytkownika dla Blackboksa

Jest to opcjonalne.

Możesz albo utworzyć nowego użytkownika, aby uruchomić Blackbox, albo użyć istniejących użytkowników Prometheus, aby go uruchomić.

Przyznaj uprawnienia i przypisz prawa własności do wszystkich swoich plików nowemu użytkownikowi.

[[email protected] ~]$ sudo useradd -rs /bin/false blackbox
[[email protected] ~]$ sudo chmod -R 777 /home/centos/blackbox_exporter-0.16.0.linux-amd64
[[email protected] ~]$ sudo chown -R blackbox:blackbox /home/centos/blackbox_exporter-0.16.0.linux-amd64

Krok 3: Skonfiguruj usługę Blackbox

Nadszedł czas, aby skonfigurować Blackbox Exporter jako usługę wewnątrz systemd. Utwórz plik blackbox.service i umieść w nim wymienione poniżej linie i zapisz go.

[[email protected] ~]$ sudo gedit /etc/systemd/system/blackbox.service

[Unit]
Description=Blackbox Exporter Service
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=blackbox
Group=blackbox
ExecStart=/home/centos/blackbox_exporter-0.16.0.linux-amd64/blackbox_exporter --config.file==/home/centos/blackbox_exporter-0.16.0.linux-amd64/blackbox.yml

[Install]
WantedBy=multi-user.target

Nie zapomnij zmienić ścieżki na rzeczywistą, w której ją wyodrębniłeś.

Krok 4: Uruchom Blackbox Exporter

Uruchom poniższe polecenia, aby uruchomić eksporter Blackbox jako usługę.

[[email protected] ~]$ sudo systemctl daemon-reload
[[email protected] ~]$ sudo systemctl start blackbox.service
[[email protected] ~]$ sudo systemctl status blackbox.service
● blackbox.service - Blackbox Exporter Service
Loaded: loaded (/etc/systemd/system/blackbox.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-06-13 17:28:40 EDT; 1s ago
Main PID: 30427 (blackbox_export)
Tasks: 5
CGroup: /system.slice/blackbox.service
└─30427 /usr/local/bin/blackbox_exporter --config.file=/etc/blackbox.yml

Jun 13 17:28:40 newsblog.pl.linuxvmimages.com systemd[1]: Started Blackbox Exporter Service.
Jun 13 17:28:40 newsblog.pl.linuxvmimages.com blackbox_exporter[30427]: level=info ts=2020-06-13T21:28:40.283Z caller=main.go:212 msg="Starting b...b9a9)"
Jun 13 17:28:40 newsblog.pl.linuxvmimages.com blackbox_exporter[30427]: level=info ts=2020-06-13T21:28:40.283Z caller=main.go:213 msg="Build cont...SSING)
Jun 13 17:28:40 newsblog.pl.linuxvmimages.com blackbox_exporter[30427]: level=info ts=2020-06-13T21:28:40.283Z caller=main.go:225 msg="Loaded config file"
Jun 13 17:28:40 newsblog.pl.linuxvmimages.com blackbox_exporter[30

Świetny!

Eksporter Blackbox został pomyślnie uruchomiony. Pod adresem http://localhost:9115/ można znaleźć działającego Blackbox Exporter.

Integracja Blackboksa z Prometheusem

Zintegrujmy Blackbox Exporter z Prometheusem, aby zacząć zbierać dane.

  • Dodaj zadanie blackbox z poniższymi konfiguracjami w pliku prometheus.yml. Będę monitorować działanie https://www.telegraph.co.uk.
[[email protected] ~]$ sudo gedit /etc/prometheus/prometheus.yml

- job_name: 'blackbox'
metrics_path: /probe
params:
module: [http_2xx] # Look for a HTTP 200 response.
static_configs:
- targets:
- https://www.telegraph.co.uk
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 127.0.0.1:9115 # The blackbox exporter's real hostname:port.
[[email protected] ~]$ sudo systemctl restart prometheus.service
  • Kiedy ponownie sprawdzisz cele pod adresem http://localhost:9090/targets, znajdziesz zadanie czarnej skrzynki działające ze zdefiniowanym przeze mnie punktem końcowym.

  • Kliknij Graph i uruchom zapytanie – probe_http_duration_seconds.

  • Na podstawie danych monitorowanych przez Prometheus zostanie utworzona wizualizacja.

Teraz nadszedł czas na wizualizację pracy Blackboksa na Grafanie.

Istnieje wiele sposobów, aby zacząć, ale jednym z najszybszych byłoby rozpoczęcie od gotowego pulpitu nawigacyjnego – Eksporter Blackbox firmy Prometheus.

  • Przejdź do pulpitu nawigacyjnego Grafana, kliknij znak + i kliknij Importuj.
  • W Importuj przez grafana.com wpisz identyfikator pulpitu nawigacyjnego 7587 i kliknij Załaduj.
  • Następnie wybierz źródło danych Prometheus i kliknij Importuj.

  • Pulpit programu Prometheus Blackbox Exporter zostanie zaimportowany.
  • Będziesz mógł wizualizować metryki, takie jak globalny czas trwania sondy, status, czas trwania HTTP, średni czas trwania sondy, średnie wyszukiwanie DNS, wygaśnięcie SSL i wiele innych.

  • To wszystko są osobne panele na desce rozdzielczej. Pokażę szczegółowo panel Czas trwania HTTP. Ten panel pokazuje wizualizację czasu potrzebnego na połączenie, przetwarzanie, rozwiązywanie, tls i przesyłanie żądań.

Na pulpicie nawigacyjnym jest wiele opcji, z którymi możesz się bawić. Możesz zmienić zakres czasu, dla którego ma się pojawiać wizualizacja. Możesz także zmienić interwał czasowy w odświeżaniu danych; tutaj nowe dane pojawiają się na pulpicie nawigacyjnym co 5 sekund.

  • Po kliknięciu strzałki w dół czasu trwania HTTP zostaną wyświetlone opcje pokazane poniżej. Kliknij edytuj.

  • Pod panelem wizualizacji znajdziesz edytor zapytań. Obecnie trwa wizualizacja zapytania pokazanego na poniższej migawce — probe_http_duration_seconds.

  • Istnieją setki zapytań, które można łatwo zwizualizować i dodać do pulpitu nawigacyjnego zgodnie z wymaganiami.

  • Masz również wiele opcji zmiany typu wizualizacji. Średni czas trwania sondy jest prezentowany na pulpicie nawigacyjnym w formacie tekstowym. W panelu wizualizacji po prawej stronie kliknij opcję Guage dla średniego czasu trwania sondy.

  • I tak zmieni się wizualizacja.

Wniosek

Powyższe ma tylko dać wyobrażenie o tym, jak łatwo jest monitorować witrynę za pomocą Prometheus Blackbox i Grafana. Istnieje wiele opcji i zdecydowanie sugerowałbym zabawę z nim, aby tego doświadczyć. Jeśli jesteś ciekawy, jak nauczyć się Grafany, sprawdź jego kurs online.

Podobał Ci się artykuł? A co powiesz na dzielenie się ze światem?