¿Te encanta Grafana para el monitoreo de métricas de servidores? ¡También te encantará Blackbox Exporter para la supervisión de 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 del sitio web y el tiempo de actividad.
Exportador de caja negra de 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 Mundo GrafanaPing.
Prerequisites
Prometheus y Grafana deben estar preinstalados. Siga este artículo para instalar Prometheus y Grafana.
Blackbox Exporter Installation
Déjame mostrarte cómo instalar Blackbox exporter primero.
Paso 1: Descarga Blackbox Exporter
Visite la Página oficial para descargar el último paquete exportador de Linux AMD Blackbox. Estoy descargando el blackbox_exporter-0.16.0.linux-amd64.tar.gz
archivo.
- Transfiere el archivo descargado al servidor
- Extrae archivos del paquete.
[centos@geekflare ~]$ tar -xzf blackbox_exporter-0.16.0.linux-amd64.tar.gz
Verifique todos los archivos dentro del exportador Blackbox.
[centos@geekflare ~]$ cd blackbox_exporter-0.16.0.linux-amd64/
[centos@geekflare 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 de backbox que usted 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.
[centos@geekflare 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 un usuario para Blackbox
Esto es opcional.
Puede crear un nuevo usuario para ejecutar Blackbox o utilizar usuarios de Prometheus existentes para ejecutarlo.
Proporcione permisos y asigne la propiedad de todos sus archivos al nuevo usuario.
[centos@geekflare ~]$ sudo useradd -rs /bin/false blackbox
[centos@geekflare ~]$ sudo chmod -R 777 /home/centos/blackbox_exporter-0.16.0.linux-amd64
[centos@geekflare ~]$ 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 interno sistemad. Crea un archivo blackbox.service
y coloque las líneas mencionadas a continuación en el archivo y guárdelo.
[centos@geekflare ~]$ 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 olvide cambiar la ruta a la actual donde la extrajo.
Paso 4: Inicie Blackbox Exporter
Ejecute los siguientes comandos para iniciar el exportador de Blackbox como servicio.
[centos@geekflare ~]$ sudo systemctl daemon-reload
[centos@geekflare ~]$ sudo systemctl start blackbox.service
[centos@geekflare ~]$ 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 geekflare.linuxvmimages.com systemd[1]: Started Blackbox Exporter Service.
Jun 13 17:28:40 geekflare.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 geekflare.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 geekflare.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 geekflare.linuxvmimages.com blackbox_exporter[30
¡Excelente!
El exportador de Blackbox se ha iniciado correctamente. A http://localhost:9115/ puede encontrar Blackbox Exporter ejecutándose.

Integrating Blackbox with Prometheus
Integremos Blackbox Exporter con Prometheus para comenzar a raspar las métricas.
- Agrega una caja negra trabajo con las siguientes configuraciones dentro del prometeo.yml expediente. Voy a monitorear el desempeño de https://www.telegraph.co.uk.
[centos@geekflare ~]$ 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.
- Reinicie Prometheus.
[centos@geekflare ~]$ sudo systemctl restart prometheus.service
- Cuando verifica 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: sonda_http_duración_segundos.

- Se creará una visualización de los datos que está supervisando Prometheus.

Ahora es el momento de visualizar el trabajo de Blackbox en Grafana.
Hay muchas formas de comenzar, pero una de las más rápidas sería comenzar con un tablero listo para usar: Exportador de Prometheus Blackbox.
- Vaya al panel de Grafana, haga clic en + signo y haga clic en Importar.
- En Importar a través de grafana.com, ingrese la identificación del tablero 7587 y haga clic en Cargar.
- Luego seleccione la fuente de datos de Prometheus y haga clic en Importar.

- Se importará el panel de Prometheus Blackbox Exporter.
- Podrá visualizar métricas como la duración global de la sonda, el estado, la duración HTTP, la duración media de la sonda, la búsqueda de DNS media, la expiración de SSL y muchas más.


- Todos estos son paneles separados en el tablero. Déjame mostrarte el panel Duración HTTP en detalle. Este panel muestra la visualización de la duración del tiempo necesario para conectar, procesar, resolver, tls y transferir solicitudes.

Hay muchas opciones en el tablero con las que puedes jugar. Puede cambiar el intervalo de tiempo para 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, se está visualizando la consulta que se muestra en la siguiente instantánea: sonda_http_duración_segundos.

- Hay cientos de consultas que puede visualizar fácilmente y agregarlas a su panel de control 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. Desde el panel de visualización de la derecha, haga clic en el Calibre opción para la duración media 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 sugiero encarecidamente jugar con él para experimentarlo. Si tiene curiosidad por aprender a Grafana, consulte su curso en línea.