由于每台服务器的磁盘数量会不同,在zabbix配置一个模版来自动发现磁盘并监控其性能,思路同自定义监控模版。ios
1,设置自动发现磁盘脚本
cd /etc/zabbix/zabbix_agentd
vi disk_discovery.shweb
#!/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"
chmod +x disk_discovery.shbash
2,修改zabbix agent配置文件
vi /etc/zabbix/zabbix_agentd.conf在尾部添加一下内容
# UserParameter=
UserParameter=io.scandisk[*],/etc/zabbix/zabbix_agentd.d/disk_discovery.sh $1
#每秒读操做数
UserParameter=io.rps[*],/usr/bin/iostat -m -x -d |grep "$1"|tail -1|awk '{print $$4}'
#每秒写操做数
UserParameter=io.wps[*],/usr/bin/iostat -m -x -d |grep "$1" |tail -1|awk '{print $$5}'
#平均每次设备IO操做数据大小
UserParameter=io.avgrq-sz[*],/usr/bin/iostat -m -x -d |grep "$1" |tail -1|awk '{print $$8}'
#平均IO队列长度
UserParameter=io.avgqu-sz[*],/usr/bin/iostat -m -x -d |grep "$1" |tail -1|awk '{print $$9}'
#平均每次IO操做等待时间
UserParameter=io.await[*],/usr/bin/iostat -m -x -d |grep "$1" |tail -1|awk '{print $$10}'
#平均每次IO操做的服务时间
UserParameter=io.svctm[*],/usr/bin/iostat -m -x -d |grep "$1" |tail -1|awk '{print $$11}'
#一秒内用于IO操做的百分比
UserParameter=io.util[*],/usr/bin/iostat -m -x -d |grep "$1" |tail -1|awk '{print $$12}'服务器
3,在zabbix web端:配置---模版---建立模版
新建自动发现规则
输入规则名称,键值输入刚刚在zabbix agent配置文件里设置的key:io.scandisk
建好发现规则后,如图
单击 监控项原型---建立监控项原型
根据zabbix agent配置文件里设置的key,同上逐一添加监控原型。随后仍在改规则下添加‘图形原型’
单击上图最下方的‘添加原型’,将各个监控项加入到该图形中,以便查当作果。
4,验证
在配置--主机--选择一台主机关联到该模版;可在zabbix server 端用zabbix_get命令获取监控项的值,若正常获取成功便可画出对应的图
以上是监控物理机用到的,若用的是云主机、VPS,监控磁盘空间使用率较有意义:性能