普羅公尺修斯011

2021-10-06 16:01:03 字數 1294 閱讀 7823

prometheus server是prometheus元件中的核心部分,負責實現對監控資料的獲取,儲存以及查詢。 prometheus server可以通過靜態配置管理監控目標,也可以配合使用service discovery的方式動態管理監控目標,並從這些監控目標中獲取資料。其次prometheus server需要對採集到的監控資料進行儲存,prometheus server本身就是乙個時序資料庫,將採集到的監控資料按照時間序列的方式儲存在本地磁碟當中。最後prometheus server對外提供了自定義的promql語言,實現對資料的查詢以及分析。

prometheus server內建的express browser ui,通過這個ui可以直接通過promql實現資料的查詢以及視覺化。

prometheus server的聯邦集群能力可以使其從其他的prometheus server例項中獲取資料,因此在大規模監控的情況下,可以通過聯邦集群以及功能分割槽的方式對prometheus server進行擴充套件。

exporter將監控資料採集的端點通過http服務的形式暴露給prometheus server,prometheus server通過訪問該exporter提供的endpoint端點,即可獲取到需要採集的監控資料。

一般來說可以將exporter分為2類:

直接採集:這一類exporter直接內建了對prometheus監控的支援,比如cadvisor,kubernetes,etcd,gokit等,都直接內建了用於向prometheus暴露監控資料的端點。

間接採集:間接採集,原有監控目標並不直接支援prometheus,因此我們需要通過prometheus提供的client library編寫該監控目標的監控採集程式。例如: mysql exporter,jmx exporter,consul exporter等。

在prometheus server中支援基於promql建立告警規則,如果滿足promql定義的規則,則會產生一條告警,而告警的後續處理流程則由alertmanager進行管理。在alertmanager中我們可以與郵件,slack等等內建的通知方式進行整合,也可以通過webhook自定義告警處理方式。alertmanager即prometheus體系中的告警處理中心。

由於prometheus資料採集基於pull模型進行設計,因此在網路環境的配置上必須要讓prometheus server能夠直接與exporter進行通訊。 當這種網路需求無法直接滿足時,就可以利用pushgateway來進行中轉。可以通過pushgateway將內部網路的監控資料主動push到gateway當中。而prometheus server則可以採用同樣pull的方式從pushgateway中獲取到監控資料。

普羅公尺修斯0102

只要exporter在執行,你可以在任何地方 比如在本地 搭建你的監控系統 你可以更容易的檢視監控目標例項的健康狀態,並且可以快速定位故障 更利於構建devops文化的團隊 松耦合的架構模式更適合於雲原生的部署環境。consul作為乙個通用的服務發現和註冊中心,記錄並且管理了環境中所有服務的資訊。p...

普羅公尺修斯Prometheus介紹

什麼是prometheus?prometheus是由soundcloud開發的開源監控報警系統和時序列資料庫 tsdb prometheus使用go語言開發,是google borgmon監控系統的開源版本。工作原理圖 牛 prometheus還提供http api的查詢方式,自定義所需要的輸出。很...

搭建普羅公尺修斯Prometheus監控系統

prometheus 由go語言 golang 開發 是一套開源的監控 報警 時間序列資料庫的組合。適合監控docker容器。因為k8s的流行帶動了prometheus的發展。時間序列資料 timeseries data 按照時間順序記錄系統 裝置狀態變化的資料被稱為時序資料。應用場景很多,如 無人...