Zabbix监控服务器磁盘I/O

一、场景说明:
需要使用Zabbix监控服务器上各个磁盘的I/O使用率,当zabbix自身带的item 无法满足我们的时候,则需自定义item。
    包括:
  • 磁盘读的次数
  • 磁盘读的毫秒数
  • 磁盘写的次数
  • 磁盘写的毫秒数
  • 正在处理的输入/输出请求数
  • 花费在I/O操作上的毫秒数
  • 读扇区的次数(一个扇区等于512B)
  • 写扇区的次数(一个扇区等于512B)
 
注意:本环境要监控的服务器在阿里云上,所以每台服务器上的设备名称不同,为解决此问题,我定义了多个模板来解决此问题!
各位小伙伴请根据实际情况进行配置
 
二、步骤概览
 
1.数据来源:/proc/diskstats
/proc/diskstats文件说明
$1: 主设备号
$2: 次设备号
$3: 设备名称
$4: 读完成次数
$6: 读扇区的次数(一个扇区等于512B)
$7: 读磁盘的毫秒数
$8: 写完成次数
$10: 写扇区的次数(一个扇区等于512B)
$11: 磁盘写的毫秒数
$12: 正在处理的输入/输出请求数
$13: 花费在I/O操作上的毫秒数
2.自定义item
3.在zabbix_server端测试
4.配置Zabbix-server WEB UI
5.监测最新数据
 
二、操作步骤:
    
1.自定义item并重新加载Agent.
~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_disk_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}'            
#花费在IO操作上的毫秒数
UserParameter=custom.vfs.dev.io.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$13}'
#读扇区的次数(一个扇区的等于512B)
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}
~]# systemctl restart zabbix-agent
2.在zabbix-server端测试
 
~]# zabbix_get -s 192.168.1.100 -k custom.vfs.dev.io.ms[xvda1]       // 如果没有这个命令的话则需要使用yum安装(yum -y install zabbix-get)
2547825
~]# zabbix_get -s 192.168.1.100 -k custom.vfs.dev.read.sectors[xvda1]
7716602
....等等,当全部数据都可获取时,则说明item生效.
3.配置Zabbix-server WEB UI
 
(1)如图操作:配置 → 模板 → 创建模板.
 
(2)如图操作:自定义模板名称 → 将被监控主机群组加入到"群组"中.
 
(3)如图操作:监控项 → 创建监控项
 
(4)如图操作:自定义名称 → 采集数据的方式 → 手动指定键值 → 指定单位 → 指定应用集 → 进程 → 每秒更改 → 点击更新.
 
 
(5)如图操作:再次新建监控项 → 名称 → 获取数据方式 → 自定义key → 数值类型 → 数据单位 → 进程 → 自定义倍数(512) → 每秒更改 → 更新.
 
 
(6)如图所示:下面的操作都与上述描述差的不多,在此不做注释.
 
 
(7) 如图操作:
 
(8)如图操作:
 
(9) 如图操作:
 
4.监测最新数据,如图所示(如果有多块磁盘,那么就配置多个模板,模板间可互相克隆后修改$1位置的磁盘名称)

猜你喜欢

转载自www.cnblogs.com/k-free-bolg/p/11776871.html