zabbix 监控,磁盘,IO
Zabbix 监控磁盘IO信息教程
By:Flyking
2015-08-12 Wednesday
一、服务器端
首先,服务器端需要新建磁盘磁盘IO的模板,路径:Configuration—Templates—Create template
新建Template name 为disk_iostat的模板文件,然后模板文件中,新建Items;如下图
再建Graphs如下图:
以磁盘SDX读写速度为例,如下图:
详细如下图
二、客户端
2.1、去掉辅助配置文件注释
修改zabbix_agentd.conf配置文件,打开zabbix_https://www.360docs.net/doc/ad4009436.html,erparams.conf配置项,如下图
2.2、增加辅助配置文件
根据zabbix_agentd.conf中的目录要求(我的配置文件是在/usr/local/etc目录
下)新建zabbix_https://www.360docs.net/doc/ad4009436.html,erparams.conf,并根据系统版本,将下面相应的语句写入
到配置文件中。
#disk iostst centos 5or 6
UserParameter=io.scandisk[*],/usr/local/etc/disk_discovery.sh $1
UserParameter=io.rps[*],/usr/bin/head /data/zabbix/iostat_output |grep "\b$1\b"|awk '{print $$4}' UserParameter=io.wps[*],/usr/bin/head /data/zabbix/iostat_output |grep "\b$1\b" |awk '{print $$5}' UserParameter=io.rMBps[*],/usr/bin/head /data/zabbix/iostat_output |grep "\b$1\b" |awk '{print $$6}' UserParameter=io.wMBps[*],/usr/bin/head /data/zabbix/iostat_output |grep "\b$1\b" |awk '{print $$7}' UserParameter=io.avgrq-sz[*],/usr/bin/head /data/zabbix/iostat_output |grep "\b$1\b" |awk '{print $$8}' UserParameter=io.avgqu-sz[*],/usr/bin/head /data/zabbix/iostat_output |grep "\b$1\b" |awk '{print $$9}' UserParameter=io.await[*],/usr/bin/head /data/zabbix/iostat_output |grep "\b$1\b" |awk '{print $$10}' UserParameter=io.svctm[*],/usr/bin/head /data/zabbix/iostat_output |grep "\b$1\b" |awk '{print $$11}' UserParameter=io.util[*],/usr/bin/head /data/zabbix/iostat_output |grep "\b$1\b" |awk '{print $$12}'
#disk iostst cenos 4
UserParameter=io.scandisk[*],/usr/local/etc/disk_discovery.sh $1
UserParameter=io.rps[*],/usr/bin/head /data/zabbix/iostat_output |grep "\b$1\b"|awk '{print $$4}' UserParameter=io.wps[*],/usr/bin/head /data/zabbix/iostat_output |grep "\b$1\b" |awk '{print $$5}' UserParameter=io.rMBps[*],/usr/bin/head /data/zabbix/iostat_output |grep "\b$1\b" |awk '{print $$8}' UserParameter=io.wMBps[*],/usr/bin/head /data/zabbix/iostat_output |grep "\b$1\b" |awk '{print $$9}' UserParameter=io.avgrq-sz[*],/usr/bin/head /data/zabbix/iostat_output |grep "\b$1\b" |awk '{print $$10}' UserParameter=io.avgqu-sz[*],/usr/bin/head /data/zabbix/iostat_output |grep "\b$1\b" |awk '{print $$11}' UserParameter=io.await[*],/usr/bin/head /data/zabbix/iostat_output |grep "\b$1\b" |awk '{print $$12}' UserParameter=io.svctm[*],/usr/bin/head /data/zabbix/iostat_output |grep "\b$1\b" |awk '{print $$13}' UserParameter=io.util[*],/usr/bin/head /data/zabbix/iostat_output |grep "\b$1\b" |awk '{print $$14}'
2.3、添加磁盘识别程序
上传disk_discovery.sh到/usr/local/etc/目录下,具体可根据zabbix_https://www.360docs.net/doc/ad4009436.html,erparams.conf配置文件中的第一行自行修改。(disk_discovery.sh 内容下最后面附件部分)
2.4、添加计划任务
计划任务如下
* * * * * /usr/bin/iostat -k -x -d 1 1 >/data/zabbix/iostat_output 2>&1 注:输出路径可以自定义,但需要修改zabbix对目录有读写权限
2.5、重启zabbix_agentd服务
使用命令service zabbix_agentd restart重启zabbix客户端服务。
2.6、把相应主机匹配相应模板
在zabbix server中在主机已经匹配的模板中添加新建的disk_iostat模板(或把相应主机添加到监控模板的监控主机列表中)。
附件:
disk_discovery.sh内容如下:
#!/bin/bash
diskarray=(`cat /proc/diskstats |grep -E "\bsd[a-z]\b|\bxvd[a-z]\b|\bvd[a-z]\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"