Prometheus監控系列之二:Prometheus運行框架和數據格式介紹

Prometheus體系結構

下圖說明了Prometheus的體系結構及其某些生態系統組件:

  • Prometheus Server

    這裏是prometheus的服務端,也就是核心。prometheus本身是一個以進程方式啓動,之後以多進程和多線程實現監控數據收集、計算、查詢、更新和存儲的一個c/s模型運行模式。

  • service discovery

    這是prometheus可以集成的服務發現功能。如果配合了例如consul這種服務發現軟件,prometheus的配置文件就不再需要人工去手動定義出來,而是能自動發現集羣中有哪些新機器以及新機器上出現了哪些新服務可以被監控。

  • prometheus客戶端

    主要有兩種採集方式pull/push。pull主動拉取的方式push被動推送的方式

   pull:指的是客戶端(被監控機器)先安裝各類已有exporters(由社區組織或企業開發的監控客戶端插件)在系統上之後,exporters以守護進程的模式運行並開始採集數據。prometheus採用pull這種主動拉的方式(HTTP get)去訪問每個節點上exporter採樣回需要的數據。

    push:指的是在客戶端(或者服務端)安裝這個官方提供的pushgateway插件,然後我們運維自行開發的各種腳本把監控數據組織成k/v形式發送給pushgateway之後,pushgateway會再推送給prometheus。這是一種被動的數據採集方式。

  • Alertmanager

    

 

Prometheus數據格式

metrics概念

    metrics是一種對採樣數據的總稱(metrics並不代表某一種具體的數據格式,是一種度量計算單位的抽象)。

  • Gauges

    最簡單的度量指標,只有一個簡單的返回值,或瞬時狀態。例如:若要監控硬盤容量或者內存的使用量,那麼就應該使用GAuges的metrics格式來度量。因爲硬盤的容量或者內存的使用量是隨着時間的推移不斷的瞬時變化的。

  • counters

    counter就是計算器,從數據量0開始累積計算,在理想狀態下,只能是永遠的增長,不會降低。

  • Histograms

    主要用來統計數據的分佈情況。比如最大值、最小值、中間值。這是一種特殊的metrics數據類型,代表的是一種近似的百分比估算數值。

 

k/v數據形式

例如:process_max_fds  65535    以空格隔開

 

exporter的使用(pull形式採集數據)

    官網提供了很多的expoerter插件可以使用。如:consul_exporter、mysqld_exporter、node_exporter等。比較最常用的node_exporter非常強大,幾乎把Linux系統中和系統本身相關的監控數據全抓出來了。

 

pushgateway的使用(push形式採集數據)

     之前說的exporter會首先安裝在被監控服務器上,運行在後臺,最後進行自動系統數據採集。本身是一個HTTP_server,可以被prometheus服務器定時去http get取得數據,屬於pull的形式。

     而push形式是把ushgateway安裝在客戶端或者服務端(其實裝哪都一樣),pushgateway本身也是一個HTTP服務。

      運維同學也可以自己寫腳本,將自己抓取到的數據推動到pushgateway,再去pushgateway推送到prometheus服務端。

 

 

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