linux监控命令

leecoder5 / 2024-09-20 / 原文

分享一部分我写的监控命令,如下:

1.cpu监控

top -b -n 1 | grep Cpu | awk '{print $2}' | cut -f 1 -d '%'

这个命令返回的是cpu的用户那部分的使用率,就是us那一项,一般情况下我们监控这个指标就可以

这个使用率一般超90%需要警告

2.磁盘空间监控

df -h |awk '{print $NF,$5}'|sed -n '2,$p'|cut -f 1 -d '%'

这个命令返回的是磁盘各个分区的空间的使用率,最后的cut是去掉百分号的符合,方便用数值来判断。

这个使用率一般超90%需要警告

3.内存监控

free | awk '/Mem/{printf("%.2f\n"), $3/$2*100}'

这个命令返回的是内存的使用率

这个使用率一般超90%需要警告

4.磁盘io使用率监控

iostat -dmx 3 1 -y|sed -n '4,$p'| awk '{print $1,$NF}'

这个命令返回的是磁盘各个分区的io使用率,就是util那一项,统计三秒钟,取三秒内的平均使用率.你也可以改成5秒,10秒,取决于实际场景。

如果命令不存在可以先安装一下

yum install -y sysstat

这个使用率一般超90%需要警告

5.网络进出口流量监控

iftop -B -t -L 1  -s 10|sed -n '9p'|awk '{print $(NF-1)}'

这个命令统计的是网络进出口流量的数量,统计10秒,取的10秒的平均速率,就是Total send and receive rate那一项。这个命令有2秒,10秒,40秒三个选项,如果执行少于2秒,那么2秒,10秒,40秒三个输出的值是一样的,如果执行大于2秒小于10秒,那么10秒和40秒的值是一样的,2秒的值是取的最近2秒的,所以执行时间一定要大于这几个选项的值,我这边执行10秒,取的是10秒那一项。

如果命令不存在可以先安装一下

yum install -y iftop

这个的缺点是返回的速率单位不可控,有时候是K,有时候是M,只能自己转换。目前没找到其他好的解决办法。

这个警告线一般取决于带宽,达到带宽的50%我觉得就可以警告了