Používáte rádi Grafanu pro sledování serverových metrik? Pokud ano, pak si zamilujete také Blackbox Exporter pro monitorování webových stránek!
Tento návod vás provede instalací Blackbox Exporteru na systémy CentOS/RHEL a ukáže vám, jak jej efektivně využít ve spojení s Prometheus a Grafanou pro monitorování výkonu a dostupnosti vašich webových stránek.
Co je to Blackbox Exporter?
Blackbox Exporter, vyvinutý v rámci projektu Prometheus, slouží k testování různých koncových bodů, jako jsou HTTPS, HTTP, TCP, DNS a ICMP. Po definování konkrétního koncového bodu Blackbox Exporter generuje rozsáhlou škálu metrik, které lze následně vizualizovat v Grafaně. Jednou z jeho klíčových funkcí je měření doby odezvy.
Blackbox Exporter je řešení, které si sami hostujete. Pokud hledáte alternativu v podobě SaaS nebo cloudové služby, můžete vyzkoušet například Grafana worldPing.
Požadavky
Před zahájením instalace Blackbox Exporteru je nutné mít nainstalované a funkční systémy Prometheus a Grafana. Postup pro jejich instalaci naleznete v tomto článku.
Instalace Blackbox Exporteru
Následující kroky popisují postup instalace Blackbox Exporteru.
Krok 1: Stažení Blackbox Exporteru
Navštivte oficiální stránku pro stažení nejnovější verze balíčku Blackbox Exporteru pro Linux AMD. Konkrétně budeme stahovat soubor s názvem `blackbox_exporter-0.16.0.linux-amd64.tar.gz`.
- Přeneste stažený soubor na cílový server.
- Rozbalte soubory z archivu.
tar -xzf blackbox_exporter-0.16.0.linux-amd64.tar.gz
Po rozbalení si ověřte obsah rozbalené složky Blackbox Exporteru.
cd blackbox_exporter-0.16.0.linux-amd64/
ls -l
Výsledkem by měl být seznam souborů, ze kterých jsou důležité dva:
- `blackbox_exporter`: spustitelný soubor pro provoz služby.
- `blackbox.yml`: konfigurační soubor v YAML formátu, kde se definují koncové body pro testování a moduly.
Pro zobrazení všech parametrů, které můžete s Blackbox Exporterem použít, zadejte následující příkaz:
./blackbox_exporter -h
Výstup zobrazí dostupné volby, jako je konfigurační soubor, adresa pro poslech HTTP požadavků, timeout a další.
Krok 2: Vytvoření uživatele pro Blackbox Exporter
Tento krok je volitelný, avšak doporučený pro lepší správu práv.
Pro spuštění Blackbox Exporteru můžete vytvořit nového uživatele nebo použít existujícího, například uživatele Prometheus. Pokud se rozhodnete pro nového uživatele, dejte mu oprávnění a přiřaďte mu vlastnictví souborů Blackbox Exporteru.
sudo useradd -rs /bin/false blackbox
sudo chmod -R 777 /home/centos/blackbox_exporter-0.16.0.linux-amd64
sudo chown -R blackbox:blackbox /home/centos/blackbox_exporter-0.16.0.linux-amd64
Krok 3: Konfigurace služby Blackbox Exporter
Nyní je čas nastavit Blackbox Exporter jako službu systemd. Vytvořte soubor `blackbox.service` a vložte do něj níže uvedené nastavení:
sudo gedit /etc/systemd/system/blackbox.service
Obsah souboru `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
Nezapomeňte nahradit cestu k extrahovaným souborům vaší skutečnou cestou.
Krok 4: Spuštění Blackbox Exporteru
Pro spuštění služby Blackbox Exporteru použijte následující příkazy:
sudo systemctl daemon-reload
sudo systemctl start blackbox.service
sudo systemctl status blackbox.service
Po spuštění by se měla zobrazit podobná zpráva, která potvrzuje, že Blackbox Exporter běží:
● 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 etechblog.cz.linuxvmimages.com systemd[1]: Started Blackbox Exporter Service.
Jun 13 17:28:40 etechblog.cz.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 etechblog.cz.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 etechblog.cz.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 etechblog.cz.linuxvmimages.com blackbox_exporter[30
Výborně! Blackbox Exporter je nyní úspěšně spuštěn a dostupný na adrese `http://localhost:9115/`.
Integrace Blackbox Exporteru s Prometheem
Pojďme integrovat Blackbox Exporter s Prometheem, abychom mohli začít shromažďovat metriky.
- V souboru `prometheus.yml` přidejte novou úlohu `blackbox` s následující konfigurací. Jako testovací cíl budeme monitorovat výkon webové stránky `https://www.telegraph.co.uk`.
sudo gedit /etc/prometheus/prometheus.yml
Přidejte následující konfiguraci:
- job_name: 'blackbox'
metrics_path: /probe
params:
module: [http_2xx] # Očekáváme HTTP 200 odpověď.
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 # Adresa a port Blackbox Exporteru.
Po přidání konfigurace restartujte službu Prometheus:
sudo systemctl restart prometheus.service
- Po restartu Promethea zkontrolujte na stránce `http://localhost:9090/targets`, zda je úloha `blackbox` spuštěna a monitoruje definovaný koncový bod.
- V grafickém rozhraní Prometheus vyberte graf a zadejte dotaz `probe_http_duration_seconds`.
- Graf Prometheus vizualizuje data, která jsou monitorována.
Nyní je čas vizualizovat data z Blackbox Exporteru v Grafaně.
Nejrychlejším způsobem, jak začít, je importovat již hotový dashboard – Prometheus Blackbox Exporter.
- V Grafaně klikněte na ikonu „+“ a vyberte „Import“.
- Vložte ID dashboardu `7587` do pole „Import via grafana.com“ a klikněte na „Load“.
- Poté vyberte zdroj dat „Prometheus“ a klikněte na „Import“.
- Dashboard Prometheus Blackbox Exporter se naimportuje.
- Zobrazí se metriky jako globální doba trvání sondy, status, doba trvání HTTP, průměrná doba trvání sondy, průměrné vyhledávání DNS, vypršení platnosti SSL a další.
- Každá metrika je vizualizovaná na samostatném panelu. Jako příklad si prohlédneme panel „HTTP Duration“. Tento panel zobrazuje vizualizaci doby trvání připojení, zpracování, vyřešení, TLS a doby trvání samotného požadavku.
Na dashboardu máte k dispozici mnoho možností. Můžete měnit časový rozsah, v kterém se vizualizace zobrazuje, a také interval pro aktualizaci dat (zde každých 5 sekund).
- Po kliknutí na šipku dolů u panelu „HTTP Duration“ se zobrazí možnosti. Klikněte na „Edit“ pro úpravu panelu.
- V dolní části panelu je editor dotazů. V současnosti se vizualizuje dotaz `probe_http_duration_seconds`.
- Můžete vizualizovat stovky dotazů a přidat je na svůj dashboard podle potřeby.
- Máte k dispozici mnoho možností, jak změnit typ vizualizace. Na dashboardu je například „Průměrná doba trvání sondy“ zobrazena jako text. Na panelu vizualizace vpravo klikněte na možnost Měření „průměrné doby trvání sondy“.
- A takto se změní i vizualizace.
Závěr
Tento článek demonstruje, jak snadné je monitorování webových stránek pomocí Prometheus, Blackbox Exporteru a Grafany. Možností je mnoho a doporučujeme si s nimi pohrát. Pokud vás zajímá Grafana, můžete se podívat na jejich online kurz.
Líbil se vám článek? Sdílejte ho s ostatními!