prometheus+grafana+node-exporter监控linux(二)

node-exporter是采集linux硬件数据的软件,比如CPU使用率,内存等数据
一、下载安装运行node-exporter(默认9100端口)
采用的是docker安装
https://github.com/prometheus/node_exporter/releases
docker本地安装方法
(以使用docker本地安装将最新版node-exporter打成tar包)

#docker load -i node-exporter.tar
#docker run -d -p 9100:9100   --name=node-exporter   -v "/proc:/host/proc:ro"   -v "/sys:/host/sys:ro"   -v "/:/rootfs:ro"     prom/node-exporter:latest

访问nodeIP:9100 或http://nodeIP:9100/metrics能访问且有数据就代表安装成功
在这里插入图片描述
二、node-exporter常用监控项promQL

注:$node  为grafana模板变量,$node=label_values(node_exporter_build_info,instance)

CPU使用率(不使用by(instance)函数,在grafana面板中无法显示出具体监控的ip)

100 - (avg(irate(node_cpu_seconds_total{instance=~"$node",mode="idle"}[5m])) by(instance)* 100)

有by(instance)显示效果
在这里插入图片描述
无by(instance)显示效果在这里插入图片描述
句柄使用率

node_filefd_allocated{instance=~'$node'}/node_filefd_maximum{instance=~'$node'}*100

内存使用率

(1 - (node_memory_MemAvailable_bytes{instance=~"$node"} / (node_memory_MemTotal_bytes{instance=~"$node"})))* 100

内存总量

node_memory_MemTotal_bytes{instance=~"$node"}
或
sum(node_memory_MemTotal_bytes{instance=~"$node"}) 

已用内存

node_memory_MemTotal_bytes{instance=~"$node"} - node_memory_MemAvailable_bytes{instance=~"$node"}

可用内存

node_memory_MemAvailable_bytes{instance=~"$node"}

交换分区使用率

(1 - (node_memory_SwapFree_bytes{instance=~"$node"} / node_memory_SwapTotal_bytes{instance=~"$node"})) * 100 

系统运行时间

sum(time() - node_boot_time_seconds{instance=~"$node"}) 

系统5分钟的负载

node_load5{instance=~"$node"}  

三、监控效果展示
在这里插入图片描述
可以去grafana官网找模板,然后根据实际需求做调整。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