Zabbix监控磁盘IO状态详解(2)

# 时间格式: 07/17/2017 03:03:06 PM
# times=`date "+%D %r"` 
#
# 时间格式: 2017年07月17日 15时01分03秒
# times=`date  "+%Y"年0"%h%d"日" %H"时"%M"分"%S"秒""`

# 计划任务:每一分钟执行一次
*/1 * * * * /bin/bash /usr/local/zabbix/script/iostate.sh

# 内容导出如下
Device:        rrqm/s  wrqm/s    r/s    w/s    rkB/s    wkB/s avgrq-sz avgqu-sz  await r_await w_await  svctm  %util
sda              0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  0.00  0.00

#  配置介绍
rrqm/s: 每秒进行 merge 的读操作数目。即 rmerge/s
wrqm/s: 每秒进行 merge 的写操作数目。即 wmerge/s
r/s: 每秒完成的读 I/O 设备次数。即 rio/s
w/s: 每秒完成的写 I/O 设备次数。即 wio/s
rsec/s: 每秒读扇区数。即 rsect/s
wsec/s: 每秒写扇区数。即 wsect/s
rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。
wkB/s: 每秒写K字节数。是 wsect/s 的一半。
avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。
avgqu-sz: 平均I/O队列长度。
await: 平均每次设备I/O操作的等待时间 (毫秒)。
svctm: 平均每次设备I/O操作的服务时间 (毫秒)。
%util: 一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比

# 在zabbix_agent中增加一个脚本
#############################  zabbix脚本 ###########################
#!/bin/bash
#
disk=$1
case $2 in
rrqm)
        grep "$disk" /tmp/iostst_temp2.txt | awk '{print $2}' ;;
wrqm)
        grep "$disk" /tmp/iostst_temp2.txt | awk '{print $3}' ;;
read)
        grep "$disk" /tmp/iostst_temp2.txt | awk '{print $4}' ;;
wirte)
        grep "$disk" /tmp/iostst_temp2.txt | awk '{print $5}' ;;
readin)
        grep "$disk" /tmp/iostst_temp2.txt | awk '{print $6}' ;;
wirtein)
        grep "$disk" /tmp/iostst_temp2.txt | awk '{print $7}' ;;
avgrqsz)
        grep "$disk" /tmp/iostst_temp2.txt | awk '{print $8}' ;;
avgqusz)
        grep "$disk" /tmp/iostst_temp2.txt | awk '{print $9}' ;;
await)
        grep "$disk" /tmp/iostst_temp2.txt | awk '{print $10}' ;;
rawait)
        grep "$disk" /tmp/iostst_temp2.txt | awk '{print $11}' ;;
wawait)
        grep "$disk" /tmp/iostst_temp2.txt | awk '{print $12}' ;;
svctm)
        grep "$disk" /tmp/iostst_temp2.txt | awk '{print $13}' ;;
util)
        grep "$disk" /tmp/iostst_temp2.txt | awk '{print $14}' ;;
*)
        echo "使用方法  /bash disk_name $2"
        exit 5 ;;
esac

# 最后需要配置文件中在zabbix_agentd.conf中增加这行
UserParameter=sys.io[*],/usr/local/zabbix/script/system_io.sh $1 $2

# 在服务器端测试是脚本是否可以
[root@zabbixd bin]# zabbix_get -s ipaddress -p port -k sys.io[sdb,wawait]
0.0
[root@zabbixd bin]# zabbix_get -s ipaddress -p port -k sys.io[sdb,wrtn]
0.0

# 可能会报权限错误,需要增加权限 chmod +x /bin/bash /usr/local/zabbix/script/iostate.sh
#    以及在增加属主属组权限  chown zabbix.zabbix !$

#  模板如下,自动发现需要定义API,不太熟,练习中,有多个磁盘需要监控的话,直接将模板导出,然后将模板名称更换一下需要的,然后在导入就行了,模板如下:

#  模板请直接下载附件

#最后在加上一个效果图

Zabbix监控磁盘IO状态详解

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/89eadf9f14e013f5c3a85c428b9e182f.html