一 聯邦介紹
聯合允許 Prometheus 服務器從另一個 Prometheus 服務器抓取選定的時間序列。
二 聯邦用例
聯邦有不同的用例。通常,它用於實現可擴展的 Prometheus 監控設置或將相關指標從一個服務的 Prometheus 提取到另一個服務中。
2.1 Hierarchical federation
分層聯邦允許 Prometheus 擴展到具有數十個數據中心和數百萬個節點的環境。在這個用例中,聯邦拓撲類似於一棵樹,更高級別的 Prometheus 服務器從大量從屬服務器收集聚合時間序列數據。
例如,一個設置可能由許多每個數據中心的 Prometheus 服務器組成,這些服務器收集高度詳細的數據(實例級向下鑽取),以及一組僅收集和存儲聚合數據(作業級向下鑽取)的全局 Prometheus 服務器) 來自那些本地服務器。這提供了聚合的全局視圖和詳細的局部視圖。
2.2 跨服務聯合
在跨服務聯合中,一個服務的 Prometheus 服務器被配置為從另一個服務的 Prometheus 服務器中抓取選定的數據,以便在單個服務器內對兩個數據集進行警報和查詢。
例如,運行多個服務的集群調度程序可能會公開有關在集群上運行的服務實例的資源使用信息(如內存和 CPU 使用情況)。另一方面,在該集群上運行的服務只會公開特定於應用程序的服務指標。通常,這兩組指標由單獨的 Prometheus 服務器抓取。使用聯合,包含服務級別指標的 Prometheus 服務器可以從集群 Prometheus 中提取有關其特定服務的集群資源使用指標,以便可以在該服務器中使用這兩組指標。
三 配置聯邦
3.1 主Prometheus配置
scrape_configs:
- job_name: "federate"
honor_labels: true
metrics_path: '/federate'
params:
'match[]':
- '{job=~".*"}' #匹配需要抓取的Prometheus Server配置的所有job
static_configs:
- targets:
- "192.168.174.103:9090" #需要抓取數據的Prometheus Server
3.2 驗證Prometheus web界面