一. Prometheus 单节点抗不过来了!

单节点压力

早期我使用的是 Prometheus + Grafana 这一套经典的监控系统,部署便利,配置简单且有独立风格 PromQL 查询语句。

随着时间的推移,在保存一年监控数据的情况下:

  • max_over_time(prometheus_tsdb_head_series[1d]) = 17M ,在 内存计算器 预估内存使用是 60G,然而实际使用在 80G 以上。
  • Wal 文件夹达到 60GB 大小,重启等待 replay 需要 20 分钟才能恢复监控。

尝试使用 --storage.tsdb.wal-compression 参数压缩 wal 文件,但将 wal 文件夹大小缩小到 40GB,重启时间并无显著加快。

考虑方案

1. 多实例 Prometheus

该方案吃力不讨好!!!

  1. 由于 Prometheus 不支持负载均衡,那么多实例部署时需要将采集配置分散到多个实例上,需要大量工作将现有的抓取配置进行拆分。
  2. 数据源拆分到多实例上,我们的 grafana 监控面板需要重新定向数据源。
  3. 报警规则可能不止依赖一个 metrics,那么如何拆分数据源才能支持原有的报警规则?

2. Victoria

image

特点

  • 组件划分:
    • Vmagent, vmselect, vminsert, vmstorage ......
  • 支持 Remote_write, 但不支持 Remote_read
  • 基于 PromQL 独家实现的 VMQL
  • 可使用 prometheus-operator crd,用 vmagent, vmrule, vmalert 将 proemtheus 的采集和报警也替换,彻底告别 prometheus

  • 使用了 remote_write 导入数据,Prometheus 换节点重启损失数据非常少
  • 数据流像瀑布流,架构清晰容易理解,组件可以横向拓展
  • group_left 表达式会自动将 multi-multi 情况转成 one-multi,简化 PromQL

不酷

  • 一个 WebUI 都不提供,我怀疑他们招不起前端!Grafana 的 explore 查询入口没有 prometheus 的好用,而且 targets 和 rules 展示节点和报警实在是太方便了。

3. Thanos

image

特点

  • 组件划分:
    • Sidecar, Query, Store Gateway, Compact, Ruler
  • Thanos 管理的最小单位是 tsdb 的本地 block,每 2 小时 Prometheus 会生成一个 block 文件,Thanos Sidecar 负责将其上传到存储端。
  • 最近 2h 的数据存储于 prometheus,2h 以前的数据存储于 thanos。

  • 解决了 Prometheus 单点存储的蛋疼问题,优化了重启时间
  • 数据长期存储单独管理,还支持数据降采样
  • Query 提供和 prometheus 相同的 WebUI,照顾到用户 debug 和用户习惯
  • 组件可以横向拓展

不酷

  • Prometheus 2h 才打包一次块并上传,只使用本地文件系统的话,节点损坏会损失最多 2h 数据。因此,紧急换节点重启服务失效的数据时长还是比较难接受的
  • Prometheus 有 remote_write,为什么要提供一个 sidecar?使用 remote_write 的话,query 只需要请求 store gateway
  • Compactor 是独立组件,个人觉得放在 storage-gateway 一起就行了
  • 这种结构导致了相同的文件块会在组件间传输多次

最终方案

尝试搭建了 Thanos 和 Victoria,发现 Thanos 架构导致部分数据在各组件之间存在不必要的重复传输,所以选择了更轻量的 Victoria。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,612评论 5 471
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,345评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,625评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,022评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,974评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,227评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,688评论 3 392
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,358评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,490评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,402评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,446评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,126评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,721评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,802评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,013评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,504评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,080评论 2 341