首页 > 其他分享 >Prometheus thanos Victoriametrics比较 victoria prometheus 区别 转载

Prometheus thanos Victoriametrics比较 victoria prometheus 区别 转载

时间:2024-07-01 17:13:33浏览次数:16  
标签:存储 Prometheus VictoriaMetrics victoria prometheus Thanos 数据 Sidecar

IDE,运维,k8s,Prometheus相关视频讲解:

 C语言程序设计入门之环境安装

 Linux shell脚本编程入门详细讲解

 Prometheus监控系统介绍



Thanos和 VictoriaMetrics都是用来作为 Prometheus 长期存储的成熟方案,其中 VictoriaMetrics也开源了其集群版本,功能更加强大。
主要功能:

长期存储,可以保留任意时间的监控数据。
对多个 Prometheus 实例采集的数据进行全局聚合查询。
可水平扩展。
Thanos:
Thanos包含以下几个核心组件:

Sidecar:
每个 Prometheus 实例都包含一个 Sidecar,它与 Prometheus 实例运行在同一个 Pod中。它有两个作用:

将本地超过 2 小时的监控数据上传到对象存储,如 Amazon S3 或 Google 云存储。
将本地监控数据(小于 2 小时)提供给 Thanos Query 查询。
Store Gateway :
将对象存储的数据提供给 Thanos Query 查询。

Query:
实现了 Prometheus 的查询 API,将 Sidecar和对象存储提供的数据进行聚合最终返回给查询数据的客户端。

Compact :
默认情况下,Sidecar 以 2 小时为单位将监控数据上传到对象存储中。Compactor会逐渐将这些数据块合并成更大的数据块,以提高查询效率,减少所需的存储大小。

Ruler :
通过查询 Query获取全局数据,然后对监控数据评估记录规则[11]和告警规则,决定是否发起告警。还可以根据规则配置计算新指标并存储,同时也通过 StoreAPI 将数据暴露给 Query,同样还可以将数据上传到对象存储以供长期保存。由于 Query 和底层组件的可靠性较低,Ruler组件通常故障率较高。

Receiver :
这是一个实验性组件,适配了 Prometheus 的 remote write API,也就是所有Prometheus 实例可以实时将数据 push 到 Receiver。在 Thanos v0.5.0 时,该组件还没有正式发布。

架构图:





Thanos 需要通过以下步骤来建立写入过程:

禁用每个 Prometheus 实例的本地数据压缩。具体做法是将 --storage.tsdb.min-block-duration 和 --storage.tsdb.max-block-duration 这两个参数的值设置为相同的值。

Thanos 要求关闭压缩是因为 Prometheus 默认会以 2, 25, 25*5 的周期进行压缩,如果不关闭,可能会导致 Thanos 刚要上传一个 block,这个 block 却被压缩中,导致上传失败。更多详情请参考这个 issue[17]。如果 --storage.tsdb.retainer.time 参数的值远远高于 2 小时,禁用数据压缩可能会影响 Prometheus 的查询性能。

在所有的 Prometheus 实例中插入 Sidecar,这样 Sidecar 就可以将监控数据上传到对象存储。

设置 Sidecar 监控。

为每个对象存储的 bucket 配置压缩器,即 Compact 组件。
1.
2.
3.
4.
5.
6.
7.
8.
9.
VictoriaMetrics:
VictoriaMetrics 集群版包含以下几个核心组件:

vmstorage : 存储数据。
vminsert : 通过 remote write API 接收来自 Prometheus 的数据并将其分布在可用的vmstorage 节点上。
vmselect : 从 vmstorage 节点获取并聚合所需数据,返回给查询数据的客户端(如Grafana)。每个组件可以使用最合适的硬件配置独立扩展到多个节点。
架构图:



VictoriaMetrics 需要在 Prometheus 中添加远程存储的配置,以将采集到的样本数据通过 Remote Write的方式写入远程存储 VictoriaMetrics 中,不需要在 Prometheus 中插入 Sidecar,也不需要禁用本地数据压缩。
总结:

Thanos 和 VictoriaMetrics 分别使用了不同的方法来提供长期存储、聚合查询和水平扩展性。
VictoriaMetrics通过标准的 remote_write API[40] 接收来自 Prometheus 实例写入的数据,然后将其持久化(如 GCE HDD磁盘、Amazon EBS[42] 或其他磁盘)。而 Thanos 则需要禁用每个 Prometheus实例的本地数据压缩,并使用非标准的 Sidecar 将数据上传至 S3 或 GCS。同时还需要设置 Compactor,用于将对象存储bucket 上的小数据块合并成大数据块。
VictoriaMetrics 开箱即实现了全局查询视图的 Prometheus queryAPI。由于 Prometheus会实时将抓取到的数据复制到远程存储,所以它不需要在集群外建立任何外部连接来实现全局查询。Thanos 需要设置 StoreGateway、SIdecar 和 Query 组件才能实现全局查询。对于大型的 Thanos 集群来说,在 Query组件和位于不同数据中心(可用区域)的 Sidecar 之间提供可靠安全的连接是相当困难的。Query 组件的性能会受到性能最差的Sidecar 或 Store Gateway 的影响。
VictoriaMetrics 集群可以快速部署到 Kubernetes中,因为它的架构非常简单[44]。而 Thanos 在 Kubernetes 中的部署和配置非常复杂。
-----------------------------------
Prometheus thanos Victoriametrics比较 victoria prometheus 区别
https://blog.51cto.com/u_14172/10431195

