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

1.png

2.png

5、将模板应用到监控主机上去

3.png

6、创建Disk-IO和Disk-Read图形

4.png

5.png

6.png

7、监控图形预览

7.png


本博客中的脚本和模板文件下载地址为:

http://down.51cto.com/data/2452710