非常lo的使用iotop,转换脚本监控io使用率

最近在工作中,遇到了IO使用率过高告警。但是移动的系统又很严格,不能随便安装监控开源软件。这里我只能通过向方法使用脚本去完成监控。
监控方法如下:
1、安装iotop软件(centos7默认是有这个包):
2、使用iotop -obt >> testfile.txt 重定向到testfile文件(意思是将实时在使用磁盘的程序显示):
3、自己写个脚本查看监控情况,写好脚本。我这里抓取的信息是时间,磁盘读写转数、使用率、进程名。然后写到计划任务里面去就可以去做日志提取了。(提取日志自己研究了)
[root@master ~]# cat iotest.sh
#!/bin/bash
IFS=$'\n'
for i in $(grep `date +"%H:%M"` testfile.txt | grep "%" |  awk '{if($11>=0.5) {print $1"\t",$5,$6"\t",$7,$8"\t",$9,$10"\t",$11,$12"\t",$13}}')
do
  echo `date +"%Y-%m-%d"` $i
done

4、最后做个计划任务每十秒去执行脚本(这个根据自己情况定);
* * * * * sleep 00; /root/iotest.sh >> iotest.txt &
* * * * * sleep 10; /root/iotest.sh >> iotest.txt &
* * * * * sleep 20; /root/iotest.sh >> iotest.txt &
* * * * * sleep 30; /root/iotest.sh >> iotest.txt &
* * * * * sleep 40; /root/iotest.sh >> iotest.txt &
* * * * * sleep 50; /root/iotest.sh >> iotest.txt &

