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.
No Comments