1. 程式人生 > 實用技巧 >node-exporter安裝和詳解-適用於物理機虛擬機器的監控採集

node-exporter安裝和詳解-適用於物理機虛擬機器的監控採集

node-exporter: 採集node節點(物理機、虛擬機器、雲主機)監控指標資料,能夠採集到主機的執行指標如CPU, 記憶體,磁碟,網路,檔案數等資訊

1.k8s環境部署node-exporter

把node-export_v0_16.tar.gz映象上傳到master節點和node節點,然後解壓映象

wget http://download.zhufunin.com/k8s_1.16/node-exporter_v0_16.tar.gz
docker load -i node-exporter_v0_16.tar.gz

2.在k8s叢集部署node-exporter元件

(1)在k8s-master節點生成一個node-export.yaml檔案

wget http://download.zhufunin.com/k8s_1.16/node-export.yaml
cat node-export.yaml 
kubectl apply -f node-export.yaml 

2.通過node-export採集資料

curl http://192.168.124.16:9100/metrics

#node-export預設的監聽埠是9100,可以看到當前主機獲取到的所有監控資料,如下一段所示:

# HELP node_cpu_seconds_total Seconds the cpus spent in each mode.

# TYPE node_cpu_seconds_total counter

node_cpu_seconds_total{cpu="0",mode="idle"} 56136.98

# HELP node_load1 1m load average.

# TYPE node_load1 gauge

node_load1 0.58

#HELP:解釋當前指標的含義,上面表示在每種模式下node節點的cpu花費的時間,以s為單位

#TYPE:說明當前指標的資料型別,上面是counter型別

node_cpu_seconds_total{cpu="0",mode="idle"}

cpu0上idle程序佔用CPU的總時間,CPU佔用時間是一個只增不減的度量指標,從型別中也可以看出node_cpu的資料型別是counter(計數器)

node_load1該指標反映了當前主機在最近一分鐘以內的負載情況,系統的負載情況會隨系統資源的使用而變化,因此node_load1反映的是當前狀態,資料可能增加也可能減少,從註釋中可以看出當前指標型別為gauge(標準尺寸)

counter計數器:只是採集遞增的指標

gauge標準尺寸:統計的指標可增加可減少

3.列舉常見的監控指標:

node_boot_time:系統啟動時間

node_cpu:系統CPU使用量

nodedisk*:磁碟IO

nodefilesystem*:檔案系統用量

node_load1:系統負載

nodememeory*:記憶體使用量

nodenetwork*:網路頻寬

node_time:當前系統時間

go_*:node exporter中go相關指標

process_*:node exporter自身程序相關執行指標

4.使用PromQL語句查詢監控資料

rate(node_cpu[1m])

使用without表示式,可以將標籤CPU去除後聚合資料即可:

avg without(cpu) (rate(node_cpu[1m]))

那如果需要計算系統CPU的總體使用率,通過排除系統閒置的CPU使用率即可獲得:

1 - avg without(cpu) (rate(node_cpu{mode="idle"}[1m]))

5.PromQL總結

PromQL是Prometheus的查詢語言,通過PromQL我們可以對資料進行查詢,過濾,以及聚合,計算等操作。