小丽说:小胖,最近测试环境总是出现部分请求处理不了的情况,你看什么情况?小胖笑着脸说:我来看看什么原因。通过查看网关日志,发现也不是所有的请求都被拒绝了,通过分析发现,被拒绝的请求都有一个特征,就是请求参数过多。小胖想了半天也没想明白什么原因。于是小胖赶紧跟小张求救。小张看了后,发现这块确实有点诡异,小张开玩笑的问,本地硬盘不会满了吧。小胖说,这块我没关注呢。检查发现果然满了。本地硬盘清理了一波后,发现所有请求果然正常了。小胖对小张说:谢谢提醒。小胖说,虽然我们建设了promethues监控系统,但是对这一块的监控确实空白,通过查阅资料,小胖总算把这块监控空白给补上了。小胖心想,这块得记下来。
第一步、安装node_exporter
下载: wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
解压:tar -xf node_exporter-0.18.1.linux-amd64.tar.gz
移动:cp node_exporter-0.18.1.linux-amd64/node_exporter /usr/local/bin/
第二步、配置启动脚本
vim /usr/lib/systemd/system/node_exporter.service
内容如下
[Unit]
Description=Prometheus node_exporter
[Service]
User=nobody
ExecStart=/usr/local/bin/node_exporter --log.level=error
ExecStop=/usr/bin/killall node_exporter
MemoryLimit=300M #限制内存使用最多300M
CPUQuota=100% #限制CPU使用最多一个核
[Install]
WantedBy=default.target
第三步、启动(这里以centos7为例)
重新加载配置文件:systemctl daemon-reload
设置服务开机自动启动:systemctl enable node_exporter
启动服务:systemctl start node_exporter
第四部、验证
netstat -anlptu|grep 9100
至此node_exporter已经安装成功
接下来需要在promethues监控系统的promethues.yml配置文件中增加配置,配置项如下:
- job_name: 'node' ### 新增加job static_configs: - targets: ['192.168.229.139:9100','192.168.229.138:9100'] ### 主机列表
然后执行下命令,让配置生效
curl -X POST http://localhost:9090/-/reload
最终效果图如下
这块有一些表达式,例子如下:
内存使用率
公式:(1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes ))* 100
可用内存(单位:M)
公式:node_memory_MemAvailable_bytes / 1024 / 1024
磁盘总大小(单位: G)
公式:node_filesystem_size_bytes {fstype=~"ext4|xfs"} / 1024 / 1024 / 1024
磁盘剩余大小(单位: G)
公式:node_filesystem_avail_bytes {fstype=~"ext4|xfs"} / 1024 / 1024 / 1024
磁盘使用率
公式:(1-(node_filesystem_free_bytes{fstype=~"ext4|xfs"} / node_filesystem_size_bytes{fstype=~"ext4|xfs"})) * 100
收集系统网络监控信息(ip add 查看网卡信息)
网卡入网流量 (指定某一个网卡)
公式:irate(node_network_receive_bytes_total{device='ens33'}[5m])
网卡出网流量(指定某一个网卡)
公式:irate(node_network_transmit_bytes_total{device='ens33'}[5m])
看到密密麻麻的公示,大家肯定说,这也太难了。但小胖是个勤于思考的人。
对这块感兴趣的小伙伴,可以关注小胖后面的博客