Da li ste ljubitelj Grafane za praćenje metrika servera? Onda će vam se sigurno dopasti i Blackbox Exporter za monitoring web sajtova!
U ovom vodiču, naučićete kako da instalirate Blackbox Exporter na CentOS/RHEL sistemima, kao i da razumete njegovu primenu sa Prometheusom i Grafanom za praćenje performansi i dostupnosti web lokacija.
Šta je Blackbox Exporter?
Blackbox Exporter, razvijen od strane Prometheusa, služi za testiranje krajnjih tačaka kao što su HTTPS, HTTP, TCP, DNS i ICMP. Nakon što definišete krajnju tačku, Blackbox izvoznik generiše veliki broj metrika koje se mogu vizualizovati u Grafani. Jedna od ključnih funkcija je merenje vremena odziva.
Blackbox Exporter je rešenje koje se samostalno hostuje. Ukoliko tražite nešto slično, ali u formi SaaS ili rešenja u oblaku, razmislite o Grafana worldPing.
Preduslovi
Prometheus i Grafana moraju biti prethodno instalirani. Pratite ovaj članak za instalaciju Prometheusa i Grafane.
Instalacija Blackbox Exportera
Dozvolite mi da vam pokažem kako da instalirate Blackbox Exporter.
Korak 1: Preuzimanje Blackbox Exportera
Posetite zvaničnu stranicu kako biste preuzeli najnoviji Linux AMD64 paket Blackbox Exportera. Preuzimamo fajl blackbox_exporter-0.16.0.linux-amd64.tar.gz.
- Prenesite preuzeti fajl na server.
- Raspakujte fajlove iz paketa.
tar -xzf blackbox_exporter-0.16.0.linux-amd64.tar.gz
Proverite sve fajlove unutar Blackbox Exportera.
cd 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
Ovde su dva fajla od ključne važnosti: `blackbox_exporter` i `blackbox.yml`.
- `blackbox_exporter`: Ovo je izvršni fajl za pokretanje servisa.
- `blackbox.yml`: YAML fajl sa konfiguracijom Blackbox Exportera u kojem se definišu krajnje tačke za testiranje i moduli za pokretanje.
Sledeća komanda prikazuje sve zastavice koje se mogu koristiti sa Blackbox Exporterom.
./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.
Korak 2: Kreiranje korisnika za Blackbox
Ovo je opcionalan korak.
Možete kreirati novog korisnika za pokretanje Blackboxa ili koristiti postojećeg korisnika Prometheusa.
Obavezno dodelite odgovarajuće dozvole i vlasništvo nad fajlovima novom korisniku.
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
Korak 3: Konfigurisanje Blackbox servisa
Sada je vreme da Blackbox Exporter konfigurišemo kao servis unutar systemd-a. Kreirajte fajl `blackbox.service` i dodajte sledeći sadržaj, a zatim ga sačuvajte.
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
Ne zaboravite da promenite putanju do lokacije na kojoj ste raspakovali fajlove.
Korak 4: Pokretanje Blackbox Exportera
Izvršite sledeće komande kako biste pokrenuli Blackbox Exporter kao servis.
sudo systemctl daemon-reload
sudo systemctl start blackbox.service
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 techblog.co.rs.linuxvmimages.com systemd[1]: Started Blackbox Exporter Service.
Jun 13 17:28:40 techblog.co.rs.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 techblog.co.rs.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 techblog.co.rs.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 techblog.co.rs.linuxvmimages.com blackbox_exporter[30
Odlično!
Blackbox Exporter je uspešno pokrenut. Blackbox Exporter možete naći na `http://localhost:9115/`.
Integracija Blackboxa sa Prometheusom
Hajde da integrišemo Blackbox Exporter sa Prometheusom kako bismo počeli sa prikupljanjem metrika.
- Dodajte `blackbox` posao sa sledećim konfiguracijama u `prometheus.yml` fajl. Pratićemo performanse `https://www.telegraph.co.uk`.
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.
sudo systemctl restart prometheus.service
- Kada ponovo proverite mete na `http://localhost:9090/targets`, primetićete `blackbox` posao koji radi sa krajnjom tačkom koju ste definisali.
- Kliknite na `Graph` i pokrenite upit – `probe_http_duration_seconds`.
- Biće generisana vizualizacija podataka koje prati Prometheus.
Sada je vreme da vizualizujemo `blackbox` posao u Grafani.
Postoji mnogo načina da se započne, ali jedan od najbržih je da krenete sa gotovom kontrolnom tablom – Prometheus Blackbox Exporter.
- Idite na Grafana dashboard, kliknite na znak `+` i kliknite na `Import`.
- U `Import via grafana.com` polje unesite ID kontrolne table `7587` i kliknite na `Load`.
- Zatim izaberite Prometheus izvor podataka i kliknite na `Import`.
- Prometheus Blackbox Exporter dashboard će biti uvezen.
- Moći ćete da vizualizujete metrike kao što su trajanje globalne provere, status, trajanje HTTP-a, prosečno trajanje provere, prosečno DNS traženje, isticanje SSL-a i još mnogo toga.
- Sve su to odvojeni paneli na dashboardu. Hajde da detaljnije pogledamo `HTTP Duration` panel. Ovaj panel prikazuje vizualizaciju vremena potrebnog za povezivanje, obradu, DNS rešavanje, TLS i zahteve za transfer.
Na dashboardu postoji mnogo opcija za podešavanje. Možete promeniti vremenski period za koji želite da se vizualizacija prikaže. Takođe možete promeniti interval osvežavanja podataka; ovde novi podaci stižu na dashboard svakih 5 sekundi.
- Kada kliknete na strelicu nadole na `HTTP Duration`, dobićete opcije kao što su prikazane ispod. Kliknite na `edit`.
- Ispod panela za vizualizaciju, dobićete uređivač upita. Trenutno se vizualizuje upit prikazan na slici ispod – `probe_http_duration_seconds`.
- Postoji na stotine upita koje lako možete vizualizovati i dodati na svoj dashboard prema potrebi.
- Imate mnogo opcija da promenite tip vizualizacije. Prosečno trajanje sonde je prikazano na dashboardu u tekstualnom formatu. Na panelu za vizualizaciju sa desne strane kliknite na opciju `Gauge` za prosečno trajanje sonde.
- I vizualizacija će se promeniti na ovaj način.
Zaključak
Ovo je samo mali uvid u to koliko je lako pratiti performanse web lokacije pomoću Prometheusa Blackboxa i Grafane. Postoji mnogo opcija i toplo preporučujem da se igrate sa njima da biste ih bolje upoznali. Ako ste zainteresovani za učenje Grafane, pogledajte njihov online kurs.
Da li ste uživali čitajući članak? Šta kažete na to da ga podelite sa drugima?