如何安装配置 Thanos 集群架构实现历史指标查询

夏磊酱_3743

夏磊酱_3743

2026-06-10

268人浏览

原创

thanos 是围绕 prometheus 构建的分布式监控增强层,由 sidecar、store gateway、query、compactor 等协同组件构成,依赖对象存储实现高可用、长期存储与全局查询;各组件分工明确,缺一不可。

如何安装配置 thanos 集群架构实现历史指标查询

Thanos 集群不是“安装一个软件”就能跑起来的,而是由多个协同组件构成的分布式监控增强层。它不替代 Prometheus,而是围绕它构建高可用、长期存储和全局查询能力。核心目标是:让多副本 Prometheus 的数据可查、可存、可聚合,尤其解决历史指标(比如 30 天前)的快速回溯问题。

关键组件各司其职,缺一不可

Thanos 架构不是单体,每个组件有明确分工:

  • Sidecar:紧贴每个 Prometheus 实例部署(同 Pod 或同主机),实时暴露本地指标 API,并按固定周期(默认 2 小时块)把已落盘的 TSDB Block 上传到对象存储(如 MinIO、S3)
  • Store Gateway:对接对象存储,把里面的历史 Block 当成“只读数据库”,对外提供 Prometheus 兼容的 StoreAPI,供 Query 组件远程读取
  • Query:唯一对外提供查询入口(/api/v1/query 等),它同时向所有 Sidecar(查最新数据)和所有 Store Gateway(查历史数据)发起请求,自动合并结果,用户无感知数据来源
  • Compactor:后台守护进程,定期扫描对象存储中的 Block,做三件事:合并碎片 Block、生成 5m/1h 降采样数据、按 retention 策略清理过期数据

对象存储是 Thanos 的基石,必须先配好

没有对象存储,Thanos 就失去长期保存和跨实例共享数据的能力。MinIO 是最常用的本地替代方案(兼容 S3 API):

剪映专业版
剪映专业版

剪映专业版是一款面向短视频和专业创作场景的 AI 视频剪辑工具。

下载
  • 启动 MinIO 服务,创建一个 bucket(例如 thanos-data)
  • 准备一个 YAML 配置文件(如 objstore.yaml),内容为:
    type: S3
    config:
      bucket: "thanos-data"
      endpoint: "minio:9000"
      insecure: true
      signature_version2: false
      access_key: "minioadmin"
      secret_key: "minioadmin"
    
  • 所有用到对象存储的组件(Sidecar、Store Gateway、Compactor)都需通过 --objstore.config-file 指向该文件

Sidecar 与 Prometheus 必须共生命周期部署

Sidecar 不是独立服务,它依赖 Prometheus 的本地数据路径和 HTTP 接口:

  • Prometheus 启动时必须加参数:--web.enable-lifecycle --web.enable-admin-api(否则 Sidecar 无法触发 reload 或获取元信息)
  • Sidecar 启动命令示例(Docker):
    docker run -d \
      --name thanos-sidecar-c1 \
      -v /prometheus/data:/data \
      -v $(pwd)/objstore.yaml:/thanos/objstore.yaml \
      --network host \
      quay.io/thanos/thanos:v0.34.0 \
      sidecar \
      --tsdb.path=/data \
      --objstore.config-file=/thanos/objstore.yaml \
      --prometheus.url=http://localhost:9090
    
  • 确保 --tsdb.path 与 Prometheus 的 --storage.tsdb.path 完全一致,且挂载卷权限正确(Sidecar 需读取 Block 目录)

Query 统一入口 + Store Gateway 历史数据源

