Утилита Prometheus Blackbox Exporter#
Blackbox Exporter — это экспортер Prometheus, предназначенный для мониторинга сетевых сервисов (endpoints) посредством «черного ящика» (black-box probing). Поддерживает следующие протоколы:
HTTP (включая HTTPS и HTTP/2);
DNS;
TCP;
ICMP (требует привилегий);
TLS (проверка сертификатов без отправки данных приложения);
gRPC (на основе HTTP/2 и протобафов).
Позволяет собирать метрики, которые могут быть использованы для анализа состояния внешних и внутренних сервисов. Blackbox Exporter работает, отправляя запросы к целевым сервисам и анализируя их ответы, что позволяет выявлять проблемы с доступностью, временем ответа и корректностью работы.
Установка#
Для установки Blackbox Exporter выполните команду:
dnf install blackbox_exporter
Сборка и запуск#
Blackbox Exporter можно собрать и запустить с указанием конфигурационного файла:
blackbox_exporter --config.file=blackbox.yml
Или с использованием Docker-образа:
podman run --rm \
-p 9115/tcp \
--name blackbox_exporter \
-v $(pwd):/config \
quay.io/prometheus/blackbox-exporter:latest --config.file=/config/blackbox.yml
Примечание
Для ICMP-проб требуется дополнительная настройка привилегий. В Linux это может быть достигнуто с помощью CAP_NET_RAW или запуском контейнера в привилегированном режиме (--privileged).
Конфигурация#
Blackbox Exporter настраивается через YAML-файл (по умолчанию blackbox.yml). Пример конфигурации:
modules:
http_2xx:
prober: http
timeout: 5s
http:
method: GET
icmp:
prober: icmp
timeout: 5s
Использование#
Blackbox Exporter предоставляет HTTP endpoint /probe, который принимает два обязательных параметра:
target— адрес цели для проверки (например,https://example.com);module— имя модуля из конфигурационного файла, определяющего тип пробы.
Пример запроса:
curl "http://localhost:9115/probe?target=example.com&module=http_2xx"
Blackbox Exporter предоставляет метрики в формате текстового протокола Prometheus по адресу http://localhost:9115/metrics.
Пример вывода:
probe_success 1
probe_duration_seconds 0.123
Интеграция с Prometheus#
Чтобы Prometheus мог использовать Blackbox Exporter для пробы внешних сервисов, необходимо настроить задание с metrics_path: /probe и передавать параметры через params.
Пример конфигурации prometheus.yml:
scrape_configs:
- job_name: 'blackbox'
metrics_path: /probe
params:
module: [http_2xx] # Используется из blackbox.yml
static_configs:
- targets:
- http://prometheus.io # http
- https://prometheus.io # https
- http://example.com:8080 # http по порту 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
- job_name: 'blackbox_exporter'
static_configs:
- targets: ['127.0.0.1:9115']
Метрики Blackbox Exporter#
Blackbox Exporter имеет префикс probe_ предоставляет следующие основные метрики:
probe_success— индикатор успешности пробы (1- успех,0- сбой);probe_duration_seconds— длительность пробы в секундах;Дополнительные метрики в зависимости от типа пробы (например,
probe_http_status_code,probe_dns_lookup_time_seconds,probe_icmp_rtt_secondsи т.д.).
Дополнительная информация#
Дополнительную информацию можно получить, выполнив команду:
blackbox_exporter --help