我这里主要是通过分析/proc/diskstats文件,来对IO的性能进行监控。

客户端配置

1、编辑zabbix配置文件,新添加一个配置文件userparameter_disk.conf

vi /etc/zabbix/zabbix_agentd.d/userparameter_disk.conf

1

vi/etc/zabbix/zabbix_agentd.d/userparameter_disk.conf

UnsafeUserParameters=1

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

2

3

4

5

6

7

8

9

UnsafeUserParameters=1

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}'

参数解释:

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}'磁盘I/O当前进度

UserParameter=custom.vfs.dev.io.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$13}'磁盘I/O花费的毫秒数

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-agentd.conf的Include路径(yum装的agent默认开启此项)

cat /etc/zabbix/zabbix_agentd.conf | grep Include=

1

cat/etc/zabbix/zabbix_agentd.conf|grepInclude=

Include=/etc/zabbix/zabbix_agentd.d/*.conf

1

Include=/etc/zabbix/zabbix_agentd.d/*.conf

3、重启zabbix-agent

/etc/init.d/zabbix-agent restart

1

/etc/init.d/zabbix-agentrestart

服务端配置

1、服务端测试,如果上述配置正确的话会返回一个值

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

1

zabbix_get-s目标服务器IP-p10050-kcustom.vfs.dev.write.ops[sda]

2、zabbix监控项配置

我这里配置了磁盘读扇区次数和磁盘写扇区次数,以及cpu等待磁盘io操作的时间,也就是top命令中的wa参数

名称:CPU $2 time

键值:system.cpu.util[,iowait]

信息类型:浮点数

单位:%

名称:Disk:$1:Read:Bytes/sec磁盘读扇区次数

键值:custom.vfs.dev.read.sectors[sda]

单位:B/sec

使用自定义倍数:4096

存储值:差量(每秒速率)

名称:Disk:$1:Write:Bytes/sec磁盘写扇区次数

键值:custom.vfs.dev.write.sectors[sda]

单位:B/sec

使用自定义倍数:4096

存储值:差量(每秒速率)

PS:以下几项根据情况自行设置

名称:Disk:$1:Read:ms磁盘读花费的毫秒数

键值:custom.vfs.dev.read.ms[sda]

单位:ms

存储值:差量(每秒速率)

名称:Disk:$1:Write:ms磁盘写花费的毫秒数

键值:custom.vfs.dev.write.ms[sda]

单位:ms

存储值:差量(每秒速率)

名称:Disk:$1:Read:ops per second磁盘完成读的次数

键值:custom.vfs.dev.read.ops[sda]

单位:ops/second

存储值:差量(每秒速率)

名称:Disk:$1:Write:ops per second磁盘完成写的次数

键值:custom.vfs.dev.write.ops[sda]

单位:ops/second

存储值:差量(每秒速率)

3、设置图形

PS:关于自定义倍数的说明,网上文章写的都是512,如果自定义倍数用了512,那么这个值应该和iotop差不多。

但是正常我们用hdparm给硬盘测读取的时候数值会很高,这正是因为单位换算的问题,所以如果想更直观的查看IO,可以在自定义倍数填写512*8,也就是4096。(我个人是这样理解的,如果你有不同观点,可以给我留言)

~微信打赏~

分享到:

硬盘io监控linux,zabbix3.2监控linux磁盘IO相关推荐

  1. vc++6.0获取磁盘基本信息_分享一个实用脚本--一键获取linux内存、cpu、磁盘IO等信息...

    概述 今天主要分享一个shell脚本,用来获取linux系统CPU.内存.磁盘IO等信息. 脚本 #!/bin/bash # 获取要监控的本地服务器IP地址 IP=`ifconfig | grep i ...

  2. 一键获取linux内存、cpu、磁盘IO等信息脚本编写,及其原理详解

    一.脚本 今天主要分享一个shell脚本,用来获取linux系统CPU.内存.磁盘IO等信息. #!/bin/bash # 获取要监控的本地服务器IP地址 IP=`ifconfig | grep in ...

  3. 分布式监控系统Zabbix3.2监控数据库的连接数

    在 分布式监控系统Zabbix3.2跳坑指南 和 分布式监控系统Zabbix3.2给异常添加邮件报警 已经介绍了如何安装以及报警.此篇通过介绍监控数据库的3306端口连接数来了解如何监控其它端口和配置 ...

  4. Linux统计进程网络,查看磁盘io、内存free、系统进程ps、网络状态netstat、Linux抓包tcpdump...

    查看磁盘io性能状态 iostat -x 查看磁盘使用(安装包与sar的安装包一起) 主要查看%util [root@shu-test ~]# iostat -x Linux 3.10.0-693.e ...

  5. 关于Linux性能调优中磁盘IO调优的一些笔记

    写在前面 和小伙伴分享一些Linux 磁盘 IO优化的笔记,内容很浅,可以用作入门 博文内容结合<Linux性能优化>读书笔记整理 涉及内容包括 使用vmstat 统计系统内磁盘分区I/O ...

  6. 测试硬盘读写速度c语言实现,一次解决磁盘IO读取慢全过程实战

    在两台型号相同的机器上(snap1 和snap3)测试磁盘的读取速度,发现两台机器的读取速度差的很大: #dd if=/dev/dm-93 of=/dev/null bs=4M count=1024 ...

  7. mysql io瓶颈,(续)为什么当磁盘IO成瓶颈之后数据库的性能急剧下降—性能更悲剧篇...

    我们来梳理一下数据页访问的流程: 1. 先看缓存池中有没有,如果没有,则需要访问磁盘. 2. 访问磁盘之前,是不是需要先提前准备好一个空闲的内存块来接收(存放)磁盘上的数据页的内容? 很显然,这个空闲 ...

  8. 每天一个linux命令之-iotop-监控磁盘IO

    iotop命令是一个用来监视磁盘I/O使用状况的top类工具,iotop具有与top相似的UI,其中包括pid.user.I/O.进程等相关信息等: 是一个类似 top 的工具,用来显示实时的磁盘活动 ...

  9. Linux下使用iotop检测磁盘io使用情况

    介绍 Linux下的IO统计工具如iostat, nmon等大多数是只能统计到per设备的读写情况, 如果你想知道每个进程是如何使用IO的就比较麻烦. iotop 是一个用来监视磁盘 I/O 使用状况 ...

最新文章

  1. python 余弦_Python快速余弦距离
  2. Spring 连接 PostgreSQL
  3. D. Steps to One(概率DP,莫比乌斯反演)
  4. 中lisp文件_关于 Emacs 中的变量你需要知道的事情 | Linux 中国
  5. oracle滚动统计,sql – 按月滚动或运行Oracle总计
  6. 微信小程序实现视频功能(一):视频上传
  7. 各种梯度算法总结 + Total Variation
  8. 世界50所知名大学提供开放课程
  9. 启动日志中出现The APR based Apache Tomcat Native library which allows optimal performance in production env
  10. 关于base64编码解码(Android编码,JS解码,案例为解决安卓端H5页面的emoji表情显示问题)
  11. 过滤器Filter的介绍
  12. 使用WPS后安装Office文档图标显示异常
  13. mysql数据库的连接--买家类目(上)
  14. 判断当前手机设备的类型(安卓还是IOS)
  15. Openstack之Keystone组件解析
  16. 实验四 数据查询——简单查询 Sql Server数据库实验
  17. Oracle小数补零
  18. 开源 – “这是最好的时代,这是最坏的时代”
  19. 镜像底层原理详解和基于Docker file创建镜像
  20. warmup-实验吧

热门文章

  1. 以WhatsApp为例,外贸人如何从0到1构建社交营销闭环全流程
  2. 基于STM32的指纹锁
  3. uniapp爱玩小灰视频播放器使用流程
  4. torch.distributions.normal,torch.distributions.normal.log_prob,torch.distributions.normal.rsample
  5. 平台设备驱动中的prob是怎么被调用的?为什么说是bus提供的probe优先调用?
  6. Liam的操作系统学习历程(一):xv6 homework 9 Barriers
  7. Oracle EBS AP预付款发票核销可用金额查询SQL
  8. 第二、三代基因组测序数据混合拼接软件综述
  9. 李云大连理工计算机系2015级,大连理工大学考研研究生导师简介-李秀英
  10. 《前方的路》读书笔记