iostat统计磁盘信息的时候,使用的是/proc/diskstats ,cat /proc/diskstats显示如下

        ram0
ram1
ram2
ram3
ram4
ram5
ram6
ram7
ram8
ram9
ram10
ram11
ram12
ram13
ram14
ram15
loop0
loop1
loop2
loop3
loop4
loop5
loop6
loop7
sda
sda1
sda2
sr0
dm-
dm-
dm-

这个命令用于显示磁盘、分区和统计信息

sda为整个硬盘的统计信息

sda1为第一个分区的统计信息

sda2为第二个分区的统计信息。

ramdisk设备为通过软件将RAM当做硬盘来使用的一项技术。

硬盘参数详解如下:

8   0   sda          1                                                                                            23013470
编号 设备  读完成次数  合并完成次数   读扇区次数   读操作花费毫秒数   写完成次数   合并写完成次数   写扇区次数   写操作花费的毫秒数   正在处理的输入/输出请求数   输入/输出操作花费的毫秒数   输入/输出操作花费的加权毫秒数。

有了这些信息我们就可以添加进zabbix进行监控

1. 添加userparameter_io.conf配置文件

在/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)

2、重启zabbix-agent服务

   systemctl restart zabbix-agent

3、测试zabbix-server获取数据

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

4、配置zabbix-server

进入web界面—》配置—》模板—创建模板,或者直接在现有的Linux模板下添加监控项

配置第一个监控项

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

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

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操作的输入输出没有配置监控项,主要监控的是磁盘的读写情况,接着添加相应的图形即可

最新文章

  1. file命令
  2. 如何解决inline和linline-block在浏览器中的间距问题
  3. Infinite V2 Release Note
  4. 如何查看Android的Keystore文件的SHA1值
  5. 关于jQuery学习
  6. 一步步搭建自己的轻量级MVCphp框架-(二)一个国产轻量级框架Amysql源码分析(1)
  7. 基于MFC和opencv的FFT
  8. oracle 11g 之 result cache
  9. Redis sort命令
  10. Git学习04 --分支管理
  11. NHibernate - HQL - 添加和更改
  12. linux文件截取前几行,后几行,中间几行命令
  13. 显示 Ubuntu 11.10 的 终端窗口
  14. 拿到BAT等大厂offer以后,我发现了关于秋招的一些真相
  15. 【XShell】xshell评估过期解决办法
  16. Redhat中关于httpd仓库安装的简要步骤
  17. [LightOJ 1027] A Dangerous Maze
  18. ORA-12537:TNS:connectionclosed错误处理过程
  19. SQL Server 子查询错误:No column name was specified for column 2 of 'a' error (转载)
  20. The Scope Chain

热门文章

  1. NKOJ3751 扫雷游戏
  2. Linux利器:使用 gcc 编程C程序
  3. Flask 入门(五)
  4. 基础类封装-pymysql库操作mysql封装
  5. Golang Web入门(1):自顶向下理解Http服务器
  6. spring-cloud feign的多参数传递方案
  7. jvm入门及理解(二)——类加载器子系统
  8. spark sql createOrReplaceTempView registerTempTable
  9. Jmeter常用元件
  10. 实战|使用Spark Streaming写入Hudi