码迷,mamicode.com
首页 > 其他好文 > 详细

zabbix自动发现硬盘并监控其IO

时间:2016-04-14 19:34:38      阅读:567      评论:0      收藏:0      [点我收藏+]

标签:zabbix自动发现硬盘并监控其io

   在使用zabbix监控Linux主机的时候,我们希望zabbix能够自动发现Linux主机上有多少块硬盘,而不是我们手动去添加。

实验目的:

  让zabbix能够自动发现Linux服务器的磁盘,并能够监控磁盘IO且绘出图形

实验设备:

  zabbix-server: 172.17.5.230

  zabbix-client:  182.17.5.219

实验环境:

 linux centos 6.6

 zabbix-2.4.6

实验步骤

 1. 在zabbix客户端的安装目录,如/usr/local/zabbix/bin/目录下添加名为diskiocheck.sh的脚本

 2. 进入/usr/local/zabbix/bin/目录

 3. 创建新文件touch diskiocheck.sh

 4. 编写vim diskiocheck.sh

#!/bin/sh
#disk_io monitor
disk=$2
function disk_count {
diskarray=(`cat /proc/diskstats | grep -E "\bsd[a-z]\b| \bxvd[a-z]\b|cciss/c[0-9]d[0-9]\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"
}
function qps {
qps=$(iostat $disk -x 1 2 | grep -E "^sd|^cciss" | awk ‘{if(NR==2)print $NF}‘)
echo $qps
}
$1


为了zabbix能够读取执行结果,需要把它输出为json格式。如下所示执行脚本里函数disk_count

sh /usr/local/zabbix/bin/disk_io_check.sh disk_count

输出如下:

{
"data":[
    {"{#DISK_NAME}":"sda"},
    {"{#DISK_NAME}":"sdb"},
    {"{#DISK_NAME}":"sdc"},
    {"{#DISK_NAME}":"sdd"}
    ]
}

脚本执行验证通过,我们还需要修改zabbix-client端,修改zabbix_agentd.conf配置文件

vim /usr/local/zabbix/etc/zabbix_agentd.conf

添加(没有注销的是新增的,把注销的也写出来主要是为了方便查看在什么位置添加)如下所示

# Include=/usr/local/etc/zabbix_agentd.userparams.conf
# Include=/usr/local/etc/zabbix_agentd.conf.d/
# Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/

然后在/usr/local/zabbix/etc/zabbix_agentd.conf.d/目录底下创建文件,名字可以随便起个,在这里文件名为:zabbixd.conf 编辑文件

cd /usr/local/zabbix/etc/zabbix_agentd.conf.d/
vim zabbixd.conf

在文件中添加zabbix监控项目的key值,文件内容如下

UserParameter=iostat.count[*],/usr/local/zabbix/bin/disk_io_check.sh disk_count $1
UserParameter=iostat.util[*],/usr/local/zabbix/bin/disk_io_check.sh qps $1


添加完毕后重启 zabbix_agentd

/etc/init.d/zabbix_agentd

到此在服务器端配置完成,接下来需要打开zabbix服务器端web页面进行配置在浏览器中打开点configuration--->templates----->create tempalte如果有现有的模版也可以直接编辑现有的模版,这里我们直接编辑一个现有的模版如下图所示:

技术分享

然后再点击右上角的create item prototype

技术分享

这个key值写iostat.count,填写完这个后保存,然后点击item prototypes 如下图所示

技术分享

然后再点击右上角的create item prototype



本文出自 “杜云龙” 博客,请务必保留此出处http://duyunlong.blog.51cto.com/1054716/1763863

zabbix自动发现硬盘并监控其IO

标签:zabbix自动发现硬盘并监控其io

原文地址:http://duyunlong.blog.51cto.com/1054716/1763863

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!