You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

裸金属环境部署Thanos遇连接问题:Querier无法访问Sidecar的Store API

排查Thanos Sidecar与Querier的连接问题

从你提供的docker-compose配置来看,有几个关键的配置问题可能导致Querier无法访问Sidecar的10901端口,我逐一给你分析:

1. Docker Compose网络配置语法错误

你的thanos-sidecar服务里写的是network:,但正确的语法应该是networks:(复数形式)。这个错误会导致Sidecar没有加入到指定的thanos网络中,而Querier在thanos网络里自然无法找到Sidecar实例。

修正后的配置片段:

thanos-sidecar:
  # ... 其他配置 ...
  networks:
    - thanos

同时要确保你的Prometheus服务也加入了thanos网络,否则Sidecar也无法连接到Prometheus的9090端口。

2. TSDB路径的引号问题

你在Sidecar命令里写的--tsdb.path="/prometheus",这里的双引号是多余的。在Docker的command参数中,引号会被解析为路径的一部分,导致Sidecar尝试寻找名为"/prometheus"(带引号)的目录,而你的卷是挂载到/prometheus,这会导致Sidecar无法找到TSDB目录,启动失败或无法正常暴露Store API。

修正后的command参数:

command: ['sidecar', '--tsdb.path=/prometheus', '--prometheus.url=http://prometheus:9090']

3. Prometheus访问地址的优化

你当前用的是容器名metrics_prometheus_1:9090来访问Prometheus,在Docker Compose的同一个网络中,直接使用服务名(比如你的Prometheus服务如果叫prometheus)会更稳定,因为容器名可能会随重启变化,而服务名是固定的。

所以把--prometheus.url=http://metrics_prometheus_1:9090改成--prometheus.url=http://prometheus:9090(前提是你的Prometheus服务在docker-compose里的名称是prometheus)。

4. 验证Sidecar状态

修正配置后,重启Sidecar服务,然后查看启动日志确认没有报错:

docker logs <你的sidecar容器名>

日志里如果出现类似level=info msg="starting sidecar"和connected to prometheus的信息,说明Sidecar已经正常启动并连接到Prometheus,Store API的10901端口也应该正常监听了。

最后验证Querier连接

重启Querier服务后,访问http://localhost:19192进入Thanos Querier的UI,尝试查询指标(比如up),如果能看到Prometheus的实例数据,说明连接成功。

内容的提问来源于stack exchange,提问作者swetad90

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:50:08