Query 是你最终访问的地址(比如 http://localhost:9090),但它本身不存数据,只做路由和聚合:

  • 启动 Store Gateway(指向同一对象存储):
    docker run -d \
      --name thanos-store \
      -v $(pwd)/objstore.yaml:/thanos/objstore.yaml \
      --network host \
      quay.io/thanos/thanos:v0.34.0 \
      store \
      --objstore.config-file=/thanos/objstore.yaml
    
  • 启动 Query,并通过 --store 参数连接所有数据源:
    docker run -d \
      --name thanos-query \
      --network host \
      quay.io/thanos/thanos:v0.34.0 \
      query \
      --http-address=0.0.0.0:9090 \
      --store=dnssrv+_grpc._tcp.thanos-sidecar-01.default.svc.cluster.local \
      --store=dnssrv+_grpc._tcp.thanos-store.default.svc.cluster.local
    
    (K8s 环境推荐用 DNS SRV;测试环境可直接用 IP+端口,如 --store=127.0.0.1:19090)
  • 验证:打开 Query UI,执行 count({job="prometheus"}),应能同时看到最近 2 小时(来自 Sidecar)和 7 天前(来自 Store Gateway)的数据点

别忘了 Compactor:让历史查询又快又省

刚上传的原始 Block 很零碎,直接查慢、占空间。Compactor 是优化历史数据的关键:

  • 单独运行一个 Compactor 实例,同样配置对象存储:
    docker run -d \
      --name thanos-compact \
      -v $(pwd)/objstore.yaml:/thanos/objstore.yaml \
      --network host \
      quay.io/thanos/thanos:v0.34.0 \
      compact \
      --objstore.config-file=/thanos/objstore.yaml \
      --wait
    
  • 它会每天自动运行一次(可配 --consistency-delay 控制延迟),生成降采样数据并合并 Block
  • 开启后,查 30 天前的 rate(http_requests_total[1h]) 会明显变快,因为 Query 会优先使用 1h 降采样数据

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

2026.09.23

60

15

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

2026.09.23

20

15

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

2026.09.23

20

15

Conan创建软件包配方指南
Conan创建软件包配方指南

本专题介绍通过conanfile.py创建软件包的方法,讲解包名、版本、依赖和构建设置等基础信息,以及source、build、package、package_info等常用方法的作用及编写思路。

2026.09.22

20

12

Conan二进制包配置指南
Conan二进制包配置指南

本专题介绍Conan根据操作系统、编译器、架构和构建类型生成二进制包的方法,讲解Profile、Settings、Options及Package ID的作用,帮助管理不同平台和编译环境下的包版本。

2026.09.22

20

13

Conan私有仓库搭建教程
Conan私有仓库搭建教程

本专题系统的讲解Conan私有仓库的搭建流程,涵盖仓库服务部署、存储目录配置、用户认证、权限划分和远程地址添加,并介绍内部C++依赖包的上传、下载及版本维护方法。

2026.09.22

20

19

loomy官网入口地址合集
loomy官网入口地址合集

本专题汇总了 Loomy 桌面 AI 助理的官方入口地址合集及使用指南。提供 macOS 与 Windows 客户端下载 。Loomy 是讯飞推出的桌面级 AI 工作搭子,支持文件整理、数据分析、网页操作及通过飞书/钉钉远程操控电脑,助你高效完成本地办公任务 。

2026.09.22

20

19

NumPy常见函数使用方法
NumPy常见函数使用方法

本专题整理 NumPy 常见函数使用方法相关教程,覆盖函数大全、参数用法、数组运算、统计聚合、排序处理、where 条件筛选、linspace 创建数列等常用场景,帮助读者快速掌握 NumPy 函数调用思路和实际数据处理技巧。

2026.09.22

40

21

NumPy性能优化版本更新与常见报错排查
NumPy性能优化版本更新与常见报错排查

本专题整理 NumPy 性能优化、版本更新与常见报错排查相关教程,覆盖向量化计算、广播性能、内存布局、NumPy 2.0 升级、版本兼容冲突、安装导入报错、dtype 溢出、矩阵运算异常和 broadcasting 报错修复,帮助读者系统掌握 NumPy 性能调优与问题定位方法。

2026.09.22

60

25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.2万人学习