原创-thanos组件(聚合多个prometheus组件)原理介绍

简单来说,thanos提供了用户可以以一个单一的查询接口访问到不同Prometheus服务器上的所有指标数据。

目标:无缝集成任意prometheus,操作应该简单。

架构:Sidecar组件部署到每一台正在运行的prometheus一侧,充当代理服务器,提供prometheus本地数据。另一端运行Querier组件。

1.当Querier收到一个请求后,会向Sidecar发送请求,并从本地获得数据。

2.Querier聚合响应数据。

Sidecar会将持久化的数据推向对象存储。

Store组件:充当了对象存储里数据的数据检索代理。

Compactor组件:将本地压缩机制应用到对象存储中,提高检索性能。

 

---

Thanos的力量

Thanos非常灵活,它可以根据用户的使用场景进行不同的设置。在对普通的Prometheus实际做迁移时这一点尤其有用。我们不妨通过一个简单例子快速回顾一下从Thanos的组件里学到的东西。下面这个例子讲解了如何将自己普通的Prometheus迁移到我们闪亮的'无限保留指标'的世界:

 

 

  1. 将Thanos Sidecar添加到你的Prometheus服务端 - 例如,在Kubernetes pod里运行一个相邻容器;
  2. 部署一些Thanos Querier的副本以启用数据浏览功能。与此同时,用户可以轻松地在Scraper和Querier之间配置一个gossip集群。使用thanos_cluster_members指标来确认所有组件都已连接。


值得一提的是,仅靠上述单独的这两步就足以实现一个从潜在的Prometheus高可用复本获取结果的全局视图和无缝的数据去重!只需将仪表盘连接到Querier HTTP端点或直接使用Thanos UI即可。

但是,如果你想要实现指标数据的备份和长期保留,我们需要完成额外的下面三个步骤:

    1. 创建一个AWS S3或GCS存储桶。你只需要简单地配置一下Sidecar即可完成数据的备份。如今你也可以将本地保留策略配至最低。
    2. 部署一个Store Gateway然后将它加入到现有的gossip集群。做到这一点的话我们的查询便也可以访问到备份好的数据!
    3. 部署Compactor,通过应用压缩和降准采样来提升长期数据查询的响应能力。
posted @ 2020-11-29 16:51  Normanlin  阅读(738)  评论(0编辑  收藏  举报