zabbix默认的磁盘监控中没有磁盘IO方面的监控,于是我在网上找到这样一个模版,可以实现对磁盘IO的监控。
首先编辑zabbix安装目录下etc/zabbix_agentd.conf,添加如下内容
1 2 3 4 5 6 7 8 9
| UserParameter=custom.vfs.dev.read.ops[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$4}' UserParameter=custom.vfs.dev.read.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$7}' UserParameter=custom.vfs.dev.write.ops[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$8}' UserParameter=custom.vfs.dev.write.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$11}' UserParameter=custom.vfs.dev.io.active[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$12}' UserParameter=custom.vfs.dev.io.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$13}' UserParameter=custom.vfs.dev.read.sectors[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$6}' UserParameter=custom.vfs.dev.write.sectors[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$10}'
|
编辑完成后,我们可以先来修改一下上述的命令,测试能否成功获取相关数据。其中需要修改的有:$1,使用自己在使用的磁盘代替,我使用的是sda,所以改成sda;$$4,去掉一个$。修改好的命令如下:
1
| cat /proc/diskstats | grep sda | head -1 | awk '{print $4}'
|
若返回的是具体的数值,则说明命令运行成功。那么现在可以愉快的重启zabbix_agentd服务了。
上述操作成功完成后,可以登陆到zabbix_server端,使用zabbix_get测试能否获取到agent端的数据,命令如下:
1
| zabbix_get -s 客户端地址 -p 10050 -k custom.vfs.dev.write.ops[所用磁盘]
|
如果反馈结果为数字,则服务端亦可顺利接收到客户端的数据,若返回的是ZBX_NOTSUPPORTED,就得检查客户端是否成功重启、客户端的防火墙是否放行10050端口等。
最后,我们只需要在Configration→Template中import下载的zabbix FileServer template.xml,再关联到需要监控的主机上就可以了。
详细信息参见:http://www.muck.net/19/getting-hard-disk-performance-stats-from-zabbix