运维监控系统实战笔记
秦晓辉
快猫星云联合创始人,Open-Falcon、Nightingale、Categraf 核心研发
9147 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 25 讲
运维监控系统实战笔记
15
15
1.0x
00:00/00:00
登录|注册

07|如何解决Prometheus的存储容量问题?

你好,我是秦晓辉。
前几讲我们介绍了 Prometheus 的关键设计,这些设计都非常优秀。在云原生监控领域,有不可撼动的江湖地位,那这样说来 Prometheus 是不是就没有缺点了呢?是否可以满足所有使用场景呢?显然也不是。
一个软件如果什么问题都想解决,就会导致什么问题都解决不好。所以 Prometheus 也存在一些不足之处,其中一个广受诟病的问题就是单机存储不好扩展。所以这一讲我们就针对这个问题来聊聊如何扩展 Prometheus 的存储。

所有场景都需要扩展容量吗?

虽然我们聊的是 Prometheus 容量扩展问题,不过我必须先说明一点,大部分场景其实不需要扩展,因为一般的数据量压根达不到 Prometheus 的容量上限。很多中小型公司使用单机版本的 Prometheus 就足够了,这个时候不要想着去扩展,容易过度设计,引入架构上的复杂度问题。
Prometheus 单机容量上限是多少?根据我的经验,每秒接收 80 万个数据点,算是一个比较健康的上限,一开始也无需用一台配置特别高的机器,随着数据量的增长,可以再升级硬件的配置。当然,如果想要硬件方便升配,就需要借助虚拟机或容器,同时需要使用分布式块存储。
每秒接收 80 万个数据点是个什么概念呢?每台机器每个周期大概采集 200 个系统级指标,比如 CPU、内存、磁盘等相关的指标。假设采集频率是 10 秒,平均每秒上报 20 个数据点,可以支持同时监控的机器量是 4 万台。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Prometheus存储容量问题一直备受诟病,本文介绍了解决这一问题的方法。首先,作者指出大部分场景其实不需要扩展容量,因为一般的数据量很难达到Prometheus的容量上限。然后介绍了Prometheus的联邦机制,通过联邦机制可以将不同Prometheus的数据聚拢到一个中心的Prometheus中,解决了数据孤岛的问题。此外,作者还介绍了远程存储方案,即在远端建立一个集群,分治处理海量数据,而Prometheus本身不提供集群存储能力,但可以复用其他时序库方案。最后,作者简要介绍了国内使用最广泛的远程存储方案VictoriaMetrics和Thanos。这些方法为解决Prometheus存储容量问题提供了有效的解决方案,为使用Prometheus的用户提供了更多的选择和灵活性。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《运维监控系统实战笔记》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(21)

  • 最新
  • 精选
  • lei
    80w的数据点是在怎么样的机器上测出来的,内存和核数能告知下嘛?另外正式版搭建时,推荐的配置是什么样子的,官网也没找到合适的建议!

    作者回复: 32C64G,SSD,一开始也无需用一台配置特别高的机器,随着数据量的增长,可以再升级硬件的配置。当然,如果想要硬件方便升配,就需要借助虚拟机或容器,同时需要使用分布式块存储。

    2023-02-07归属地:浙江
    3
    3
  • hshopeful
    几年前在的公司是参考opentsdb,底层使用hbase 自研的

    作者回复: 这是个大厂

    2023-01-23归属地:上海
    2
    2
  • javaworker
    老师,我的prometheus server 运行sql,运行几次就内存溢出了,sql查询结果也就4万多条,哪里可以配置server的堆内存呐?

    作者回复: Prometheus是go写的,不是java,只要没有使用cgroup限制,就基本可以使用到操作系统的剩余所有内存

    2023-08-13归属地:北京
    1
  • Geek_51809f
    老师 有了解远端存储使用es的方案吗 我现在了解到使用es只能写, 不支持读,这种是什么原因不支持读呢

    作者回复: es没有提供remote read接口,大概率是es自身设计不适合做remote read这个支持。其实存储时序数据业界用es的很少,es存metrics数据性能一般

    2023-03-28归属地:北京
    1
  • lei
    VictoriaMetrics的数据保留时长可以针对不同的业务单独去配置吗,如果是全局的就不太友好

    作者回复: 新版本不知道如何,之前我看的时候是全局的

    2023-02-14归属地:浙江
    1
  • grafana 公司出品的mimir是否可以评价下设计优势和场景。

    作者回复: Mimir是fork自Cortex,后面选型可以不用考虑Cortex了,Mimir和Thanos架构类似,核心的选型考虑是license,一个是agplv3,一个是apache2。VM和Mimir/Thanos相比,如果是硬盘存储,就用VM,如果是对象存储,就用Mimir/Thanos

    2023-02-01归属地:江苏
    1
  • 北方的猫
    老师,您好,用influxdb作为prometheus的远程存储方案怎么样,然后influxdb直接对接到grafana做查询展示,我看influxdb热度很高啊

    作者回复: influxdb 前几年热度高,现在远没有 Thanos、VictoriaMetrics 的使用广泛,不推荐把 influxdb 作为 Prometheus 后端存储

    2023-10-06归属地:吉林
  • Geek_51809f
    老师 如果使用2台prometheus(采集一样的数据),同时去写到一个共享目录data, 这样可以解决数据一致性的问题。这种方案同时写到一个目录可以实现吗

    作者回复: 没见过这么干的,数据应该会混乱

    2023-05-24归属地:北京
  • 追风少年
    老师,VictoriaMetrics 开源版本缺少降采样功能对存储容量、查询性能有整体影响吗。

    作者回复: 如果有需求一次性查一年的数据趋势,就很难搞定了。只是做故障定位,没问题的,一般存3个月就挺多了

    2023-03-31归属地:北京
  • 莫问天机
    请教个问题,prometheus windows 版本,默认存储时间15天,这个如何改呢

    作者回复: 一般软件都看 --help 就可以了。./prometheus --help

    2023-02-07归属地:北京
收起评论
显示
设置
留言
21
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部