Come monitorare le prestazioni del sito Web con Blackbox Exporter e Grafana?

Ti piace Grafana per il monitoraggio delle metriche del server? Ti piacerà anche Blackbox Exporter per il monitoraggio dei siti web!

In questo tutorial imparerai a installare Blackbox Exporter su CentOS/RHEL e capirai come usarlo con Prometheus e Grafana per monitorare le prestazioni e il tempo di attività del sito web.

Cos’è Blackbox Exporter?

Esportatore di scatole nere di Prometheus viene utilizzato per sondare endpoint come HTTPS, HTTP, TCP, DNS e ICMP. Dopo aver definito l’endpoint, l’esportatore Blackbox genera centinaia di metriche che possono essere visualizzate utilizzando Grafana. La misurazione del tempo di risposta è la caratteristica più importante dell’esportatore Blackbox.

Blackbox Exporter è una soluzione self-hosted. Se stai cercando qualcosa di simile, ma come SaaS o basato su cloud, puoi provare Grafana worldPing.

Prerequisiti

Prometheus e Grafana devono essere preinstallati. Segui questo articolo per installare Prometheus e Grafana.

Installazione di Blackbox Exporter

Lascia che ti mostri prima come installare Blackbox Exporter.

Passaggio 1: scarica Blackbox Exporter

Vai al pagina ufficiale per scaricare l’ultimo pacchetto di esportazione Linux AMD Blackbox. Sto scaricando il file blackbox_exporter-0.16.0.linux-amd64.tar.gz.

  • Trasferisci il file scaricato sul server
  • Estrarre i file dal pacchetto.
[[email protected] ~]$ tar -xzf blackbox_exporter-0.16.0.linux-amd64.tar.gz

Controlla tutti i file all’interno di Blackbox Exporter.

[[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

Due file blackbox_exporter e blackbox.yml sono importanti qui.

  • blackbox_exporter: questo è un file eseguibile per l’esecuzione del servizio.
  • blackbox.yml: un file YAML con tutte le configurazioni dell’esportatore backbox in cui definisci tutti gli endpoint da sondare e i moduli da eseguire.

Il comando seguente ti fornirà tutti i flag che puoi utilizzare con 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.

Passaggio 2: creare un utente per Blackbox

Questo è facoltativo.

Puoi creare un nuovo utente per eseguire Blackbox o utilizzare gli utenti Prometheus esistenti per eseguirlo.

Fornisci le autorizzazioni e assegna la proprietà di tutti i suoi file al nuovo utente.

[[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

Passaggio 3: configurare il servizio Blackbox

È ora di configurare Blackbox Exporter come servizio all’interno di systemd. Crea un file blackbox.service e inserisci le righe menzionate di seguito nel file e salvalo.

[[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

Non dimenticare di cambiare il percorso in quello effettivo in cui l’hai estratto.

Passaggio 4: avviare Blackbox Exporter

Esegui i comandi seguenti per avviare l’esportatore di Blackbox come servizio.

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

Grande!

L’esportatore di Blackbox è stato avviato correttamente. Su http://localhost:9115/ puoi trovare Blackbox Exporter in esecuzione.

Integrazione di Blackbox con Prometheus

Integriamo Blackbox Exporter con Prometheus per iniziare a raschiare le metriche.

  • Aggiungi un lavoro blackbox con le seguenti configurazioni all’interno del file prometheus.yml. Monitorerò le prestazioni di 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
  • Quando controlli di nuovo gli obiettivi su http://localhost:9090/targets, troverai un lavoro blackbox in esecuzione con l’endpoint che ho definito.

  • Fare clic sul grafico ed eseguire la query – probe_http_duration_seconds.

  • Verrà creata una visualizzazione sui dati monitorati da Prometheus.

Ora è il momento di visualizzare il lavoro Blackbox su Grafana.

Ci sono molti modi per iniziare, ma uno dei più veloci sarebbe iniziare con una dashboard già pronta: Prometheus esportatore di scatole nere.

  • Vai alla dashboard di Grafana, fai clic su + firma e fai clic su Importa.
  • In Importa tramite grafana.com, inserisci l’ID dashboard 7587 e fai clic su Carica.
  • Quindi selezionare l’origine dati Prometheus e fare clic su Importa.

  • La dashboard di Prometheus Blackbox Exporter verrà importata.
  • Sarai in grado di visualizzare metriche come Durata sonda globale, Stato, Durata HTTP, Durata media sonda, Ricerca DNS media, Scadenza SSL e molte altre.

  • Questi sono tutti pannelli separati sul cruscotto. Permettetemi di mostrare il pannello Durata HTTP in dettaglio. Questo pannello mostra la visualizzazione della durata del tempo impiegato per le richieste di connessione, elaborazione, risoluzione, tls e trasferimento.

Ci sono molte opzioni sulla dashboard con cui puoi giocare. È possibile modificare l’intervallo di tempo per il quale si desidera visualizzare la visualizzazione. È inoltre possibile modificare l’intervallo di tempo nell’aggiornamento dei dati; qui, i nuovi dati arrivano nella dashboard ogni 5 secondi.

  • Quando fai clic sulla freccia giù della Durata HTTP, otterrai le opzioni mostrate di seguito. Clicca su modifica.

  • Sotto il pannello di visualizzazione, otterrai un editor di query. Attualmente, viene visualizzata la query mostrata nell’istantanea di seguito: probe_http_duration_seconds.

  • Ci sono centinaia di query che puoi facilmente visualizzare e aggiungerle alla tua dashboard secondo i requisiti.

  • Hai molte opzioni per cambiare anche il tipo di visualizzazione. La durata media del probe è presente sul cruscotto in formato testo. Dal pannello di visualizzazione sulla destra, fare clic sull’opzione Calibro per la durata media della sonda.

  • Ed è così che cambierà la visualizzazione.

Conclusione

Quanto sopra è solo per darti un’idea di quanto sia facile monitorare il sito web con Prometheus Blackbox e Grafana. Ci sono molte opzioni e suggerirei caldamente di giocarci per sperimentarlo. Se sei curioso di imparare Grafana, dai un’occhiata al suo corso in linea.

Ti è piaciuto leggere l’articolo? Che ne dici di condividere con il mondo?