Prometheus 介紹


我們知道zabbix在監控界占有不可撼動的地位,功能強大。但是對容器監控顯得力不從心。為解決監控容器的問題,引入了prometheus技術。prometheus號稱是下一代監控。接下來的文章打算圍繞prometheus做一個系列的介紹,順便幫自己理清知識點。


一、簡介

  prometheus是由谷歌研發的一款開源的監控軟件,目前已經被雲計算本地基金會托管,是繼k8s托管的第二個項目。

二、優勢

  易於管理

  輕易獲取服務內部狀態

  高效靈活的查詢語句

  支持本地和遠程存儲

  采用http協議,默認pull模式拉取數據,也可以通過中間網關push數據

  支持自動發現

  可擴展

  易集成

三、prometheus運行流程

prometheus根據配置定時去拉取各個節點的數據,默認使用的拉取方式是pull,也可以使用pushgateway提供的push方式獲取各個監控節點的數據。將獲取到的數據存入TSDB,一款時序型數據庫。此時prometheus已經獲取到了監控數據,可以使用內置的PromQL進行查詢。它的報警功能使用Alertmanager提供,Alertmanager是prometheus的告警管理和發送報警的一個組件。prometheus原生的圖標功能過於簡單,可將prometheus數據接入grafana,由grafana進行統一管理。

四、監控的目的

  google指出,監控分為白盒監控和黑盒監控之分。

  白盒監控:通過監控內部的運行狀態及指標判斷可能會發生的問題,從而做出預判或對其進行優化。

  黑盒監控:監控系統或服務,在發生異常時做出相應措施。

  監控的目的如下:

    1、根據歷史監控數據,對為了做出預測

    2、發生異常時,即使報警,或做出相應措施

    3、根據監控報警及時定位問題根源

    4、通過可視化圖表展示,便於直觀獲取信息

五、常用概念

  prometheus采集到的監控數據均以metric(指標)形式保存在時序數據庫中(TSDB)

  每一條時間序列由 metric 和 labels 組成,每條時間序列按照時間的先后順序存儲它的樣本值。

  默認情況下各監控client向外暴露一個HTTP服務,prometheus會通過pull方式獲取client的數據,數據格式如下:

#  HELP node_cpu Seconds the cpus spent	in each	mode. 
#  TYPE node_cpu counter 
node_cpu{cpu="cpu0",mode="idle"}	362812.7890625 
#  HELP node_load1 1m	load	average. 
#  TYPE node_load1 gauge 
node_load1 3.0703125

  以#開頭的表示注釋信息,解釋了每一個指標的監控目的和類型

  node_cpu表示監控指標的名稱

  {}內的內容是標簽,以鍵值對的方式記錄 

  數字是這個指標監控的數據

  下圖橫坐標代表的是時間(時間戳的方式記錄在TSDB中),縱坐標代表了各種不同的指標名稱,坐標系中的黑點代表了各個指標在不同時間下的值。

  每一個橫線 就是時間序列

  每個黑點就是樣本(prometheus將樣本以時間序列的方式保存在內存中,然后定時保存到硬盤上)

 

   指標(metric)的格式如下:

<metric	name>{<label	name>=<label	value>,	...}

  指標名稱反映的是監控了什么。

  標簽反映的是樣本的維度,可以理解成指標的細化。比如:

api_http_requests_total{method="POST",	handler="/messages"}

  指標是“api_http_requests_total”,含義是通過api請求的http總數。

  標簽“method="POST"” "handler="/messages""代表了這些http請求中 POST 請求 並且 handler是/messages的數量

  上述指標等同於:

{__name__="api_http_requests_total",method="POST",	handler="/messages"}

  

  指標有四種類型

  1、Counter  只增不減  計數器

  2、Gauge  可增可減    儀表盤

  3、Histogram  直方圖

  4、Summary  摘要型

 


免責聲明!

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



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