Мы используем Prometheus Blackbox Exporter (blackbox_exporter, версия 0.19.0) для проверки конечных точек HTTP.
Теперь нам нужно реализовать проверку с помощью fail_if_body_matches_regexp
.
Проверка должна завершиться ошибкой, если внутри html-тела существует определенное слово.
Для этого мы создали следующую конфигурацию http prob:
Конфигурация модуля:
зонд: http
тайм-аут: 5 с
http:
действительные_http_версии:
- HTTP/1.1
- HTTP/2
- HTTP/2.0
предпочтительный_ip_протокол: ip4
ip_protocol_fallback: правда
fail_if_body_matches_regexp:
- Страница временно недоступна
Follow_redirects: правда
TCP:
ip_protocol_fallback: правда
ICMP:
ip_protocol_fallback: правда
DNS:
ip_protocol_fallback: правда
К сожалению, проверка не работает должным образом. Несмотря на то, что сайт содержит Страница временно недоступна
внутри тела html проверка все еще проходит успешно.
Логи для зонда:
ts=2022-02-17T09:46:31.403831228Z caller=main.go:320 module=http_2xx target=https://site.local level=info msg="Начало проверки" probe=http timeout_seconds=5
ts=2022-02-17T09:46:31.403959629Z caller=http.go:335 module=http_2xx target=https://site.local level=info msg="Разрешение целевого адреса" ip_protocol=ip4
ts=2022-02-17T09:46:31.500911613Z caller=http.go:335 module=http_2xx target=https://site.local level=info msg="Разрешенный целевой адрес" ip=XXX.XXX.XXX.XXX
ts=2022-02-17T09:46:31.501017313Z caller=client.go:251 module=http_2xx target=https://site.local level=info msg="Выполнение HTTP-запроса" url=https://XXX.XXX .XXX.XXX host=site.local
ts=2022-02-17T09:46:31.614236162Z caller=main.go:130 module=http_2xx target=https://site.local level=info msg="Получен ответ HTTP" status_code=200
Показатели, которые были бы возвращены:
# HELP probe_failed_due_to_regex Указывает, произошел ли сбой проверки из-за регулярного выражения
# ТИП датчика probe_failed_due_to_regex
probe_failed_due_to_regex 0
Чтобы проверить, правильно ли веб-сайт загружается в Prometheus Blackbox Exporter, я хотел бы проверить тело html, полученное во время теста. Кто-нибудь знает, возможно ли это, и может дать дополнительные советы по отладке?