Prometheus thanos Victoriametrics比較 victoria prometheus 區別 轉載

GaoYanbing發表於2024-07-01
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

相關文章