Prometheus 高可用方案
在下方公眾號后臺回復(fù):面試手冊,可獲取杰哥匯總的 3 份面試 PDF 手冊。
本文介紹了 Prometheus 的高可用官方方案和自研高可用方案。
一、現(xiàn)實可用的小規(guī)模高可用方案
關(guān)于 Prometheus 的高可用,官方文檔中只提供了一個解決方案,具體實現(xiàn)方式如下:

使用兩個 Prometheus 主機監(jiān)控同樣的目標(biāo),然后有告警出現(xiàn),也會發(fā)送同樣的告警給 Alertmanager,然后使用 Alertmanager 自身的去重告警功能,只發(fā)出一條告警出來。從而實現(xiàn)了 prometheus 高可用的一個架構(gòu)。?基于此架構(gòu),我們還可以使用 keepalived 做雙機熱備,通過 VIP 與 grafana 相連。實現(xiàn)一個完整的帶 web 界面展示告警的高可用 Prometheus 監(jiān)控架構(gòu)。

根據(jù)查找的資料,可知 Prometheus 的監(jiān)控數(shù)量和 Prometheus 主機的內(nèi)存和磁盤大小的關(guān)系表。


根據(jù)表格中數(shù)據(jù),我們可以用兩臺 8G 內(nèi)存,磁盤大小為 100G 的 Prometheus 主機做主備架構(gòu),進行 500 個節(jié)點以下的基礎(chǔ)架構(gòu)的監(jiān)控,然后由于抓取間隔和數(shù)據(jù)留存時間的設(shè)定是直接關(guān)乎內(nèi)存和磁盤空間的使用率,所以我們可以通過調(diào)整這兩點,來調(diào)整內(nèi)存和磁盤空間到合適的值。
二、大規(guī)模監(jiān)控的高可用方案
根據(jù)官方文檔,Prometheus 有一個面向于大規(guī)模目標(biāo)監(jiān)控的功能** FEDERATION **聯(lián)邦機制,是指從其它 Prometheus 主機上抓取特定的數(shù)據(jù)到一個匯總的 Prometheus 主機中,既然是從其它 Prometheus 主機匯總而來,那么數(shù)據(jù)量會很大,難以長久儲存在主機本地,所以我們需要使用 Prometheus 的遠程讀寫數(shù)據(jù)庫的功能,來遠程保存至第三方數(shù)據(jù)庫。?而這個用于匯總的 Prometheus 主機,我們也使用主備兩臺主機做高可用處理,不過與第三方數(shù)據(jù)庫之間需要用一個 adapter 工具,來做主備數(shù)據(jù)庫傳輸切換。如下圖所示。

在這里第三方存儲是使用的 PostgreSQL + TimescaleDB,而 adapter 是用的官方開發(fā)的 Prometheus-postgresql-adpter 自帶 leader 切換的功能,當(dāng)設(shè)置好 Prometheus 和 adapter 后,如果 adapter 長時間沒有收到對應(yīng)的 Prometheus 的數(shù)據(jù),那么它會自動鎖定然后切換到備用 adapter,備用 adpter 會將自己所對應(yīng)的 Prometheus 主機的數(shù)據(jù)發(fā)往第三方存儲。?也就是說,這兩臺 Prometheus 主機都是會實時接收其它相同 Prometheus 主機的數(shù)據(jù),然后只有其中一方的數(shù)據(jù)會被標(biāo)識為 leader 的 adapter 發(fā)送到第三方存儲中。完整架構(gòu)圖如下。

三、總結(jié)
不管是第一章的小規(guī)模監(jiān)控高可用方案還是第二章的大規(guī)模監(jiān)控高可以方案,主要應(yīng)用的還是 Prometheus 官方文檔提到高可用方法和 Prometheus 的聯(lián)邦機制機遠程讀寫存儲的功能。而主備切換的工具 keepalive 和 Prometheus-postgresql-adpter,以及遠程數(shù)據(jù)庫 PostgreSQL+TimescaleDB,這些都可以替換成 Nginx proxy、服務(wù)注冊工具 consul,遠程存儲 Thanos,我們可以根據(jù)實際需求做測試,再決定使用哪些第三方工具。
轉(zhuǎn)自:wrf2020
jianshu.com/p/bccfc58bcbcd
推薦閱讀
Prometheus + Thanos 多集群架構(gòu)監(jiān)控
Prometheus 監(jiān)控系統(tǒng),它有多強!
性能監(jiān)控工具之 Grafana + Prometheus + Exporters
Docker環(huán)境部署Prometheus+Grafana監(jiān)控系統(tǒng)
實戰(zhàn) Prometheus 搭建監(jiān)控系統(tǒng)

