1.docker安装node_exporter
docker run -d --net="host" --name node_exporter --restart=unless-stopped -p 9100:9100 \
-v "/proc:/host/proc:ro" \
-v "/sys:/host/sys:ro" \
-v "/:/rootfs:ro" \
prom/node-exporter
Web访问:http://ip:9100/metrics
2.在prometheus配置监控node_exporter所在的主机
采用服务发现功能
[root@localhost ~]# cd /usr/local/prometheus
[root@localhost prometheus]# mkdir sd_config
[root@localhost prometheus]# vi prometheus.yml
添加配置文件
- job_name: 'node'
file_sd_configs:
- files: ['/usr/local/prometheus/sd_config/node.yml']
refresh_interval: 5s
写服务发现文件
[root@localhost prometheus]# vim sd_config/node.yml
- targets:
- 192.168.226.133:9100
检查配置文件的语法是否正确
[root@localhost prometheus]# ./promtool check config prometheus.yml
Checking prometheus.yml
SUCCESS: 0 rule files found
重启服务
[root@localhost ~]# systemctl restart prometheus
在Web界面能看到如下则配置成功
3.查看资源使用率
- CPU5分钟内的平均利用率
100 - avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) by(instance)*100
- 内存使用率
100-(node_memory_MemFree_bytes+node_memory_Cached_bytes+node_memory_Buffers_bytes)/node_memory_MemTotal_bytes*100
- 磁盘使用率
100 -node_filesystem_free_bytes{mountpoint="/",fstype=~"rootfs"} /node_filesystem_size_bytes{mountpoint="/",fstype=~"rootfs"} *100
4.部署grafana实现图形化监控
自定义仪表盘
回到Home界面
填入CPU使用率的promQL语句,稍等一会就能看到图表有数据
100 - avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) by(instance)*100
以同样的方式添加其他两个图标,如下
导入官方仪表盘
在线导入
离线导入
下载仪表盘的Json文件:
在导入仪表盘时选择Upload.json file
效果和在线导入一致