zabbix自定义脚本获取硬盘信息

1.自动发现磁盘组的io使用率

https://blog.csdn.net/bobpen/article/details/53408214

(1).在zabbix agent获取硬盘信息,可通过下述脚本获取信息disk_test.sh

#cd /etc/zabbix/alertscripts

#chmod 755 disk_test.sh

# cat disk_test.sh

#!/bin/bash 
diskarray=(`cat /proc/diskstats |grep -E "\bsd[abcdefg]\b|\bvd[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 "\"{#TESTNAME}\":\"${diskarray[$i]}\"}" 
    if [ $i -lt $[$length-1] ];then 
        printf ',' 
    fi 
done 
printf "\n\t]\n" 
printf "}\n"
View Code
[root@ip-10-10-0-16 alertscripts]# bash disk_test.sh 
{
	"data":[
		{"{#TESTNAME}":"vda"},
		{"{#TESTNAME}":"vdb"}
	]
}

 (2).通过iostat获取硬盘性能信息,并将该信息写入文本中

# nohup iostat -m -x -d 30 >> /tmp/iostat_output

[root@ip-10-10-0-16 alertscripts]# cat /tmp/iostat_output 
Linux 3.10.0-693.el7.x86_64 (test-136)     01/21/2019     _x86_64_    (4 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     0.08    0.03    9.30     0.00     0.01     3.61     0.16   17.01  205.19   16.42   5.02   4.68
dm-0              0.00     0.00    0.03    8.87     0.00     0.01     3.76     0.21   23.78  215.92   23.17   5.26   4.68
dm-1              0.00     0.00    0.00    0.02     0.00     0.00     8.03     0.01  579.95  469.01  588.13   7.84   0.02
vdb               0.00     0.02    0.09    2.18     0.00     0.04    35.56     0.09   40.55   43.65   40.42  20.51   4.67
dm-2              0.00     0.00    0.09    2.17     0.00     0.04    35.71     0.12   52.44   43.69   52.82  20.60   4.67
View Code

(3).自定义key

第一条io.disktest是自动获取disk_name的脚本

第二条io.test是获取io的脚本(根据iostat_output每个值的意思来自定义)

[root@ip-10-10-0-16 zabbix_agentd.d]# cat userparameter_port.conf
UserParameter=io.disktest[*],/etc/zabbix/alertscripts/disk_test.sh $1
UserParameter=io.test[*],cat /tmp/iostat_output|grep "\b$1\b" |tail -1|awk '{print $$5}'

(4)重启服务

# systemctl restart zabbix-agent.service

(5).zabbix-server端的zabbix_get测试

[root@ip-10-10-0-14 ~]# zabbix_get -s 10.10.0.16 -k io.disktest
{
	"data":[
		{"{#TESTNAME}":"vda"},
		{"{#TESTNAME}":"vdb"}
	]
}
[root@ip-10-10-0-14 ~]# zabbix_get -s 10.10.0.16 -k io.test[vda]
9.30
[root@ip-10-10-0-14 ~]# zabbix_get -s 10.10.0.16 -k io.test[vdb]
2.18

 (6).在zabbix-service web界面添加

    配置--主机--选择主机的自动发现--创建发现规则--名称,健值 io.disktest

 --监控项原型--名称 io on $1,健值 io.test[{#TESTNAME}]

 --触发器类型--表达式添加监控项 选择原型,

 --图形原型--监控项 添加原型

(7)检查主机的监控项,触发器,图形会发现自动添加完成

 

posted @ 2019-01-21 18:35  penny_zpp  阅读(625)  评论(0编辑  收藏  举报