Monitoring
調試 Prometheus Blackbox Exporter http_2xx probs
我們正在使用 Prometheus Blackbox Exporter(blackbox_exporter,版本 0.19.0)來檢查 HTTP 端點。
現在我們需要使用
fail_if_body_matches_regexp
.當 html 正文中存在某個單詞時,檢查應該失敗。
為此,我們創建了以下 http prob 配置:
Module configuration: prober: http timeout: 5s http: valid_http_versions: - HTTP/1.1 - HTTP/2 - HTTP/2.0 preferred_ip_protocol: ip4 ip_protocol_fallback: true fail_if_body_matches_regexp: - The page is temporarily unavailable follow_redirects: true tcp: ip_protocol_fallback: true icmp: ip_protocol_fallback: true dns: ip_protocol_fallback: true
不幸的是,檢查沒有按預期工作。即使網站包含
The page is temporarily unavailable
在 html 正文中,檢查仍然成功。Logs for the probe: ts=2022-02-17T09:46:31.403831228Z caller=main.go:320 module=http_2xx target=https://site.local level=info msg="Beginning probe" 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="Resolving target address" ip_protocol=ip4 ts=2022-02-17T09:46:31.500911613Z caller=http.go:335 module=http_2xx target=https://site.local level=info msg="Resolved target address" 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="Making HTTP request" 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="Received HTTP response" status_code=200 Metrics that would have been returned: # HELP probe_failed_due_to_regex Indicates if probe failed due to regex # TYPE probe_failed_due_to_regex gauge probe_failed_due_to_regex 0
要檢查網站是否在 Prometheus Blackbox Exporter 中正確載入,我想檢查測試期間收到的 html 正文。有誰知道這是否可能並且可能有一些進一步的調試提示?
我沒有找到更多的調試選項,所以我結束了修改原始碼以列印收到的 HTML 正文。我們看到,網站開始發送壓縮數據而不是“純 HTML”。因此,檢查失敗。
現在有一個在調試模式下添加 HTML 正文的合併請求: https ://github.com/prometheus/blackbox_exporter/pull/884