1、编写自动发现磁盘的脚本
cd /etc/zabbix/zabbix_agentd.d/
vim Disk-discovery.sh
#!/bin/bash
disk_array=(`grep -E "(vd[a-z]$|sd[a-z]$)" /proc/partitions | awk '{print $4}'`)
length=${#disk_array[@]}
printf "{\n"
printf '\t'"\"data\":["
for ((i=0;i<$length;i++))
do
printf '\n\t\t{'
printf "\"{#DISK_NAME}\":\"${disk_array[$i]}\"}"
if [ $i -lt $[$length-1] ];then
printf ','
fi
done
printf "\n\t]\n"
2、编写获取磁盘IO状态的脚本
vim Disk-io-stat.sh
#!/bin/bash
Device=$1
DISK=$2
case $DISK in
rrqm)
iostat -dxk 1 2|grep "\b$Device\b" |tail -1| awk '{print $2}'
;;
wrqm)
iostat -dxk 1 2|grep "\b$Device\b" |tail -1| awk '{print $3}'
;;
rps)
iostat -dxk 1 2|grep "\b$Device\b" |tail -1|awk '{print $4}'
;;
wps)
iostat -dxk 1 2|grep "\b$Device\b" |tail -1|awk '{print $5}'
;;
rKBps)
iostat -dxk 1 2|grep "\b$Device\b" |tail -1|awk '{print $6}'
;;
wKBps)
iostat -dxk 1 2|grep "\b$Device\b" |tail -1|awk '{print $7}'
;;
avgrq-sz)
iostat -dxk 1 2|grep "\b$Device\b" |tail -1|awk '{print $8}'
;;
avgqu-sz)
iostat -dxk 1 2|grep "\b$Device\b" |tail -1|awk '{print $9}'
;;
await)
iostat -dxk 1 2|grep "\b$Device\b" |tail -1|awk '{print $10}'
;;
svctm)
iostat -dxk 1 2|grep "\b$Device\b" |tail -1|awk '{print $13}'
;;
util)
iostat -dxk 1 2|grep "\b$Device\b" |tail -1|awk '{print $14}'
;;
DiskAvaliable)
df -k | head -2 | grep "\b$Device\b" | awk '{print $4}'
;;
*)
echo -e "\e[033mUsage: sh $0 [rrqm|wrqm|rps|wps|rKBps|wKBps|avgqu-sz|avgrq-sz|await|svctm|util]\e[0m"
esac
编写完脚本记得给执行权限
3、编辑配置文件
vim zabbix-disk-io-stats.conf
UserParameter=disk.discovery[*],/etc/zabbix/zabbix_agentd.d/Disk-discovery.sh
UserParameter=disk.io[*],/etc/zabbix/zabbix_agentd.d/Disk-io-stat.sh $1 $2
4、在zabbix-web页面导入磁盘IO状态的模板
模板名为:Templates_DISK_IO.xml
5、将模板应用到监控主机上去
6、创建Disk-IO和Disk-Read图形
7、监控图形预览
本博客中的脚本和模板文件下载地址为:
http://down.51cto.com/data/2452710
转载于:https://blog.51cto.com/12123659/2287976