1、登录被监控机器上传扫描磁盘分区脚本disk_scan.sh 脚本内容如下:
#!/bin/bash
diskarray=(`cat /proc/diskstats |grep -E"\bsd[abcdefg]\b|\bxvd[abcdefg]\b"|grep -i "\b$1\b"|awk'{print $3}'|sort|uniq 2>/dev/null`)
length=${#diskarray[@]}
printf "{\n"
printf '\t'"\"data\":["
for ((i=0;i<$length;i++))
do
printf '\n\t\t{'
printf"\"{#DISK_NAME}\":\"${diskarray[$i]}\"}"
if [ $i -lt $[$length-1] ];then
printf ','
fi
done
printf "\n\t]\n"
printf "}\n"
脚本位置为/etc/zabbix/zabbix_agentd.conf.d
chmod+x /etc/zabbix/zabbix_agentd.conf.d/disk_scan.sh
说明:该脚本可以自行检测主机的磁盘分区包括 sata接口的磁盘及xv开头的阿里云主机的磁盘
2、安装iostat并后台运行
nohupiostat -m -x -d 30 >> /tmp/iostat_output
3、编辑/etc/zabbix/zabbix_agentd.conf 添加
UserParameter=io.scandisk[*],/etc/zabbix/zabbix_agentd.conf.d/disk_scan.sh$1
UserParameter=io.wps[*],/usr/bin/tail/tmp/iostat_output |grep "\b$1\b" |tail -1|awk '{print $$5}'
UserParameter=io.rMBps[*],/usr/bin/tail/tmp/iostat_output |grep "\b$1\b" |tail -1|awk '{print $$6}'
UserParameter=io.wMBps[*],/usr/bin/tail/tmp/iostat_output |grep "\b$1\b" |tail -1|awk '{print $$7}'
UserParameter=io.avgrq-sz[*],/usr/bin/tail/tmp/iostat_output |grep "\b$1\b" |tail -1|awk '{print $$8}'
UserParameter=io.avgqu-sz[*],/usr/bin/tail/tmp/iostat_output |grep "\b$1\b" |tail -1|awk '{print $$9}'
UserParameter=io.await[*],/usr/bin/tail/tmp/iostat_output |grep "\b$1\b" |tail -1|awk '{print $$10}'
UserParameter=io.svctm[*],/usr/bin/tail/tmp/iostat_output |grep "\b$1\b" |tail -1|awk '{print $$11}'
UserParameter=io.util[*],/usr/bin/tail/tmp/iostat_output |grep "\b$1\b" |tail -1|awk '{print $$12}'
重启zabbix_agentd进程
4、在监控服务器上测试键值
这里测试io.util
可以获取到数值
5、登录监控页面添加模版
新增模版
点击Discovery rules
新增磁盘发现
新增item prototype
注意红框内容,这里只演示了io.util的,其他的监控项也可以以此为依据做相应添加
添加graph prototype
6、将模版添加到相应的被监控机器中,这里指的是上传脚本的机器
7、查看是否有图形产生
这里可以看到已经检测到linux主机的两个磁盘分区
已经有图新产生