引言

在前面的博客中我们介绍了zabbix自带的模板,并且完成了我们的一些比较常用的监控,现在我们如果想要监控我们磁盘的IO,这时候zabbix并没有给我们提供这么一个模板,所以我们需要自己来创建一个模板来完成磁盘IO的监控。

步骤

  1. 添加userparameter_io.conf配置文件 在/etc/zabbix/zabbix_agentd.d下添加userparameter_io.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}' //花费在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)

2、重启zabbix-agent服务
systemctl restart zabbix-agent

3、测试zabbix-server获取数据

1
2
#zabbix_get -s 目标服务器IP -p 10050 -k custom.vfs.dev.write.ops[sda]  

4、配置zabbix-server模板

1
2
进入web界面—》配置—》模板—创建模板

在这里插入图片描述

5、配置监控项

进入到模板列表页面,找到我们刚刚创建的Templae io模板,点击后面监控项,然后点击创建监控项
在这里插入图片描述

配置第一个监控项

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
在这里插入图片描述

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

1
2
3
4
5
6
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

第三个监控项配置参数:

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

第四个监控项配置参数:

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

第五个监控项配置参数:

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

第六个监控项配置参数:

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

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

5、添加图形

返回到模板的列表页面,找到我们创建的模板Template io 然后点击后面的图形—》创建图形
在这里插入图片描述

点击添加—》选择我们配置的监控项
在这里插入图片描述

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

我们就拿之前博客中监控的机器来做实验,但是我们之前这台机器用了zabbix自带的模板 Template os Linux ,现在我们自己自定义了一个模板,那么怎么办呢?zabbix设计的还是非常人性的。模板之间是继承关系的!

我们回到给被监控的主机的哪一步,选择我们自定义的模板!
在这里插入图片描述

这样我们就可以查看结果了 检测中—》图形

小结

到这我们就完成了自定义模板的配置,顺便把监控磁盘IO也完成了!