Step 1


   在/etc/zabbix/zabbix_agentd.d下添加userparameter_io.conf, 文件内容如下:  
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}' # //花费在IO操作上的毫秒数
UserParameter=custom.vfs.dev.read.sectors[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$6}' # //读扇区的次数(一个扇区的等于512B)
UserParameter=custom.vfs.dev.write.sectors[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$10}' # //写扇区的次数(一个扇区的等于512B)


step 2

/dev/vda1        20G   13G  6.5G  66% /
/dev/vdb1 500G 40G 461G 8% /data
2、重启zabbix-agent服务
systemctl restart zabbix-agent
3、测试zabbix-server获取数据
#zabbix_get -s 目标服务器IP -p 10050 -k custom.vfs.dev.write.ops[vdb] # 此处vdb 是作为grep 的参数使用
4、配置zabbix-server模板
进入web界面—》配置—》模板—创建模板


zabbix3.2.0 添加IO监控_群组

 从其他群组中选中群组》点击左按钮将节点添加到左边

 从其他|群组中选中群组》点击左按钮选中的节点添加到左边的主机/模板


4 创建应用集 命名为IO-App 》点击添加 选中该应用集 》点击监控项》创建监控项




zabbix3.2.0 添加IO监控_自定义_02



 5、配置监控项

  进入到模板列表页面,找到我们刚刚创建的Templae io模板,点击后面监控项,然后点击创建监控项

zabbix3.2.0 添加IO监控_配置参数_03





 5.1.1 配置第一个监控项

   Name:  Disk:$1:Read:Bytes/sec
   Key:  custom.vfs.dev.read.sectors[sda]
   Units: B/sec
   Store value: speed per second       //会进行差值计算
   Use custom multiplier     512      //会对值乘以512,因为这里是一个扇区,转换为字节为512B


zabbix3.2.0 添加IO监控_自定义_04


5.1.2 应用集中选择IO-App



5.2 第二监控项:和第一个一样的配置过程

                  Name:Disk:$1:Write:Bytes/sec
                  Key:          custom.vfs.dev.write.sectors[sda]
                  Units:        B/sec
                  Store value: speed per second
                  Use custom multiplier     512

  第三个监控项配置参数:

                 Name:Disk:$1:Read:ops per second
                  Key:          custom.vfs.dev.read.ops[sda]
                  Units:        ops/second
                  Store value: speed per second

  第四个监控项配置参数:

                 Name: Disk:$1:Write:ops per second
                  Key:          custom.vfs.dev.write.ops[sda]
                  Units:        ops/second
                  Store value: speed per second

 第五个监控项配置参数:

                 Name: Disk:$1:Read:ms
                  Key:         custom.vfs.dev.read.ms[sda]
                  Units:      ms
                  Store value: speed per second

 第六个监控项配置参数:

                 Name:Disk:$1:Write:ms
                  Key:         custom.vfs.dev.write.ms[sda]
                  Units:      ms
                  Store value: speed per second


 上面我们就完成了对IO的监控,但是我们也想和zabbix自带的那样的模板一样,可以看到监控以后的图形,当然这也是可以做到的,下面就介绍图形的添加。



6、添加图形

   返回到模板的列表页面,找到我们创建的模板Template io 然后点击后面的图形—》创建图形

  zabbix3.2.0 添加IO监控_zabbix_05


  点击添加—》选择我们配置的监控项

  zabbix3.2.0 添加IO监控_linux_06

 这样我们就完成了整个自定义模板的配置,我们现在就可以查看监控的数据了。


6. 点击主机配置:主机 可以看到 模板列有我们创建的io 模板。

zabbix3.2.0 添加IO监控_linux_07

 我们回到给被监控的主机,选择我们自定义的模板! 效果如下图


zabbix3.2.0 添加IO监控_群组_08


点击检测中 》聚合图形 》创建聚合图形 》所有者Zabbix Admin 命名为IO  指定12行2列 根据个人情况指定。


点击聚合图形 》 再次点击聚合图形  找到IO  》点击 构造函数 》  更改 》 选择群组》 选择主机 》选择 IO_read

zabbix3.2.0 添加IO监控_自定义_09



》点击更改 》选择 》


zabbix3.2.0 添加IO监控_群组_10


额外操作的步骤:

1.需要查看自己的磁盘

2.创建对应的应用集

3.在创建监控项的时候指定应用集


默认英文,zabbix修改中文支持自行百度。