原文参考:
https://www.cnblogs.com/ftl1012/p/iostat.html
https://blog.51cto.com/huangmanyao/2107337?utm_source=oschina-app
https://blog.csdn.net/m0_37814112/article/details/80742433
磁盘读写能力在测试硬件性能方面是一项非常重要的指标,同时当我们发现,主机的网络正常、CPU和内存都正常的情况下,但是系统卡顿、读写数据很慢,并且时常出现一卡一卡的现象的时候,最先考虑的因素就是硬盘的读写是否过高,但是zabbix-3.4没有自带的I/O监控项,需要我们手动添加,下面给出详细步骤:
1. 在agent端添加文件 userparameter_io.conf
cd /etc/zabbix/zabbix_agentd.d #yum安装的zabbix目录是在/etc/
vim 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}'
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}'
systemctl restart zabbix-agent.service #重启zabbix-agent服务
2. 在图形界面配置
(1)添加I/O读写模板,方便批量化实施;
(2)创建监控项,添加主机群组用户批量给多个主机添加监控项
- 读操作监控项
其余各项也差不多,这里不再赘述,可以参考下面各项添加:
- 写操作监控项
名称:Disk:$1:Write:Bytes/sec
键值:custom.vfs.dev.write.sectors[sda] #注意这里的sda是要监控的磁盘,在本地主机上面可以用fdisk -l来查看需要监控的磁盘
单位:B/sec
在左上角的“进程”中配置:
a. 简单更改;
b. 自定义倍数。
- 每秒钟读操作监控项
名称:Disk:$1:Read:ops per second
键值:custom.vfs.dev.read.ops[sda]
单位:ops/second
在左上角的“进程”中配置:
a. 简单更改;
- 每秒钟写操作监控项:
名称:Disk:$1:Write:ops per second
键值:custom.vfs.dev.write.ops[sda]
单位:ops/second
在左上角的“进程”中配置:
a. 简单更改;
- 每毫秒读操作监控项:
名称:Disk:$1:Read:ms
键值:custom.vfs.dev.read.ms[sda]
单位:ms
在左上角的“进程”中配置:
a. 简单更改;
- 每毫秒写操作监控项:
名称: Disk:$1:Write:ms
键值:custom.vfs.dev.write.ms[sda]
单位:ms
在左上角的“进程”中配置:
3. 添加监控图形
4. 查看图形
当然,如果只是一次性查看,而不需要长时间的监控I/O读写情况,可以直接使用命令iostat命令:
yum
install
sysstat #如果没有安装的话,可以使用yum安装一下,7.6中好像是自带的
常用参数:
-c:只查看CPU的统计信息
-d:只查看Device结果
-k/-m:输出结果以kB/mB为单位,而不是以扇区数为单位
-x:输出详细的io设备统计信息
interval/count:每次输出间隔时间,count表示输出次数,不带count表示循环输出
参数解析(详情请查看原文参考中的第一个链接):
(1)可以查看系统版本号;
(2)如果不在后面加磁盘的话,就会检测所有设备的I/O 性能;
(3)%util:一秒中有百分之多少的时间用于 I/O,如果接近100%,则说明I/O负载很高。