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我们可以对数据进行查询,过滤,以及聚合,计算等操作。

 

 

 

 

 

 

 

原文地址:https://www.cnblogs.com/faberbeta/p/13343450.html