prometheus學習系列一: Prometheus簡介


Prometheus簡介

prometheus受啟發於Google的Brogmon監控系統(相似kubernetes是從Brog系統演變而來), 從2012年開始由google工程師Soundcloud以開源形式進行研發,並且與2015年早起對外發布早期版本。 2016年5月繼kubernetes之后成為第二個加入CNCF基金會的項目,童年6月正式發布1.0版本。2017年底發布基於全興存儲層的2.0版本,能更好地與容器平台、雲平台配合。

prometheus的優勢

prometheus是基於一個開源的完整監控方案,其對傳統監控系統的測試和告警模型進行了徹底的顛覆,形成了基於中央化的規則計算、統一分析和告警的新模型。 相對傳統的監控系統有如下幾個優點。

  • 易於管理: 部署使用的是go編譯的二進制文件,不存在任何第三方依賴問題,可以使用服務發現動態管理監控目標。
  • 監控服務內部運行狀態: 我們可以使用prometheus提供的常用開發語言提供的client庫完成應用層面暴露數據, 采集應用內部運行信息。
  • 強大的查詢語言promQL: prometheus內置一個強大的數據查詢語言PromQL,通過PromQL可以實現對監控數據的查詢、聚合。同時PromQL也被應用於數據可視化(如grafana)以及告警中的。
  • 高效: 對於監控系統而言,大量的監控任務必然導致有大量的數據產生。 而Prometheus可以高效地處理這些數據。
  • 可擴展: prometheus配置比較簡單, 可以在每個數據中心運行獨立的prometheus server, 也可以使用聯邦集群,讓多個prometheus實例產生一個邏輯集群,還可以在單個prometheus server處理的任務量過大的時候,通過使用功能分區和聯邦集群對其擴展。
  • 易於集成: 目前官方提供多種語言的客戶端sdk,基於這些sdk可以快速讓應用程序納入到監控系統中,同時還可以支持與其他的監控系統集成。
  • 可視化: prometheus server自帶一個ui, 通過這個ui可以方便對數據進行查詢和圖形化展示,可以對接grafana可視化工具展示精美監控指標。

Prometheus基礎架構

 

上面的架構圖已經畫的足夠詳細了。 這里在簡單說下, prometheus負責從pushgateway和job中采集數據, 存儲到后端Storatge中,可以通過PromQL進行查詢, 推送alerts信息到AlertManager。 AlertManager根據不同的路由規則進行報警通知。

核心組件

Prometheus

prometheus server是Prometheus組件中的核心部分,負責實現對監控數據的獲取,存儲以及查詢。

exporters

exporter簡單說是采集端,通過http服務的形式保留一個url地址,prometheus server 通過訪問該exporter提供的endpoint端點,即可獲取到需要采集的監控數據。exporter分為2大類。

  • 直接采集:這一類exporter直接內置了對Prometheus監控的支持,比如cAdvisor,Kubernetes等。
  • 間接采集: 原有監控目標不支持prometheus,需要通過prometheus提供的客戶端庫編寫監控采集程序,例如Mysql Exporter, JMX Exporter等。

AlertManager

在prometheus中,支持基於PromQL創建告警規則,如果滿足定義的規則,則會產生一條告警信息,進入AlertManager進行處理。可以集成郵件,Slack或者通過webhook自定義報警。

PushGateway

由於Prometheus數據采集采用pull方式進行設置的, 內置必須保證prometheus server 和對應的exporter必須通信,當網絡情況無法直接滿足時,可以使用pushgateway來進行中轉,可以通過pushgateway將內部網絡數據主動push到gateway里面去,而prometheus采用pull方式拉取pushgateway中數據。

應用場景

適合場景

普羅米修斯可以很好地記錄任何純數字時間序列。它既適合以機器為中心的監視,也適合高度動態的面向服務的體系結構的監視。在微服務的世界中,它對多維數據收集和查詢的支持是一個特別的優勢。普羅米修斯是為可靠性而設計的,它是您在停機期間使用的系統,允許您快速診斷問題。每台普羅米修斯服務器都是獨立的,不依賴於網絡存儲或其他遠程服務。當您的基礎設施的其他部分被破壞時,您可以依賴它,並且您不需要設置廣泛的基礎設施來使用它。

不適合場景

普羅米修斯值的可靠性。您總是可以查看有關系統的統計信息,即使在出現故障的情況下也是如此。如果您需要100%的准確性,例如按請求計費,普羅米修斯不是一個好的選擇,因為收集的數據可能不夠詳細和完整。在這種情況下,最好使用其他系統來收集和分析用於計費的數據,並使用Prometheus來完成剩下的監視工作。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM