乐趣区

关于运维:Thanos工作原理及组件简介

Thanos 简介

Thanos 是一个「开源的,高可用的 Prometheus 零碎,具备长期存储能力」。很多出名公司都在应用 Thanos,也是 CNCF 孵化我的项目的一部分。

Thanos 的一个次要特点就是通过应用对象存储(比方 S3)能够容许“有限”存储空间。对象存储能够是每个云提供商提供的对象存储也能够是 ceph、rook 或 minio 这样的解决方案。

工作原理

Thanos 和 Prometheus 并肩作战,从 Prometheus 开始降级到 Thanos 是很常见的。

Thanos 被分成几个组件,每个组件都只有一个指标(典型云原生架构),组件之间通过 gRPC 进行通信。

Thanos Sidecar

Thanos 和 Prometheus 一起运行(有一个边车),每 2 小时向一个对象存储库输入 Prometheus 指标。这使得 Prometheus 简直是无状态的。Prometheus 依然在内存中保留着 2 个小时的度量值,所以在产生宕机的状况下,你可能依然会失落 2 个小时的度量值(这个问题应该由你的 Prometheus 设置来解决,应用 HA/ 分片,而不是 Thanos)。

参考文档:

Prometheus 根本高可用架构

Thanos sidecar 与 Prometheus Operator 和 Kube Prometheus 栈一起,能够轻松部署。这个组件充当 Thanos 查问的存储。

Thanos Store(存储)

Thanos 存储充当一个网关,将查问转换为近程对象存储。它还能够在本地存储上缓存一些信息。基本上,这个组件容许你查问对象存储以获取指标。这个组件充当 Thanos 查问的存储。

Thanos Compactor

Thanos Compactor(压缩器)是一个单体(它是不可扩大的),它负责压缩和升高存储在对象存储中的指标。下采样(数据老化)是随着工夫的推移对指标粒度的宽松。例如,你可能想将你的指标放弃 2 年或 3 年,但你不须要像昨天的指标那么少数据点。这就是压缩器的作用,它能够在对象存储上节俭字节,从而节省成本。

Thanos Query

Thanos Query(查问)是 Thanos 的次要组件,它是向其发送 PromQL 查问的中心点。Thanos 查问裸露了一个与 Prometheus 兼容的端点。而后它将查问分派给所有的“stores”。记住,Store 可能是任何其余提供指标的 Thanos 组件。Thanos 查问能够发送查问到另一个 Thanos 查问(他们能够重叠)。

  • Thanos Store
  • Thanos Sidecar
  • Thanos Query

还负责对来自不同 Store 或 Prometheus 的雷同指标进行反复数据删除。例如,如果你有一个度量值在 Prometheus 中,同时也在对象存储中,Thanos Query 能够对该指标值进行反复数据删除。在 Prometheus HA 设置的状况下,反复数据删除也基于 Prometheus 正本和分片。

Thanos Query Frontend(查问前端)

正如它的名字所暗示的,Thanos 查问前端是 Thanos 查问的前端,它的指标是将大型查问拆分为多个较小的查问,并缓存查问后果(在内存或 memcached 中)。

还有其余组件,比方在近程写的状况下 Thanos Receiver(接收器)、Thanos Ruler(规定)。

Thanos 部署架构

Sidecar 形式部署:

Receiver 形式部署:

三人行, 必有我师; 常识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.

退出移动版