diskIO监控
echo "nohup iostat -m -x -d 60 >/tmp/iostat_output &" >> /etc/rc.d/rc.localnohup iostat -m -x -d 60 >/tmp/iostat_output &
cat > /home/zabbix/bin/disk_scan.sh <<END
{
#!/bin/bash
function get_disk_name () {
diskarray=(\$(cat /proc/diskstats|egrep "\bsd\b|\bxvd\b|\bvd\bb"|awk '{print \$3}'|sort|uniq 2>/dev/null))
function printf_disk_name () {
length=\${#diskarray[@]}
for ((i=0;i<\${length};i++));do
if [ \$i -lt \$[\${length}-1] ];then
printf "{ \"{#DISK_NAME}\":\"\${diskarray[\$i]}\" },\n"
else
printf "{ \"{#DISK_NAME}\":\"\${diskarray[\$i]}\" }\n"
fi
done
}
printf "{ \"data\":[\n"
printf_disk_name
printf "]}"
}
get_disk_name \$1
exit 0
}
END
cat >> /home/zabbix/bin/disk_status.sh <<END
#/bin/sh
device=\$1
item=\$2
case \$item in
rrqm)
cat /tmp/iostat_output |grep "\b\$device\b"|tail -1|awk '{print \$2}'
;;
wrqm)
cat /tmp/iostat_output |grep "\b\$device\b"|tail -1|awk '{print \$3}'
;;
rps)
cat /tmp/iostat_output |grep "\b\$device\b"|tail -1|awk '{print \$4}'
;;
wps)
cat /tmp/iostat_output |grep "\b\$device\b" |tail -1|awk '{print \$5}'
;;
rMBps)
cat /tmp/iostat_output |grep "\b\$device\b" |tail -1|awk '{print \$6}'
;;
wMBps)
cat /tmp/iostat_output |grep "\b\$device\b" |tail -1|awk '{print \$7}'
;;
avgrq-sz)
cat /tmp/iostat_output |grep "\b\$device\b" |tail -1|awk '{print \$8}'
;;
avgqu-sz)
cat /tmp/iostat_output |grep "\b\$device\b" |tail -1|awk '{print \$9}'
;;
await)
cat /tmp/iostat_output |grep "\b\$device\b" |tail -1|awk '{print \$10}'
;;
svctm)
cat /tmp/iostat_output |grep "\b\$device\b" |tail -1|awk '{print \$13}'
;;
util)
cat /tmp/iostat_output |grep "\b\$device\b" |tail -1|awk '{print \$14}'
;;
esac
END
chmod +x /home/zabbix/bin/disk_*.sh
cat >> /etc/zabbix/zabbix_agentd.conf <<END
UserParameter=disk.discovery,/home/zabbix/bin/disk_scan.sh 2>/dev/null
UserParameter=disk.status[*],/home/zabbix/bin/disk_status.sh \$1 \$2
END
service zabbix_agentd restart
模版
学习下{:6_388:}
页:
[1]