¿Cómo monitorear el rendimiento del sitio web con Blackbox Exporter y Grafana?

¿Te encanta Grafana para monitorear las métricas del servidor? ¡También te encantará Blackbox Exporter para monitorear sitios web!

En este tutorial, aprenderá a instalar Blackbox Exporter en CentOS/RHEL y comprenderá cómo usarlo con Prometheus y Grafana para monitorear el rendimiento y el tiempo de actividad del sitio web.

¿Qué es Blackbox Exportador?

Exportador de caja negra by Prometheus se utiliza para sondear puntos finales como HTTPS, HTTP, TCP, DNS e ICMP. Después de definir el punto final, el exportador de Blackbox genera cientos de métricas que se pueden visualizar con Grafana. Medir el tiempo de respuesta es la característica más importante del exportador Blackbox.

Blackbox Exporter es una solución autohospedada. Si está buscando algo similar, pero como SaaS o basado en la nube, puede probar Grafana worldPing.

requisitos previos

Prometheus y Grafana deben estar preinstalados. Siga este artículo para instalar Prometheus y Grafana.

Instalación del Exportador Blackbox

Déjame mostrarte cómo instalar el exportador de Blackbox primero.

Paso 1: Descarga el Exportador de Blackbox

Ve a la Página Oficial para descargar el último paquete exportador Linux AMD Blackbox. Estoy descargando el archivo blackbox_exporter-0.16.0.linux-amd64.tar.gz.

  • Transferir el archivo descargado al servidor
  • Extraer archivos del paquete.
[[email protected] ~]$ tar -xzf blackbox_exporter-0.16.0.linux-amd64.tar.gz

Verifique todos los archivos dentro del exportador de Blackbox.

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

Dos archivos blackbox_exporter y blackbox.yml son importantes aquí.

  • blackbox_exporter: este es un archivo ejecutable para ejecutar el servicio.
  • blackbox.yml: un archivo YAML con todas las configuraciones del exportador backbox que define todos los puntos finales para sondear y los módulos para ejecutar.

El siguiente comando le dará todas las banderas que puede usar con el exportador Blackbox.

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

Paso 2: Crear usuario para Blackbox

Esto es opcional.

Puede crear un nuevo usuario para ejecutar Blackbox o usar usuarios de Prometheus existentes para ejecutarlo.

Proporcione permisos y asigne la propiedad de todos sus archivos al nuevo usuario.

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

Paso 3: configurar el servicio Blackbox

Es hora de configurar Blackbox Exporter como un servicio dentro de systemd. Cree un archivo blackbox.service y coloque las líneas mencionadas a continuación en el archivo y guárdelo.

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

No olvides cambiar la ruta a la real donde la extrajiste.

Paso 4: Inicie Blackbox Exporter

Ejecute los siguientes comandos para iniciar el exportador de Blackbox como un servicio.

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

¡Excelente!

El exportador Blackbox se ha iniciado con éxito. En http://localhost:9115/ puede encontrar Blackbox Exporter ejecutándose.

Integrando Blackbox con Prometheus

Integremos Blackbox Exporter con Prometheus para comenzar a raspar las métricas.

  • Agregue un trabajo de caja negra con las siguientes configuraciones dentro del archivo prometheus.yml. Voy a monitorear el rendimiento de 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
  • Cuando verifique los objetivos en http://localhost:9090/targets nuevamente, encontrará un trabajo de caja negra ejecutándose con el punto final que definí.

  • Haga clic en el gráfico y ejecute la consulta: probe_http_duration_seconds.

  • Se creará una visualización de los datos que supervisa Prometheus.

Ahora es el momento de visualizar el trabajo de Blackbox en Grafana.

Hay muchas formas de ponerlo en marcha, pero una de las más rápidas sería comenzar con un panel de control listo para usar: Exportador Prometheus Blackbox.

  • Vaya al panel de control de Grafana, haga clic en el signo + y haga clic en Importar.
  • En Importar a través de grafana.com, coloque el id del tablero 7587 y haga clic en Cargar.
  • Luego seleccione la fuente de datos de Prometheus y haga clic en Importar.

  • El panel de Prometheus Blackbox Exporter se importará.
  • Podrá visualizar métricas como la duración de la sonda global, el estado, la duración de HTTP, la duración promedio de la sonda, la búsqueda de DNS promedio, la caducidad de SSL y muchas más.

  • Todos estos son paneles separados en el tablero. Permítame mostrarle el panel Duración de HTTP en detalle. Este panel muestra la visualización del tiempo de duración de las solicitudes de conexión, procesamiento, resolución, tls y transferencia.

Hay muchas opciones en el tablero con las que puedes jugar. Puede cambiar el intervalo de tiempo en el que desea que aparezca la visualización. También puede cambiar el intervalo de tiempo en la actualización de datos; aquí, los nuevos datos llegan al tablero cada 5 segundos.

  • Cuando haga clic en la flecha hacia abajo de Duración HTTP, obtendrá las opciones que se muestran a continuación. Haga clic en editar.

  • Debajo del panel de visualización, obtendrá un editor de consultas. Actualmente, la consulta que se muestra en la siguiente instantánea se está visualizando: probe_http_duration_seconds.

  • Hay cientos de consultas que puede visualizar fácilmente y agregarlas a su tablero según el requisito.

  • También tiene muchas opciones para cambiar el tipo de visualización. La duración promedio de la sonda está presente en el tablero en formato de texto. En el panel de visualización de la derecha, haga clic en la opción Calibre para la duración promedio de la sonda.

  • Y así es como cambiará la visualización.

Conclusión

Lo anterior es solo para darle una idea de lo fácil que es monitorear el sitio web con Prometheus Blackbox y Grafana. Hay muchas opciones, y recomendaría encarecidamente jugar con él para experimentarlo. Si tienes curiosidad por aprender Grafana, echa un vistazo a su curso por Internet.

¿Te gustó leer el artículo? ¿Qué tal compartir con el mundo?