5、测试每时每刻监控IO使用率情况:
[root@master ~]# ./iotest.sh
2018-12-14 00:40:00      0.00 B/s        0.00 B/s        0.00 %  0.65 %  [kworker/0:1]
2018-12-14 00:40:04      0.00 B/s        0.00 B/s        0.00 %  0.66 %  [kworker/0:1]
2018-12-14 00:40:06      0.00 B/s        0.00 B/s        0.00 %  0.54 %  [kworker/0:1]
2018-12-14 00:40:10      0.00 B/s        0.00 B/s        0.00 %  0.96 %  [kworker/0:1]
2018-12-14 00:40:23      0.00 B/s        0.00 B/s        0.00 %  1.13 %  [kworker/0:1]
2018-12-14 00:40:24      0.00 B/s        0.00 B/s        0.00 %  1.15 %  [kworker/0:1]
2018-12-14 00:40:28      0.00 B/s        0.00 B/s        0.00 %  0.59 %  [kworker/0:1]
2018-12-14 00:40:30      0.00 B/s        0.00 B/s        0.00 %  0.56 %  [kworker/0:1]
2018-12-14 00:40:36      0.00 B/s        0.00 B/s        0.00 %  0.76 %  [kworker/0:1]
[root@master ~]# cat iotest.txt
2018-12-14 00:48:01      0.00 B/s        0.00 B/s        0.00 %  0.59 %  [kworker/0:2]
2018-12-14 00:48:01      0.00 B/s        0.00 B/s        0.00 %  0.59 %  [kworker/0:2]
2018-12-14 00:48:05      0.00 B/s        0.00 B/s        0.00 %  0.52 %  [kworker/0:2]
2018-12-14 00:48:07      0.00 B/s        0.00 B/s        0.00 %  0.54 %  [kworker/0:2]
2018-12-14 00:48:09      0.00 B/s        0.00 B/s        0.00 %  0.56 %  [kworker/0:2]
2018-12-14 00:49:00      0.00 B/s        0.00 B/s        0.00 %  0.77 %  [kworker/0:2]
2018-12-14 00:49:00      0.00 B/s        0.00 B/s        0.00 %  0.77 %  [kworker/0:2]
2018-12-14 00:49:02      0.00 B/s        0.00 B/s        0.00 %  0.61 %  [kworker/0:2]
2018-12-14 00:49:08      0.00 B/s        0.00 B/s        0.00 %  1.71 %  [kworker/0:2]
2018-12-14 00:49:19      0.00 B/s        0.00 B/s        0.00 %  0.58 %  [kworker/0:2]
2018-12-14 00:49:23      0.00 B/s        0.00 B/s        0.00 %  0.54 %  [kworker/0:2]
2018-12-14 00:50:00      0.00 B/s        0.00 B/s        0.00 %  0.50 %  [kworker/0:2]
2018-12-14 00:53:02      0.00 B/s        0.00 B/s        0.00 %  1.08 %  [kworker/0:1]
2018-12-14 00:53:08      0.00 B/s        0.00 B/s        0.00 %  1.15 %  [kworker/0:1]
2018-12-14 00:53:18      0.00 B/s        0.00 B/s        0.00 %  0.67 %  [kworker/0:1]
2018-12-14 00:53:20      0.00 B/s        0.00 B/s        0.00 %  0.52 %  [kworker/0:1]
2018-12-14 00:53:22      0.00 B/s        0.00 B/s        0.00 %  0.69 %  [kworker/0:1]
2018-12-14 00:53:29      0.00 B/s        0.00 B/s        0.00 %  0.61 %  [kworker/0:1]
2018-12-14 00:53:33      0.00 B/s        0.00 B/s        0.00 %  0.55 %  [kworker/0:1]
2018-12-14 00:53:35      0.00 B/s        0.00 B/s        0.00 %  0.55 %  [kworker/0:1]
2018-12-14 00:53:39      0.00 B/s        0.00 B/s        0.00 %  0.51 %  [kworker/0:1]
2018-12-14 00:59:01      0.00 B/s        0.00 B/s        0.00 %  0.51 %  [kworker/0:1]
2018-12-14 00:59:03      0.00 B/s        0.00 B/s        0.00 %  0.57 %  [kworker/0:1]
2018-12-14 01:00:02      0.00 B/s        0.00 B/s        0.00 %  0.62 %  [kworker/0:1]
2018-12-14 01:01:03      0.00 B/s        0.00 B/s        0.00 %  0.93 %  [kworker/0:1]
2018-12-14 01:02:01      31.06 K/s       0.00 B/s        0.00 %  0.67 %  systemd-journald
2018-12-14 01:02:05      0.00 B/s        0.00 B/s        0.00 %  0.58 %  [kworker/0:1]
2018-12-14 01:01:03      0.00 B/s        0.00 B/s        0.00 %  0.93 %  [kworker/0:1]
2018-12-14 01:05:05      0.00 B/s        0.00 B/s        0.00 %  1.12 %  [kworker/0:2]
2018-12-14 01:06:00      0.00 B/s        0.00 B/s        0.00 %  0.55 %  [kworker/0:2]
2018-12-14 01:06:04      0.00 B/s        0.00 B/s        0.00 %  0.56 %  [kworker/0:2]
2018-12-14 01:06:06      0.00 B/s        0.00 B/s        0.00 %  0.60 %  [kworker/0:2]

6、总结:
1)使用for循环的时候需要使用 IFS=$'\n'  去转义,否则你输出的结果是这样的:
[root@master ~]# ./abc123.sh
2018-12-14 00:40:00
2018-12-14 0.00
2018-12-14 B/s
2018-12-14 0.00
2018-12-14 B/s
2018-12-14 0.00
2018-12-14 %
2018-12-14 0.65
2018-12-14 %
2018-12-14 [kworker/0:1]
2018-12-14 00:40:04
2018-12-14 0.00
2018-12-14 B/s
2018-12-14 0.00
2018-12-14 B/s
2018-12-14 0.00
2018-12-14 %
2018-12-14 0.66
2018-12-14 %
2018-12-14 [kworker/0:1]

 

好啦!写好的监控IO使用率的脚本可以直接拿去使用,希望能够帮到大家。


版权声明:本文为weixin_41515615原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。