天天看點

Prometheus監控運維實戰七: 主機監控名額

在上一篇文章中我們學習了如何通過node-exporter擷取主機監控資訊。但安裝好監控隻是第一步,我們還需要知道哪些監控名額是我們需要關注的。

本文将對prometheus相關的主機監控名額進行介紹。

以上三個名額為主機的cpu平均負載,分别對應一分鐘、五分鐘和十五分鐘的時間間隔。cpu負載是指某段時間内占用cpu時間的程序和等待cpu時間的程序數之和。一般來說,cpu負載數/cpu核數如果超過0.7,應該開始關注機器性能情況 ,如果超過1的話,運維人員應該介入處理。

該名額包括了多個标簽,分别标記每種處理模式使用的cpu時間,該名額為counter類型。這個名額不适合直接拿來使用,可通過前面學習的promql,将其轉化成cpu使用率的名額 。

Prometheus監控運維實戰七: 主機監控名額

mode="idle"代表cpu 的空閑時間,是以我們隻需要算出空閑的時間占比,再以總數減去該值 ,便可知道cpu的使用率,此處使用irate方法。由于現有的伺服器一般為多核,是以加上avg求出所有cpu的平均值,便是cpu的使用率情況 ,如下 :

對于記憶體,我們一般會關注記憶體的使用率,但node-exporter并不直接進行計算,我們需要根據node-exporet傳回的記憶體名額自己寫計算公式 。

需要用到的記憶體名額有下列幾個:

計算的公式為:(總記憶體  -(空閑記憶體 + 緩沖緩存 + 頁面緩存))/ 總記憶體 * 100

swap為分換記憶體分區,它使用磁盤上的部分空間來充當伺服器記憶體,當系統實體記憶體吃緊時,linux 會将記憶體中不常通路的資料儲存到 swap 上,這樣系統就有更多的實體記憶體為各個程序服務。而當系統需要通路 swap 上存儲的内容時,再将 swap 上的資料加載到記憶體中,這就是常說的換出和換入。交換空間可以在一定程度上緩解記憶體不足的情況,但是它需要讀寫磁盤資料,是以性能不是很高。

swap記憶體用到的名額如下:

計算的公式如下

分區使用率的名額可以通過分區空間總容器和分區空閑容量計算出來

由于主機一般會有多個分區 ,需要通過名額的标簽mountpoint 進行區分 ,如 擷取 / 分區磁盤使用率可使用下列公式 

上面兩個名額分别對應了分區讀寫的總位元組數,名額為counter類型。前面文章講過,counter類型會不斷的累加,該名額直接使用對于監控沒有意義,但可通過下面公式轉化為磁盤的每秒讀寫速率。 device代表對應的磁盤分區。

iops表示每秒對磁盤的讀寫次數,它與吞吐量都是衡量磁盤的重要名額。對于iops的監控,可通過下面兩個名額算得出

計算公式與上面相似,使用我們熟悉的irate或rate函數來處理

網卡流量一般分為上傳和下載下傳流量,下面兩個名額分别為總的位元組數,可通過這兩個名額計算出來網卡每秒流量

計算公式如下,此處排除loopback 網卡

除了監控主機的性能參數外,我們還需要關注執行個體的可用性情況,比如是否關機、exporter是否正常運作等。在exporter傳回的名額,有一個up名額,可用來實作這類監控需求。

主機監控是監控平面中最底層的一類,雖然基礎但是非常重要,隻有在主機層面穩定了,上層應用才能更好的運作。本文講解的内容隻是主機監控中的基本名額,node-exporter自身還提供不少有用的名額,包括支援textfile的自定義名額。在生産環境中,需要根據實際情況進行調試。

繼續閱讀