| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> Thanos 架构 -> 正文阅读 |
|
[大数据]Thanos 架构 |
ThanosThanos?是一个基于 Prometheus 实现的监控方案,其主要设计目的是解决原生 Prometheus 上的痛点,并且做进一步的提升,主要的特性有:全局查询,高可用,动态拓展,长期存储。下图是 Thanos 官方的架构图: Thanos 主要由如下几个特定功能的组件组成:(相当于微服务的模式,里面有比较多的组件)
从使用角度来看有两种方式去使用 Thanos,sidecar模式和 receiver 模式。 sidecar架构模式Thanos Sidecar 组件需要和 Pormetheus 实例一起部署,用于代理 Thanos Querier 组件对本地 Prometheus 的数据读取,允许 Querier 使用通用、高效的StoreAPI 查询 Prometheus 数据。 第二是将 Prometheus 本地监控数据通过对象存储接口上传到对象存储中,这个上传是实时的,只要发现有新的监控数据保存到磁盘,会将这些监控数据上传至对象存储。下面是Sidecar模式架构图。 可以看到普罗米修斯有多个副本A,B,需要部署一个sidecar和Prometheus部署在一起,有多少个Prometheus副本就需要部署多少个sidecar。 当客户端去查询数据的时候,会根据query来查询结果,如果数据还在本地,因为比较新的数据,实时数据还是在本地的,sidecar是要等到Prometheus的数据存盘,两个小时之后才能够识别到,然后将两个小时之后的数据上传到远程存储上面,查询的数据如果是两个小时之后的话,会代理到store gateway这边,数据从对象存储当中拿就行了。 如果是两个小时之前,实时最新的数据,那么从sidecar中获取。
因为 Prometheus 每 2 小时生成一个时序数据块,Thanos Sidecar 会每隔 2 小时将这个块上传到一个对象存储桶中。这样 Prometheus 服务器就可以以相对较低的存储空间运行,同时通过对象存储提供历史数据,使得监控数据具有持久性和可查询性。但是这样并不意味着 Prometheus 可以完全无状态,因为如果 Prometheus 崩溃并重新启动,我们将失去大约 2 个小时的指标数据,所以 Prometheus 在实际运行中还是需要持久性磁盘的。 receiver 架构模式Thanos Receiver 实现了 Prometheus 远程写 API,它构建在现有的 Prometheus TSDB 之上,并保持其实用性,同时通过长期存储、水平可伸缩性和下采样扩展其功能。Prometheus 实例被配置为连续地向它写入指标,然后 Thanos Receiver 默认每 2 小时将时间序列格式的监控数据块上传到-个对象存储的桶中。ThanoS Receiver 同样暴露了 Store API,以便 Thanos Querier 可以实时查询接收到的指标。 之前是sidecar模式和Prometheus对接,然后将数据上传到对象存储上面去,而现在没有一个组件直接上传到对象存储,而是通过thanos receive,Prometheus有个远程写,可以将数据远程写入到thanos receive里面去,然后这个组件每隔两个小时将数据上传到对象存储里面。 查询也是一样,如果是两个小时之前,也就是热数据,那么查询到的也是receive里面的数据,这里没有sidecar,所以最新的数据实在receive里面了。 这种方式相对于之前更加轻量级一些,因为每个Prometheus server都得跟着sidecar,现在只需要有个receive,看起来就压力比较大了。 这两种模式有各种的优缺点,具体使用哪种模式需要结合生产环境综合考虑。 工作流程 sidecar模式Thanos 是同时支持 Prometheus 读和写的远程存储方案,首先我们先看下指标写入的整个流程:
读取指标的流程为:
对于发送报警的流程如下所示:
特性Thanos 相比起原生的 Prometheus 具有以下的一些优势:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/25 17:04:27- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
|