Hur övervakar man webbplatsens prestanda med Blackbox Exporter och Grafana?

By rik

Övervaka din webbplats med Blackbox Exporter, Prometheus och Grafana

Om du uppskattar Grafana för att övervaka serverstatistik, kommer du med all säkerhet att gilla Blackbox Exporter för webbplatsövervakning!

Den här guiden kommer att visa dig hur du installerar Blackbox Exporter på CentOS/RHEL, och hur du använder det tillsammans med Prometheus och Grafana för att hålla koll på din webbplats prestanda och tillgänglighet.

Vad är Blackbox Exporter?

Blackbox Exporter från Prometheus används för att inspektera olika typer av slutpunkter, såsom HTTPS, HTTP, TCP, DNS och ICMP. När du har konfigurerat en slutpunkt, genererar Blackbox Exporter en omfattande uppsättning mätvärden som sedan kan visualiseras med Grafana. Den främsta styrkan hos Blackbox Exporter är förmågan att mäta responstider.

Blackbox Exporter är en lösning du installerar och hostar själv. Om du letar efter en liknande tjänst, men som SaaS eller molnbaserad, kan du överväga Grafana Cloud (tidigare Grafana worldPing).

Förberedelser

För att följa denna guide behöver du ha Prometheus och Grafana installerade. Se till att du har dessa förberett innan du fortsätter.

Installera Blackbox Exporter

Låt oss nu titta på hur du installerar Blackbox Exporter.

Steg 1: Ladda ner Blackbox Exporter

Besök den officiella nedladdningssidan för att hämta det senaste paketet för Linux AMD Blackbox Exporter. I detta exempel använder vi `blackbox_exporter-0.16.0.linux-amd64.tar.gz`.

  • Ladda upp den nedladdade filen till din server.
  • Packa upp filerna från arkivet.

  tar -xzf blackbox_exporter-0.16.0.linux-amd64.tar.gz
  

Kontrollera att alla filer finns i Blackbox exporter katalogen.


 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

De två filerna `blackbox_exporter` och `blackbox.yml` är de viktigaste här.

  • `blackbox_exporter`: Denna fil är den körbara filen som startar tjänsten.
  • `blackbox.yml`: Denna YAML-fil innehåller konfigurationen för Blackbox Exporter, där du definierar de slutpunkter som ska övervakas och de moduler som ska användas.

Kommandot nedan visar alla de flaggor som kan användas med Blackbox Exporter.


./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: Skapa en användare för Blackbox

Detta steg är valfritt.

Du kan antingen skapa en ny användare för att köra Blackbox, eller så kan du använda den befintliga Prometheus-användaren.

Ge den nya användaren behörighet och äganderätt till filerna.


  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
  

Steg 3: Konfigurera Blackbox som en tjänst

Nu är det dags att konfigurera Blackbox Exporter som en tjänst i systemd. Skapa en fil `blackbox.service` och kopiera in följande konfiguration, justera sökvägen efter din installation.


  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
  

Se till att du ändrar sökvägen så att den pekar på platsen där du har extraherat Blackbox Exporter.

Steg 4: Starta Blackbox Exporter

Använd följande kommandon för att starta Blackbox Exporter som en tjänst.


  sudo systemctl daemon-reload
  sudo systemctl start blackbox.service
  sudo systemctl status blackbox.service
  

Utdata från statuskommandot ska likna följande:


  ● 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 adminvista.com.linuxvmimages.com systemd[1]: Started Blackbox Exporter Service.
  Jun 13 17:28:40 adminvista.com.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 adminvista.com.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 adminvista.com.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 adminvista.com.linuxvmimages.com blackbox_exporter[30

Nu är Blackbox Exporter igång och tillgänglig på http://localhost:9115/.

Integrera Blackbox med Prometheus

Låt oss integrera Blackbox Exporter med Prometheus för att börja samla in statistik.

  • Lägg till en ”blackbox” job konfiguration i din `prometheus.yml` fil, enligt exemplet nedan. Här övervakar vi 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
  
  • När du kollar dina Prometheus mål på http://localhost:9090/targets kommer du att se ”blackbox” jobbet köra med den konfigurerade slutpunkten.
  • Klicka på ”Graph” och kör frågan – `probe_http_duration_seconds`.

  • En grafisk visualisering kommer att skapas baserat på data som samlas in av Prometheus.

Nu är det dags att visualisera Blackbox-data i Grafana.

Ett av de snabbaste sätten att komma igång är att använda en färdig instrumentpanel – Prometheus Blackbox Exporter.

  • I Grafana, klicka på plustecknet (+) och välj ”Import”.
  • Under ”Import via grafana.com” anger du dashboard ID `7587` och klickar på ”Load”.
  • Välj din Prometheus-datakälla och klicka på ”Import”.

  • Nu är Prometheus Blackbox Exporter instrumentpanelen importerad.
  • Du kan nu visualisera mätvärden som ”Global Probe Duration”, ”Status”, ”HTTP Duration”, ”Average Probe Duration”, ”Average DNS Lookup”, ”SSL Expiry” och många fler.

  • Detta är olika paneler på instrumentpanelen. Låt oss titta närmare på panelen ”HTTP Duration”. Denna panel visar tiden det tar för anslutning, bearbetning, upplösning, TLS-handskakning och överföring.

Det finns många inställningar på instrumentpanelen som du kan experimentera med. Du kan ändra tidsintervallet som visualiseringen visar. Du kan också ändra uppdateringsintervallet för datan; som standard uppdateras instrumentpanelen var 5:e sekund.

  • Klicka på nedåtpilen för ”HTTP Duration” och välj ”Redigera”.

  • Under visualiseringspanelen får du en frågeredigerare. Den nuvarande frågan som visualiseras är `probe_http_duration_seconds`.

  • Det finns hundratals frågor som kan visualiseras och läggas till på instrumentpanelen efter behov.

  • Du har också många alternativ för att ändra visualiseringstypen. Till exempel är ”Average Probe Duration” visad som text. Från visualiseringspanelen på höger sida väljer du ”Mät” under ”Average Probe Duration”.

  • Så här kommer visualiseringen att ändras.

Slutsats

Denna guide ger en översikt över hur enkelt det är att övervaka din webbplats med Prometheus, Blackbox och Grafana. Det finns många möjligheter att utforska, så det rekommenderas att experimentera för att få en bättre förståelse. Om du vill lära dig mer om Grafana, kan du kolla in denna onlinekurs.

Hoppas du uppskattade artikeln! Dela den gärna med andra.