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我們可以對資料進行查詢,過濾,以及聚合,計算等操作。