blackbox_exporter


Репозиторий: blackbox_exporter

Документация: Доступна в репозитории (по использованию экспортера и настройке проверок)

Многофункциональный экспортер для мониторинга внешних ресурсов. Поддерживает мультитаргет-мониторинг и может быть запущен как процесс или как сервис.

Описание работы

blackbox_exporter выполняет активные проверки различных сетевых сервисов и предоставляет их метрики.

Важно

Это не просто экспортер, а инструмент для активного мультитаргет-мониторинга, который может проверять множество целей с единой конфигурацией.

Он содержит

Эндпойнт /metrics со стандартными метриками (go, proc, promhttp)

Возможности мониторинга:

  • HTTP/HTTPS проверки:

  • Доступность веб-серверов

  • Проверка SSL/TLS сертификатов

  • Валидация содержимого (regex)

  • Замер времени ответа

TCP проверки:

  • Доступность портов

  • Проверка ответов на TCP-запросы

  • Поддержка STARTTLS

ICMP проверки:

  • Ping-доступность хостов

  • Замер потери пакетов

  • Время отклика

  • DNS проверки:

  • Проверка DNS-записей

  • Валидация ответов

  • Проверка времени разрешения

gRPC проверки (экспериментальная поддержка)

Запуск экспортёра

Возможна настройка Ui и через конфигурационный файл агента.

Через конфигурационный файл агента

Запуск экспортёра:

config.yml
exporters:
  - name: blackbox_exporter
    start_type: args
    args: "--config.file=configs/blackbox_exporter.yml --web.listen-address=0.0.0.0:9115"
    address: 127.0.0.1:9115
    labels:
      component: blackbox_monitoring
      hostname: my-hostname-vm

exporters - секция в которой описывается запуск экспортёров

name - должно совпадать с именем бинарного файла (в данном случае blackbox_exporter)

start_type - тип запуска экспортёра

args - аргументы командной строки передающиеся экспортёру

address - адрес для опроса экспортёра агентом

labels - дополнительные лейблы которые будут добавлены к метрикам экспортёра

component - пример дополнительного лейбла

hostname - рекомендованый лейбл, по умолчанию hostname агента

Опрос таргетов через экспортёр:

config.yml
custom_targets:
  - name: ping_target1
    target: 127.0.0.1:9116
    scrape_interval: 60s
    metrics_path: /probe?target=my-hostname-vm&module=icmp
    labels:
      component: icmp
      hostname: my-hostname-vm
  - name: http_target1
    target: 127.0.0.1:9116
    scrape_interval: 60s
    metrics_path: /probe?target=https://my-hostname-vm&module=http_2xx
    labels:
      component: http
      hostname: my-hostname-vm

custom_targets - секция в которой описывается опрос внешних таргетов

name - уникальное имя для опроса

target - адрес экспортёра для опроса

scrape_interval - интервал опроса таргетов

metrics_path - путь в командной строке через который производится опрос таргета

labels - дополнительные лейблы которые будут добавлены к метрикам экспортёра

component - пример дополнительного лейбла

hostname - рекомендованый лейбл, по умолчанию hostname агента

Конфигурационный файл экспортера

Пример конфигурации:

configs/blackbox_exporter.yml
modules:
  http_2xx:
    prober: http
    timeout: 5s
    http:
      valid_status_codes: [200]
      method: GET
  tcp_connect:
    prober: tcp
    timeout: 5s
  icmp:
    prober: icmp
    timeout: 5s
    icmp:
      preferred_ip_protocol: "ip4"

Проверка работы

После запуска проверки выполняются по запросу:

http://localhost:9115/probe?target=my-hostname-vm&module=icmp

http://localhost:9115/probe?target=https://my-hostname-vm&module=http_2xx

Метрики экспортёра доступны по адресу:

http://localhost:9115/metrics

Примечание

Замените localhost на IP-адрес хоста с конфигурируемым агентом.