Экспортер «черного ящика» позволяет проверять конечные точки «черного ящика» через HTTP, HTTPS, DNS, TCP, ICMP и gRPC.
Загрузите наиболее подходящий бинарный файл со вкладки «Релизы».
Затем:
./blackbox_exporter
Примечание. Возможно, вы захотите включить ipv6 в конфигурации докера.
docker run --rm
-p 9115/tcp
--name blackbox_exporter
-v $(pwd):/config
quay.io/prometheus/blackbox-exporter:latest --config.file=/config/blackbox.yml
Посещение http://localhost:9115/probe?target=google.com&module=http_2xx вернет показатели для HTTP-зонда на google.com. Метрика probe_success
указывает, была ли проверка успешной. Добавление параметра debug=true
вернет отладочную информацию для этого зонда.
Метрики, касающиеся работы самого экспортера, доступны в конечной точке http://localhost:9115/metrics.
Blackbox Exporter поддерживает TLS и базовую аутентификацию. Это обеспечивает лучший контроль над различными конечными точками HTTP.
Чтобы использовать TLS и/или базовую аутентификацию, вам необходимо передать файл конфигурации с помощью параметра --web.config.file
. Формат файла описан в репозитории экспортера-инструментария.
Обратите внимание, что настройки TLS и базовой аутентификации влияют на все конечные точки HTTP: /metrics для очистки, /probe для проверки и веб-интерфейс.
make
После успешной локальной сборки:
docker build -t blackbox_exporter .
Экспортер Blackbox настраивается с помощью файла конфигурации и флагов командной строки (например, какой файл конфигурации загружать, какой порт прослушивать, а также формат и уровень ведения журнала).
Экспортер Blackbox может перезагрузить файл конфигурации во время выполнения. Если новая конфигурация сформирована неправильно, изменения не будут применены. Перезагрузка конфигурации запускается отправкой SIGHUP
в процесс экспорта Blackbox или отправкой запроса HTTP POST на конечную точку /-/reload
.
Чтобы просмотреть все доступные флаги командной строки, запустите ./blackbox_exporter -h
.
Чтобы указать, какой файл конфигурации загружать, используйте флаг --config.file
.
Кроме того, доступен пример конфигурации.
В настоящее время поддерживаются HTTP, HTTPS (через http
-зондер), DNS, сокет TCP, ICMP и gRPC (см. раздел «Разрешения»). Дополнительные модули могут быть определены в соответствии с вашими потребностями.
Тайм-аут каждого зонда автоматически определяется из scrape_timeout
в конфигурации Prometheus, немного уменьшенного, чтобы учесть задержки в сети. Это может быть дополнительно ограничено timeout
в файле конфигурации экспортера Blackbox. Если ни один из них не указан, по умолчанию оно равно 120 секундам.
Экспортер Blackbox реализует шаблон многоцелевого экспортера, поэтому мы советуем прочитать руководство «Понимание и использование шаблона многоцелевого экспортера», чтобы получить общее представление о конфигурации.
Экспортеру черного ящика необходимо передать цель в качестве параметра, это можно сделать с помощью изменения метки.
Пример конфигурации:
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']
Зонды HTTP могут принимать дополнительный параметр hostname
, который будет устанавливать заголовок Host
и TLS SNI. Это может быть особенно полезно с 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
Для работы ICMP-зонда требуются повышенные привилегии:
net.ipv4.ping_group_range
, возможность CAP_NET_RAW
, либо пользователь root.net.ipv4.ping_group_range
может быть настроен по умолчанию в /etc/sysctl.conf
или аналогичном файле. Если нет, вы можете установить net.ipv4.ping_group_range = 0 2147483647
, чтобы любой пользователь мог использовать ping.setcap cap_net_raw+ep blackbox_exporter