跳转至

Zabbix 监控磁盘IO


2015-03-23 by dongnan

Zabbix Screen

Disk IO

Disk BandWidth

目标

使用 zabbix 采集磁盘IO数据。

步骤

编辑配置文件

vim `zabbix_agentd.conf`

添加类似如下内容

UserParameter=iostat[*],/var/lib/zabbix/iostat.sh $1

创建任务计划

* * * * * /usr/bin/iostat -d -x -k 1 2 xvda | awk '/xvda/ && NR==7' > /tmp/iostat.txt   
# 注意,磁盘这里为 xvda 请根据实际情况填写。

重启Agent

/etc/init.d/zabbix-agent restart

Shell脚本

脚本代码

#!/bin/bash
#crontab
#* * * * * /usr/bin/iostat -d -x -k 1 2 xvda | awk '/xvda/ && NR==7' > /tmp/iostat.txt

#iostat -d -x -k 1 2 xvda
#Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
#xvda              0.00    10.00    0.00   10.00     0.00   152.00    15.20     0.00    0.20   0.20   0.20

#variables
item="$1"
tmp_file='/tmp/iostat.txt'

#functions
check_var() {
    if [ -e "$tmp_file" ] ;then
        return 0
    else
        echo 0 
        return 1
    fi
}

#main
case "$1" in
    await)
        check_var $1 && awk '{print $10}' $tmp_file
        ;;
    read)
        check_var $1 && awk '{print $4}' $tmp_file
        ;;
    svctm)
        check_var $1 && awk '{print $11}' $tmp_file
        ;;
    write)
        check_var $1 && awk '{print $5}' $tmp_file
        ;;
    *)
        echo "Usage:   $0 {await|read|svctm|write} disk"
        echo "Example: $0 read xvda"
        exit 1
        ;;
esac

赋予权限

chown zabbix.zabbix iostat.sh
chmod 755 iostat.sh

模板

模板下载地址

使用模板

路径:导入模板 -> 为主机分配模板。

验证

测试,如果有返回值表示自定义参数成功

zabbix_get -s 127.0.0.1 -k 'iostat[read]'

15

参考

iostat 命令

回到页面顶部