prometheus的協助方案thanos
prometheus作為一站式監控方式(程式包含抓取,儲存,sql查詢等等功能)被大家廣泛接受,如果作為一個短期或者一段時期的監控,他的功能非常齊全,在小規模的採集中,完全不需要依賴其他元件就可以達到監控的目的,這裡說的是監控的目的,接入grafana那個是展示的部分。但是應對大叢集,大資料量的情況,他的表現如何,需要我們帶著這個問題分析一下。
prometheus的不足
- 弱叢集化
prometheus的方案和資料庫類似,主要是水平的切割,例如1w的叢集,10臺prometheus抓取,那麼一臺prometheus負責抓取100個程式。可能有人會提出prometheus是有聯邦模式的,叢集的部署方式如下,為了保證高可用,一個程式的資訊被兩臺或者更多的prometheus抓取,這樣即使當機了一臺,其餘兩臺可以繼續工作。這裡必須說明的是,這樣的多活其實是多次抓取,算不上一個資料的同步過程了,因為3臺prometheus抓取同一個程式3次,很可能是取到的是三個狀態,有明顯的ABA的問題,但是在監控中,這個是可以接受的,只要不是一直維護的狀態,瞬間的變化並不會帶來影響,典型的cpu飆高,1毫秒上升到90%然後下降,這個狀態,是否能捕捉到並不影響我們診斷。最後多臺prometheus相當於一個叢集,用一個只讀的prometheus去代理查詢就可以了。這個叢集的方案確實不是什麼特別好的方案。 - 資料沒有保障
之所以說上面的方案不是一個很好的方案,是因為資料是分散在多臺prometheus的。在變動或者長期儲存的時候,他依賴了本地磁碟,這個是一個很嚴重的問題,本地磁碟並不是一個高可用的儲存方案,他的資料變的沒有保障。
thanos的功能補充
thanos的存在則補充了上面的一些問題。
thanos query 專業做查詢排程的元件,角色相當於代理只讀的prometheus。
thanos sidecar 接受query查詢的載體,他有兩個功能,一個是作為prometheus的代理,如果有查詢過來,是透過 sidecar與prometheus進行互動,而不是直接和prometheus互動,另外一個是搬運prometheus的資料到高可用的檔案系統裡。
thanos compactor 可以做壓縮和下采樣,由於prometheus自身其實是有這種功能的,這個元件就相當於是一個叢集環境下的一個專業的元件吧。
thanos store 這個元件相當重要,我們的資料儲存到一個高可用的儲存裡的時候,prometheus是無法直接讀取查詢的,這樣就必須出現一個可以讀取高可用系統檔案的角色,這就是store。query發起查詢的時候,會給store和sidecar,在查詢角度看store和sidecar都是一種可以返回結果的代理。
解決的方式
資料沒有保障的問題,就是透過sidecar把他傳送到高可用的儲存系統裡,這樣就保障了資料的可靠性。
現在再來分析這個系統,叢集化方案更完美了。prometheus主要變成了一個儲存一段時間資料的載體。
thanos store是可以根據時間做分片的,我們現在看這個系統,就是根據時間分片,現在看整個時間的跨度,變成了多個store和一個sidecar。最終組成了整個時序的資料,資料已經有了橫向和縱向的切割,水平方向分prometheus抓取,縱向分時間查詢,這樣就很好的保證了資料的量的減少,並且提高了資料查詢的並行度,例如查詢5天的資料,store可以變成1到2一個區間,3到5一個區間,查詢的時候2個store可以同時工作查詢,而且更好的利用compactor進行資料的壓縮和下采樣,讓資料點更少了。資料最終彙集到query,query會進行整理和去重。
這裡需要解釋一下為什麼要去重,prometheus的高可用主要靠的是多活,但是帶來的一個問題是他的資料會被採集多分,我們要的只是一個程式的一個時間序列而已,並不需要重複的資料,例如三個prometheus就有會出現三個類似接近的時間序列,去重主要是應對這種狀態的,還有就是store分割的有重複也會帶來重複的資料,因為store是可以做相對時間的切分的,例如最近1d的資料,最近2d的資料,這就需要一個同步資料的過程,最好的做法就是邊界都帶上,保證在查詢的時候不會因為大家的同步的程度不一樣,導致邊界的資料丟失的情況。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2318/viewspace-2823175/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Prometheus thanos Victoriametrics比較 victoria prometheus 區別 轉載Prometheus
- 使用Thanos實現Prometheus指標聯邦Prometheus指標
- 詳細教程丨使用Prometheus和Thanos進行高可用K8S監控PrometheusK8S
- [ thanos原始碼分析系列 ]thanos query元件原始碼簡析原始碼元件
- Thanos解碼:打造企業級雲原生監控解決方案
- Prometheus告警帶圖完美解決方案Prometheus
- VNC遠端協助軟體,VNC遠端協助軟體下載!VNC
- Istio採集指標prometheus+grafana方案指標PrometheusGrafana
- Thanos工作原理及元件簡介元件
- Prometheus多叢集監控的3種方案,你選哪種?Prometheus
- 利用ELK協助安全性攻擊的資料分析
- native 切換 webview 失敗,求大神協助WebView
- PrometheusPrometheus
- 企業雲盤協助傳統企業的資料管理
- KubeSphere 宣佈開源 Thanos 的企業級發行版 Whizard
- Kubernetes監控實踐(2):可行監控方案之Prometheus和SensuPrometheus
- Go Module 支援 HTTP 協議的私有庫方案GoHTTP協議
- Winserver 陰影會話,遠端協助相關Server會話
- 記一次協助排查許可權問題的經歷
- 讓企業的幫助文件更容易編寫的解決方案——HelpLook
- 天空衛士協助蒙牛打造資料安全堡壘
- SAIC協助美國農業部(USDA)實施RPAAI
- Linux系統安裝向日葵遠端協助Linux
- [Hacker News 週報] Vite 3.0 釋出;Bun 效能實測;效能更強的 Prometheus 替代方案VitePrometheus
- 使用 Mac 內建的螢幕共享功能進行遠端桌面協助Mac
- 協同系統的中CRM對企業運營有什麼幫助?
- 一次難忘的協助解決Oracle RAC恢復過程Oracle
- Prometheus第一篇:Prometheus架構解析Prometheus架構
- Prometheus 瘦身第一步,使用 mimirtool 找到沒用的 Prometheus 指標Prometheus指標
- YottaChain泛圈企業雲盤協助設計企業AI
- prometheus告警配置Prometheus
- Nacos Prometheus GrafanaPrometheusGrafana
- 入門PrometheusPrometheus
- 解析Prometheus PromQLPrometheusMQ
- Prometheus 入門Prometheus
- Prometheus 整合 AlertManagerPrometheus
- helm 部署PrometheusPrometheus
- 為團隊提供專業的檔案協作方案