Overvåk nettstedsytelsen med Blackbox Exporter, Prometheus og Grafana
Er du begeistret for Grafana for overvåkning av servermålinger? Da vil du garantert også sette pris på Blackbox Exporter for å holde øye med nettstedet ditt!
I denne veiledningen lærer du hvordan du installerer Blackbox Exporter på CentOS/RHEL og hvordan du bruker den sammen med Prometheus og Grafana for å overvåke nettstedets ytelse og oppetid.
Hva er Blackbox Exporter?
Blackbox-eksportøren, utviklet av Prometheus, brukes til å undersøke endepunkter som HTTPS, HTTP, TCP, DNS og ICMP. Når du har definert et endepunkt, genererer Blackbox Exporter en mengde data som kan visualiseres i Grafana. Det sentrale er måling av responstid.
Blackbox Exporter er en selvhostet løsning. Hvis du ønsker noe lignende, men som en SaaS- eller skybasert tjeneste, kan du vurdere Grafana worldPing.
Forberedelser
Før du begynner, må Prometheus og Grafana være installert. Følg denne artikkelen for å installere Prometheus og Grafana.
Installasjon av Blackbox Exporter
La oss se hvordan du installerer Blackbox Exporter først.
Steg 1: Last ned Blackbox Exporter
Gå til den offisielle nettsiden for å laste ned den nyeste Linux AMD Blackbox-eksportpakken. Jeg laster ned filen `blackbox_exporter-0.16.0.linux-amd64.tar.gz`.
- Overfør den nedlastede filen til serveren.
- Pakk ut filene fra pakken.
[[email protected] ~]$ tar -xzf blackbox_exporter-0.16.0.linux-amd64.tar.gz
Sjekk innholdet i Blackbox Exporter-mappen.
[[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
De to filene `blackbox_exporter` og `blackbox.yml` er de viktigste her.
- `blackbox_exporter`: Dette er den kjørbare filen som starter tjenesten.
- `blackbox.yml`: En YAML-fil som inneholder alle konfigurasjonene for Blackbox Exporter. Her definerer du hvilke endepunkter og moduler som skal overvåkes.
Kommandoen nedenfor gir deg oversikt over alle flaggene du kan bruke med Blackbox Exporter:
[[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.
Steg 2: Opprett bruker for Blackbox
Dette trinnet er valgfritt.
Du kan velge å opprette en ny bruker for å kjøre Blackbox, eller du kan bruke en eksisterende Prometheus-bruker.
Gi nødvendige tillatelser og tildel eierskap av filene til den nye brukeren:
[[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
Steg 3: Konfigurer Blackbox-tjenesten
Nå er det på tide å konfigurere Blackbox Exporter som en tjeneste i systemd. Lag en fil `blackbox.service` og legg inn følgende konfigurasjon, deretter lagre den.
[[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
Husk å endre stien til din faktiske plassering for Blackbox Exporter.
Steg 4: Start Blackbox Exporter
Bruk følgende kommandoer for å starte Blackbox Exporter som en tjeneste:
[[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 tipsbilk.net.linuxvmimages.com systemd[1]: Started Blackbox Exporter Service.
Jun 13 17:28:40 tipsbilk.net.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 tipsbilk.net.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 tipsbilk.net.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 tipsbilk.net.linuxvmimages.com blackbox_exporter[30
Utmerket!
Blackbox Exporter kjører nå. Du finner den på http://localhost:9115/.
Integrasjon av Blackbox med Prometheus
La oss integrere Blackbox Exporter med Prometheus for å begynne å samle inn data.
- Legg til en «blackbox»-jobb med følgende konfigurasjoner i `prometheus.yml`-filen. Jeg skal overvåke ytelsen til https://www.telegraph.co.uk.
[[email protected] ~]$ sudo gedit /etc/prometheus/prometheus.yml
- job_name: 'blackbox'
metrics_path: /probe
params:
module: [http_2xx] # Ser etter et HTTP 200-svar.
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 # Den faktiske verten:port for Blackbox Exporter.
[[email protected] ~]$ sudo systemctl restart prometheus.service
- Når du sjekker målene på http://localhost:9090/targets igjen, vil du se at en blackbox-jobb kjører med endepunktet du definerte.
- Klikk på grafen og kjør spørringen – `probe_http_duration_seconds`.
- En visualisering av dataene som overvåkes av Prometheus vil nå bli generert.
Nå er tiden inne for å visualisere Blackbox-jobben i Grafana.
Det finnes mange måter å gjøre dette på, men en av de raskeste er å starte med et ferdig dashbord – Prometheus Blackbox Exporter.
- Gå til Grafana-dashbordet, klikk på +-tegnet og klikk på Importer.
- I «Importer via grafana.com» legger du inn dashbord-ID `7587` og klikker på Last inn.
- Velg deretter Prometheus-datakilden og klikk på Importer.
- Prometheus Blackbox Exporter-dashbordet vil nå bli importert.
- Du vil nå kunne visualisere data som Global Probe Duration, Status, HTTP Duration, Average Probe Duration, Average DNS Lookup, SSL Expiry, og mange flere.
- Dette er alle separate paneler i dashbordet. La oss se nærmere på HTTP Duration-panelet. Dette panelet viser visualiseringer av tiden det tar for tilkobling, behandling, oppslag, TLS og overføringsforespørsler.
Det finnes mange muligheter i dashbordet du kan utforske. Du kan endre tidsperioden som visualiseringene skal vises for. Du kan også endre tidsintervallet for dataoppdateringer. Her oppdateres dashbordet hvert 5. sekund.
- Når du klikker på nedoverpilen ved siden av HTTP Duration, får du opp alternativene som vist under. Klikk på Rediger.
- I visualiseringspanelet finner du en spørringsredigerer. Spørringen som brukes til den aktuelle visualiseringen vises i øyeblikksbildet under – `probe_http_duration_seconds`.
- Det finnes hundrevis av spørringer som du enkelt kan visualisere og legge til dashbordet i henhold til dine behov.
- Du har mange alternativer for å endre visualiseringstypen. Den gjennomsnittlige sondevarigheten vises på dashbordet i tekstformat. Fra visualiseringspanelet til høyre klikker du på Målealternativet for gjennomsnittlig sondevarighet.
- Og slik vil visualiseringen endre seg.
Konklusjon
Dette gir deg en oversikt over hvor enkelt det er å overvåke nettsteder med Prometheus Blackbox og Grafana. Det finnes mange funksjoner, og vi anbefaler deg å utforske dem selv. Hvis du er interessert i å lære mer om Grafana, ta en titt på denne nettbaserte kursen.
Håper du likte denne artikkelen! Del den gjerne med andre.