标签:存储,Prometheus,VictoriaMetrics,victoria,prometheus,Thanos,数据,Sidecar
From: https://www.cnblogs.com/gaoyanbing/p/18278429

相关文章

  • 运维锅总详解Prometheus
    本文尝试从Prometheus简介、架构、各重要组件详解、relable_configs最佳实践、性能能优化及常见高可用解决方案等方面对Prometheus进行详细阐述。希望对您有所帮助!一、Prometheus简介Prometheus是一个开源的系统监控和报警工具,最初由SoundCloud开发,现在是CloudNative......
  • 在线方式部署k8s+prometheus集群(kubesphere环境)
    前言:半月前在公司生产环境上离线部署了k8s集群和Prometheus+Grafana监控平台的搭建,下面我租用3台华为云服务器演示在线方式部署k8s(单master节点)+prometheus集群。下期再出一版离线方式部署k8s(双master节点)集群。安装步骤:安装Docker安装Kubernetes安装KubeSphere前置环境安......
  • prometheus 中文说明告警指标
    https://blog.51cto.com/qiangsh/1977449主机和硬件监控可用内存指标主机中可用内存容量不足10%-alert:HostOutOfMemoryexpr:node_memory_MemAvailable_bytes/node_memory_MemTotal_bytes*100<10for:5mlabels:severity:warningannotations:......
  • linux可视化监控:Grafana+Prometheus+node_exporter
    原理node_exporter:它的作用主要是收集性能测试的数据,如cpu、内存磁盘网络等信息,然后将数据保存到prometheus,相当于将数据存入到数据库中;想要监控不同的内容,就使用不同的exporter,比如mysqld_exporterPrometheus:虽然说是监控平台,但是实际上是一套数据库,用于做数据存储,不能做展......
  • 第二篇 使用Prometheus对网络进行监控
    1、Prometheus简介        Prometheus是一款开源系统监控和报警工具,最初由SoundCloud开发,现为CNCF(CloudNativeComputingFoundation)的项目。        主要特点:                   (1)多维数据模型:Prometheus使用带有时间戳的度量数据......
  • kube-prometheus项目中的ServiceMonitor服务发现
    通过一个叫ServiceMonitor的资源来自动发现监控目标并动态生成配置,不用再维护配置文件通过ServiceMonitor监控应用时,如果监控没有找到目标主机的排查步骤,排查步骤大致如下:确认ServiceMonitor是否成功创建。kubectlgetservicemonitors-nmonitoringkube-controller-manage......
  • 搭建服务端性能监控系统 Prometheus 详细指南
    前言在现代软件开发中,性能监控是确保系统稳定性和性能优化的重要环节。Prometheus是一个开源的系统监控和报警工具,广泛用于容器化环境和微服务架构。本指南将详细介绍如何在服务器上搭建Prometheus性能监控系统。安装Prometheus环境准备确保你的服务器上已经安装了以下......
  • 开发Prometheus的redis bigkey exporter,完善k8s下redis容器的性能监控
      好久没来博客园写技术总结了,回顾这些年的职业路径,从自动化测试到python后端到golang后端直到现在的devops,确实积累了很多心得,可惜都没时间来写写这些心得(主要是懒)。自从转为devops后确实有比较多的时间了(主要是加班少:)),看来以后还是要多写写技术总结:)。   废话不......
  • Docker搭建FRP+OPENVPN+Prometheus+Grafana 实现内网穿透以及流量监控
    Docker搭建FRP+OPENVPN+Prometheus+Grafana实现内网穿透以及流量监控文章目录Docker搭建FRP+OPENVPN+Prometheus+Grafana实现内网穿透以及流量监控一、搭建Docker基础环境二、配置FRP,实现端口映射2.1使用Docker部署FRPFrps服务端(拥有公网IP)Frpc客户端(内网IP)三、搭建......
  • Prometheus+grafana部署
    分类出所需的监控项种类一般可分为︰业务级别监控/系统级别监控/网络监控/程序代码监控/日志监控/用户行为分析监控/其他种类监控大的分类还有更多的细小分类,这里给出几个例子,例如:业务监控可以包含用户访问QPS,DAU日活,访问状态,业务接口,产品转化率,充值额度,用户投诉等等这些很宏观......