一. Prometheus 單節(jié)點抗不過來了!

單節(jié)點壓力

早期我使用的是 Prometheus + Grafana 這一套經(jīng)典的監(jiān)控系統(tǒng)落蝙,部署便利拷况,配置簡單且有獨立風(fēng)格 PromQL 查詢語句。

隨著時間的推移掘殴,在保存一年監(jiān)控數(shù)據(jù)的情況下:

  • max_over_time(prometheus_tsdb_head_series[1d]) = 17M 赚瘦,在 內(nèi)存計算器 預(yù)估內(nèi)存使用是 60G,然而實際使用在 80G 以上奏寨。
  • Wal 文件夾達(dá)到 60GB 大小起意,重啟等待 replay 需要 20 分鐘才能恢復(fù)監(jiān)控。

嘗試使用 --storage.tsdb.wal-compression 參數(shù)壓縮 wal 文件病瞳,但將 wal 文件夾大小縮小到 40GB揽咕,重啟時間并無顯著加快。

考慮方案

1. 多實例 Prometheus

該方案吃力不討好L撞恕G咨啤!

  1. 由于 Prometheus 不支持負(fù)載均衡逗柴,那么多實例部署時需要將采集配置分散到多個實例上蛹头,需要大量工作將現(xiàn)有的抓取配置進(jìn)行拆分。
  2. 數(shù)據(jù)源拆分到多實例上戏溺,我們的 grafana 監(jiān)控面板需要重新定向數(shù)據(jù)源渣蜗。
  3. 報警規(guī)則可能不止依賴一個 metrics,那么如何拆分?jǐn)?shù)據(jù)源才能支持原有的報警規(guī)則旷祸?

2. Victoria

image

特點

  • 組件劃分:
    • Vmagent, vmselect, vminsert, vmstorage ......
  • 支持 Remote_write耕拷, 但不支持 Remote_read
  • 基于 PromQL 獨家實現(xiàn)的 VMQL
  • 可使用 prometheus-operator crd,用 vmagent, vmrule, vmalert 將 proemtheus 的采集和報警也替換托享,徹底告別 prometheus

  • 使用了 remote_write 導(dǎo)入數(shù)據(jù)骚烧,Prometheus 換節(jié)點重啟損失數(shù)據(jù)非常少
  • 數(shù)據(jù)流像瀑布流,架構(gòu)清晰容易理解闰围,組件可以橫向拓展
  • group_left 表達(dá)式會自動將 multi-multi 情況轉(zhuǎn)成 one-multi赃绊,簡化 PromQL

不酷

  • 一個 WebUI 都不提供,我懷疑他們招不起前端辫诅!Grafana 的 explore 查詢?nèi)肟跊]有 prometheus 的好用凭戴,而且 targets 和 rules 展示節(jié)點和報警實在是太方便了。

3. Thanos

image

特點

  • 組件劃分:
    • Sidecar, Query, Store Gateway, Compact, Ruler
  • Thanos 管理的最小單位是 tsdb 的本地 block炕矮,每 2 小時 Prometheus 會生成一個 block 文件么夫,Thanos Sidecar 負(fù)責(zé)將其上傳到存儲端者冤。
  • 最近 2h 的數(shù)據(jù)存儲于 prometheus,2h 以前的數(shù)據(jù)存儲于 thanos档痪。

  • 解決了 Prometheus 單點存儲的蛋疼問題涉枫,優(yōu)化了重啟時間
  • 數(shù)據(jù)長期存儲單獨管理,還支持?jǐn)?shù)據(jù)降采樣
  • Query 提供和 prometheus 相同的 WebUI腐螟,照顧到用戶 debug 和用戶習(xí)慣
  • 組件可以橫向拓展

不酷

  • Prometheus 2h 才打包一次塊并上傳愿汰,只使用本地文件系統(tǒng)的話,節(jié)點損壞會損失最多 2h 數(shù)據(jù)乐纸。因此衬廷,緊急換節(jié)點重啟服務(wù)失效的數(shù)據(jù)時長還是比較難接受的
  • Prometheus 有 remote_write,為什么要提供一個 sidecar汽绢?使用 remote_write 的話吗跋,query 只需要請求 store gateway
  • Compactor 是獨立組件,個人覺得放在 storage-gateway 一起就行了
  • 這種結(jié)構(gòu)導(dǎo)致了相同的文件塊會在組件間傳輸多次

最終方案

嘗試搭建了 Thanos 和 Victoria宁昭,發(fā)現(xiàn) Thanos 架構(gòu)導(dǎo)致部分?jǐn)?shù)據(jù)在各組件之間存在不必要的重復(fù)傳輸跌宛,所以選擇了更輕量的 Victoria。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末积仗,一起剝皮案震驚了整個濱河市疆拘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌寂曹,老刑警劉巖哎迄,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異稀颁,居然都是意外死亡芬失,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進(jìn)店門匾灶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人租漂,你說我怎么就攤上這事阶女。” “怎么了哩治?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵秃踩,是天一觀的道長。 經(jīng)常有香客問我业筏,道長憔杨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任蒜胖,我火速辦了婚禮消别,結(jié)果婚禮上抛蚤,老公的妹妹穿的比我還像新娘。我一直安慰自己寻狂,他們只是感情好岁经,可當(dāng)我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蛇券,像睡著了一般缀壤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上纠亚,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天塘慕,我揣著相機(jī)與錄音,去河邊找鬼蒂胞。 笑死图呢,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的啤誊。 我是一名探鬼主播岳瞭,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蚊锹!你這毒婦竟也來了瞳筏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤牡昆,失蹤者是張志新(化名)和其女友劉穎姚炕,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丢烘,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡柱宦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了播瞳。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掸刊。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖赢乓,靈堂內(nèi)的尸體忽然破棺而出忧侧,到底是詐尸還是另有隱情,我是刑警寧澤牌芋,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布蚓炬,位于F島的核電站,受9級特大地震影響躺屁,放射性物質(zhì)發(fā)生泄漏肯夏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一盈滴、第九天 我趴在偏房一處隱蔽的房頂上張望刷钢。 院中可真熱鬧废亭,春花似錦牙丽、人聲如沸货徙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽呻畸。三九已至碟贾,卻和暖如春币喧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背袱耽。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工杀餐, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人朱巨。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓史翘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親冀续。 傳聞我的和親對象是個殘疾皇子琼讽,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,033評論 2 355