Geekflare cuenta con el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliados comprando enlaces en este sitio.
Comparte en:

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

prometeo caja negra
Escáner de seguridad de aplicaciones web Invicti – la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

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

¿Qué es Blackbox Exporter?

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.

exportador de caja negra - geekflare

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í.
destino de trabajo blackbox - geekflare
  • Haga clic en el gráfico y ejecute la consulta: sonda_http_duración_segundos.
consulta de prometheus - geekflare
  • Se creará una visualización de los datos que está supervisando Prometheus.
visualización de prometheus - geekflare

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.
importación de grafana - geekflare
  • 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.
tablero de grafana - geekflare
tablero de grafana 1 - geekflare
  • 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.
Duración HTTP

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.

intervalo de tiempo
  • 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.
panel 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.
editor de consultas
  • Hay cientos de consultas que puede visualizar fácilmente y agregarlas a su panel de control según el requisito.
métrica
  • 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.
duración media de la sonda
  • Y así es como cambiará la visualización.
promedio de la duración de la sonda

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.

Gracias a nuestros patrocinadores
Más lecturas interesantes sobre el desarrollo
Impulse su negocio
Algunas de las herramientas y servicios para ayudar a que su negocio crezca.
  • Invicti utiliza Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en cuestión de horas.
    Prueba Invicti
  • Web scraping, proxy residencial, administrador de proxy, desbloqueador web, rastreador de motores de búsqueda y todo lo que necesita para recopilar datos web.
    Prueba Brightdata
  • Semrush es una solución de marketing digital todo en uno con más de 50 herramientas en SEO, redes sociales y marketing de contenido.
    Prueba Semrush
  • Intruder es un escáner de vulnerabilidades en línea que encuentra debilidades de ciberseguridad en su infraestructura, para evitar costosas filtraciones de datos.
    Intente Intruder