Skip to main content

Blackbox Exporter

С помощью blackbox_exporter можно опрашивать эндпоинты через протоколы HTTP, HTTPS, DNS, TCP, ICMP и gRPC.
У нас blackbox exporter располагается на mon-exporters-01xy.g01.i-free.ru.

Ссылка на официальный репозиторий: https://github.com/prometheus/blackbox_exporter

В рамках мониторинга по http(s) можно делать get, post запросы, определять заголовки и тело запроса, проверять возвращаемый контент на соответствие определенному regex-паттерну и тд.
Также blackbox_exporter у нас используется для мониторинга серверов по icmp (ping).


Используемый протокол и параментры запросов определяются в модулях.
Примеры можно посмотреть в гитлабе:
https://git.i-free.com/monitoring/infrastructure/-/blob/main/vars/mon-exporters-01/blackbox_exporter.yaml
Или в репозитории экспортера на гитхабе:
https://github.com/prometheus/blackbox_exporter/blob/master/CONFIGURATION.md


Практический пример: 

Нужно замониторить сайт, у которого ответом на неавторизованный запрос нормой является 403 http status code. 

1. Добавляем configuration module в vars/mon-exporters-01/blackbox_exporter.yaml:

  http_403:
    prober: http
    http:
      follow_redirects: true
      ip_protocol_fallback: true
      preferred_ip_protocol: "ip4"
      valid_status_codes:
        - 403

2. При добавлении таргета указываем модуль в названии джобы, а так же в параметрах:

blackbox_http403:
  - targets:
      - https://infoflows.partnersystem.i-free.ru
    labels:
      env: prod
  - options:
      params:
        module: [http_403]

Теперь, в случае получения 403 кода, экспортер будет отдавать метрику probe_success со значением 1, во всех остальных случаях значение будет 0.