Folosim Prometheus Blackbox Exporter (blackbox_exporter, versiunea 0.19.0) pentru a verifica punctele finale HTTP.
Acum trebuie să implementăm o verificare cu fail_if_body_matches_regexp
.
Verificarea ar trebui să eșueze atunci când un anumit cuvânt există în corpul html.
Pentru asta, am creat următoarea configurație http prob:
Configurare modul:
sonda: http
timeout: 5s
http:
valid_http_versions:
- HTTP/1.1
- HTTP/2
- HTTP/2.0
preferred_ip_protocol: ip4
ip_protocol_fallback: adevărat
fail_if_body_matches_regexp:
- Pagina este temporar indisponibilă
follow_redirects: adevărat
tcp:
ip_protocol_fallback: adevărat
icmp:
ip_protocol_fallback: adevărat
dns:
ip_protocol_fallback: adevărat
Din păcate, verificarea nu funcționează conform așteptărilor. Chiar dacă site-ul conține Pagina este temporar indisponibilă
în interiorul corpului html, verificarea este încă reușită.
Jurnalele pentru sondă:
ts=2022-02-17T09:46:31.403831228Z caller=main.go:320 module=http_2xx target=https://site.local level=info msg="Proba de început"=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="Rezolvarea adresei țintă" ip_protocol=ip4
ts=2022-02-17T09:46:31.500911613Z apelant=http.go:335 module=http_2xx target=https://site.local level=info msg="Adresă țintă rezolvată" 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="Efectuarea solicitării HTTP" url=https://XXX.XXX .XXX.XXX gazdă=site.local
ts=2022-02-17T09:46:31.614236162Z caller=main.go:130 module=http_2xx target=https://site.local level=info msg="Răspuns HTTP primit" status_code=200
Valori care ar fi fost returnate:
# HELP probe_failed_due_to_regex Indică dacă sonda a eșuat din cauza regex
# TYPE probe_failed_due_to_regex gauge
probe_failed_due_to_regex 0
Pentru a verifica dacă site-ul web este încărcat corect în Prometheus Blackbox Exporter, aș dori să verific corpul html care este primit în timpul testului. Știe cineva dacă acest lucru este posibil și ar putea avea alte sfaturi de depanare?