Prometheus Blackbox Exporter HTTP探测返回403重定向问题咨询
问题根因
- 重定向配置字段和blackbox_exporter版本不匹配:两份配置中用到的
no_follow_redirects和follow_redirects是不同版本的互斥配置项——v0.18及更早版本仅识别no_follow_redirects,v0.19及之后版本废弃该字段,改用follow_redirects。字段不匹配时重定向跟随规则完全不生效,配置的自动跳转逻辑实际没有运行。 - 探测请求被源站安全策略拦截:从返回结果看,example1.com的有效服务在根域名、www前缀域名配置了拦截规则;example2.com的有效服务在www前缀域名、根域名配置了拦截规则。blackbox默认发起的探测请求User-Agent特征明显,且重定向跟随过程中不会自动补全浏览器常规请求头,很容易被源站WAF、访问控制规则识别为异常流量返回403,根本不会返回3xx跳转响应。
排查步骤
- 确认blackbox_exporter版本,修正配置字段
在部署blackbox的机器上执行./blackbox_exporter --version查看版本:- 版本≥0.19:删除配置中所有
no_follow_redirects字段,统一使用follow_redirects: true开启重定向跟随 - 版本<0.19:删除配置中所有
follow_redirects字段,统一使用no_follow_redirects: false开启重定向跟随
- 版本≥0.19:删除配置中所有
- 本地模拟探测请求定位拦截点
在blackbox部署机器上执行带跳转追踪的curl命令,复现探测流程:
逐段查看请求过程的状态码、响应头,定位403是在初始请求阶段返回,还是跳转后返回,同时查看响应头中是否有WAF标识,确认拦截来源。# 追踪example1.com完整请求链路 curl -v -L --ipv4 -A "Blackbox Exporter" https://example1.com # 追踪example2.com完整请求链路 curl -v -L --ipv4 -A "Blackbox Exporter" https://example2.com - 补全探测请求头绕过基础安全拦截
在http_2xx模块配置中补充常规浏览器请求头,降低被WAF识别为异常探测的概率:http: # 其他原有配置保留 headers: User-Agent: ["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"] Accept: ["text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"] Accept-Language: ["zh-CN,zh;q=0.9,en;q=0.8"] - 跳过跳转依赖直接配置多目标探测
如果站点根域名和www域名存在强制互跳逻辑,不要依赖重定向跟随探测,直接将两个域名都加入Prometheus抓取任务的targets列表,分别独立探测,避免跳转链路带来的状态误判。
参考可用配置(适配blackbox_exporter v0.19+版本)
modules: http_2xx: prober: http timeout: 5s http: fail_if_not_ssl: true ip_protocol_fallback: false method: GET follow_redirects: true preferred_ip_protocol: ip4 valid_http_versions: - HTTP/1.1 - HTTP/2.0 headers: User-Agent: ["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"] Accept: ["text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"] # 其余tcp/grpc/icmp等模块按需保留即可
内容的提问来源于stack exchange,提问作者rp346
相关产品推荐
相关产品推荐

