El exportador de caja negra permite realizar pruebas de caja negra en puntos finales a través de HTTP, HTTPS, DNS, TCP, ICMP y gRPC.
Descargue el binario más adecuado desde la pestaña de lanzamientos
Entonces:
./blackbox_exporter <flags>
Nota: Es posible que desee habilitar ipv6 en la configuración de su ventana acoplable.
docker run --rm
-p 9115/tcp
--name blackbox_exporter
-v $(pwd):/config
quay.io/prometheus/blackbox-exporter:latest --config.file=/config/blackbox.yml
Al visitar http://localhost:9115/probe?target=google.com&module=http_2xx se obtendrán métricas para una sonda HTTP en google.com. La métrica probe_success
indica si la sonda se realizó correctamente. Agregar un parámetro debug=true
devolverá información de depuración para esa sonda.
Las métricas relativas al funcionamiento del propio exportador están disponibles en el punto final http://localhost:9115/metrics.
Blackbox Exporter admite TLS y autenticación básica. Esto permite un mejor control de los distintos puntos finales HTTP.
Para usar TLS y/o autenticación básica, debe pasar un archivo de configuración usando el parámetro --web.config.file
. El formato del archivo se describe en el repositorio del kit de herramientas del exportador.
Tenga en cuenta que TLS y la configuración de autenticación básica afectan a todos los puntos finales HTTP: /metrics para raspado, /probe para sondeo y la interfaz de usuario web.
make
Después de una construcción local exitosa:
docker build -t blackbox_exporter .
El exportador de Blackbox se configura mediante un archivo de configuración y opciones de línea de comandos (como qué archivo de configuración cargar, en qué puerto escuchar y el formato y nivel de registro).
El exportador de Blackbox puede recargar su archivo de configuración en tiempo de ejecución. Si la nueva configuración no está bien formada, los cambios no se aplicarán. Una recarga de configuración se activa enviando un SIGHUP
al proceso exportador de Blackbox o enviando una solicitud HTTP POST al punto final /-/reload
.
Para ver todos los indicadores de línea de comandos disponibles, ejecute ./blackbox_exporter -h
.
Para especificar qué archivo de configuración cargar, utilice el indicador --config.file
.
Además, también está disponible una configuración de ejemplo.
Actualmente se admiten HTTP, HTTPS (a través del probador http
), DNS, socket TCP, ICMP y gRPC (consulte la sección de permisos). Se pueden definir módulos adicionales para satisfacer sus necesidades.
El tiempo de espera de cada sonda se determina automáticamente a partir de scrape_timeout
en la configuración de Prometheus, y se reduce ligeramente para permitir retrasos en la red. Esto puede verse limitado aún más por el timeout
en el archivo de configuración del exportador de Blackbox. Si no se especifica ninguno, el valor predeterminado es 120 segundos.
El exportador de Blackbox implementa el patrón de exportador de múltiples objetivos, por lo que recomendamos leer la guía Comprensión y uso del patrón de exportador de múltiples objetivos para tener una idea general sobre la configuración.
Al exportador de caja negra se le debe pasar el destino como parámetro, esto se puede hacer con el reetiquetado.
Configuración de ejemplo:
scrape_configs :
- job_name : ' blackbox '
metrics_path : /probe
params :
module : [http_2xx] # Look for a HTTP 200 response.
static_configs :
- targets :
- http://prometheus.io # Target to probe with http.
- https://prometheus.io # Target to probe with https.
- http://example.com:8080 # Target to probe with http on port 8080.
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.
- job_name : ' blackbox_exporter ' # collect blackbox exporter's operational metrics.
static_configs :
- targets : ['127.0.0.1:9115']
Las sondas HTTP pueden aceptar un parámetro hostname
adicional que establecerá el encabezado Host
y TLS SNI. Esto puede resultar especialmente útil con dns_sd_config
:
scrape_configs :
- job_name : blackbox_all
metrics_path : /probe
params :
module : [ http_2xx ] # Look for a HTTP 200 response.
dns_sd_configs :
- names :
- example.com
- prometheus.io
type : A
port : 443
relabel_configs :
- source_labels : [__address__]
target_label : __param_target
replacement : https://$1/ # Make probe URL be like https://1.2.3.4:443/
- source_labels : [__param_target]
target_label : instance
- target_label : __address__
replacement : 127.0.0.1:9115 # The blackbox exporter's real hostname:port.
- source_labels : [__meta_dns_name]
target_label : __param_hostname # Make domain name become 'Host' header for probe requests
- source_labels : [__meta_dns_name]
target_label : vhost # and store it in 'vhost' label
La sonda ICMP requiere privilegios elevados para funcionar:
net.ipv4.ping_group_range
, la capacidad CAP_NET_RAW
o el usuario root.net.ipv4.ping_group_range
de forma predeterminada en /etc/sysctl.conf
o similar. De lo contrario, puede configurar net.ipv4.ping_group_range = 0 2147483647
para permitir que cualquier usuario pueda utilizar ping.setcap cap_net_raw+ep blackbox_exporter