双集群Prometheus热备联邦配置遇DOWN状态EOF错误排查
TLS证书验证不匹配:浏览器访问时可能已手动信任目标集群的自签证书,或使用了系统信任的证书链,但发起采集的Prometheus未配置对应证书验证规则。检查联邦采集配置中的
tls_config块,若为自签证书,需添加insecure_skip_verify: true;若使用正规证书,确保配置了正确的ca_file、cert_file和key_file。网络访问限制:客户端浏览器所在网络能连通目标Prometheus端口(默认9090),但发起采集的Prometheus节点所在网络到目标集群的端口未被防火墙/安全组放行,或中间设备拦截了TCP连接,导致连接建立后被强制断开,触发EOF错误。
联邦配置参数错误:虽然浏览器访问的URL参数正确,但Prometheus的
scrape_configs中params.match[]的格式有误,比如标签匹配规则的引号未正确转义、标签名/值写错,导致目标Prometheus无法解析请求,直接关闭连接。检查配置中match参数的写法,确保和浏览器URL中的规则完全一致(例如{job="kafka1"}需正确用双引号包裹)。目标Prometheus连接/资源限制:目标集群的Prometheus通过
--web.max-connections设置了连接数上限,或前端反向代理(如Nginx)配置了连接数限制、超时时间过短,导致浏览器请求刚好抢到可用连接,但Prometheus的采集连接被拒绝或提前断开。采集端代理配置问题:发起采集的Prometheus节点配置了全局HTTP/HTTPS代理,但代理未允许访问目标集群的地址,导致请求通过代理时失败,返回EOF。而浏览器使用的网络环境无此代理限制,因此能正常访问。
内容的提问来源于stack exchange,提问作者Essex Boy

