Prometheus學習

文章目錄

0.架構

在這裏插入圖片描述
Prometheus 工作流程:

  • 1.Prometheus Server 定期從配置好的Jobs/exporters Pull metrics,或者監控數據先推送到 Push Gateway 上,然後再由 Prometheus Server 端採集 Pull metrics,或者從其他的 Prometheus server 中 Pull metrics。
  • 2.Prometheus server 在本地存儲收集到的 metrics,並運行已定義好的 alert.rules,記錄新的時間序列或者向 Alertmanager 推送警報。
  • 3.Alertmanager 根據配置文件,對接收到的警報進行處理,發出告警。

Prometheus Server: 核心部分,負責實現對監控數據(時間序列數據)的獲取(Pull)存儲(TSDB)以及查詢(PromQL)。 可以通過靜態配置管理監控目標,也可以配合使用Service Discovery的方式動態管理監控目標,並從這些監控目標中獲取數據。其次Prometheus Server需要對採集到的監控數據進行存儲,Prometheus Server本身就是一個時序數據庫,將採集到的監控數據按照時間序列的方式存儲在本地磁盤當中。最後Prometheus Server對外提供了自定義的PromQL語言,實現對數據的查詢以及分析。

Client Library: 客戶端庫,爲需要監控的服務生成相應的 metrics 並暴露給 Prometheus server。當 Prometheus server 來 pull 時,直接返回實時狀態的 metrics。

Push Gateway: 主要用於短期的 jobs。由於這類 jobs 存在時間較短,可能在 Prometheus server 來 pull 之前就消失了。爲此,這些 jobs 可以直接向 Prometheus server 端推送它們的 metrics。

Exporters: 負責從目標處蒐集數據,並將其轉化爲Prometheus支持的格式,用於暴露已有的第三方服務的 metrics 給 Prometheus。Exporter將監控數據採集的端點通過HTTP服務的形式暴露給Prometheus Server,Prometheus Server通過訪問該Exporter提供的Endpoint端點,即可獲取到需要採集的監控數據。

Alertmanager: 從 Prometheus server 端接收到 alerts 後,會進行去除重複數據,分組,並路由到對方的接受方式,發出報警。常見的接收方式有:電子郵件,pagerduty 等。

WEB UI: Prometheus Server內置的Express Browser UI,通過這個UI可以直接通過PromQL實現數據的查詢以及可視化。

Service Discovery: 服務發現,Prometheus支持多種服務發現機制:文件,DNS,Consul,Kubernetes,OpenStack,EC2等等。基於服務發現的過程並不複雜,通過第三方提供的接口,Prometheus查詢到需要監控的Target列表,然後輪訓這些Target獲取監控數據。

Discover targets:發現目標
Notify:通知,通告
Retrieval:採樣模塊
TSDB:存儲模塊默認本地存儲爲tsdb
HTTP Server:提供http接口查詢和麪板,默認端口爲9090

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章