需要监控每台服务器的磁盘I/O,由于每台服务器的磁盘名称可能不一样,所以需要用到Zabbix的LLD功能来发现磁盘并监控I/O。

一、客户端(被监控端)

1.发现磁盘的脚本(disk_discovery.sh)

#!/bin/bash#written by lenwood#mail:diskarray=(`cat /proc/diskstats |grep -E "\b[sv]d[abcdefg]\b|\bxvd[abcdefg]\b"|grep -i "\b$1\b"|awk '{print $3}'|sort|uniq   2>/dev/null`)length=${#diskarray[@]}printf "{\n"printf  '\t'"\"data\":["for ((i=0;i<$length;i++))doprintf '\n\t\t{'printf "\"{#DISK_NAME}\":\"${diskarray[$i]}\"}"if [ $i -lt $[$length-1] ];thenprintf ','fidoneprintf  "\n\t]\n"printf "}\n"

我把这个脚本放到zabbix-agent的/etc/zabbix/os目录下

执行结果如下:

root@ubuntu:~# ./disk_discovery.sh
{"data":[{"{#DISK_NAME}":"sda"}]
}

说明:执行结果看到此台测试机上面只有一块磁盘sda

2.获取磁盘I/O信息

a.使用iostat收集磁盘I/O信息(这条指令是每隔一秒将磁盘信息内容写入到/tmp/iostat_output,并且后台运行)

 1.apt-get install sysstat(有些机器上面没有安装sysstat,如果有了可以忽略此步骤)安装完之后可以使用 iostat 展示信息如下:
root@ubuntu:~# iostat
Linux 4.4.0-21-generic (ubuntu)     10/28/2019  _x86_64_    (1 CPU)avg-cpu:  %user   %nice %system %iowait  %steal   %idle0.74    0.00    0.55    0.74    0.00   97.97Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               2.68         8.19        52.80    1383496    8915276root@ubuntu:~#

Zabbix官方动态监控磁盘I/O

安装
在zabbix-agent.conf中增加参数

#### enable Include in config
# /etc/zabbix/zabbix_agentd.conf
echo "Include=/etc/zabbix-agent.d/*.conf" >> /etc/zabbix/zabbix_agentd.conf#### copy config
mkdir -p /etc/zabbix-agent.d/ && cd /etc/zabbix-agent.d/
curl -O 'https://raw.githubusercontent.com/dusharu/ZBX_Disk_Stat/master/config_zabbix-agent/Disk_Stat.conf'#### restart zabbix-agent
# RHEL/CentOS
systemctl restart zabbix-agentd
# Debian/Ubuntu
systemctl restart zabbix-agent
# Gentoo
/etc/init.d/zabbix-agentd restart

Zabbix官方模板

wgethttps://github.com/dusharu/ZBX_Disk_Stat/blob/master/Template_ZBX/ZBX_Disk_Stat.xml

调试命令

测试发现

zabbix_get -s <IP|Server_Name> -k custom.blkdev.discovery |jq .

获得统计量

zabbix_get -s <IP|Server_Name> -k custom.blkdev.all_stat[vg00-lv_root] | jq .

监控磁盘I/O官方脚本
https://github.com/dusharu/ZBX_Disk_Stat/blob/master/Develop/scripts/blkdev_discovery_awk.sh
https://github.com/dusharu/ZBX_Disk_Stat/blob/master/Develop/scripts/blkdev_get_param_awk.sh
https://github.com/dusharu/ZBX_Disk_Stat/blob/master/Develop/scripts/blkdev_show_stat.sh
官方监控模板
https://github.com/dusharu/ZBX_Disk_Stat/blob/master/Template_ZBX/ZBX_Disk_Stat.xml

官方监控配置文件Disk_Stat.conf

##### ZBX_Disk_Stat #####
# Downloaded from:
#   https://github.com/dusharu/ZBX_Disk_Stat
#
# Docs:
#   https://www.kernel.org/doc/Documentation/admin-guide/iostats.rst
#   https://www.kernel.org/doc/Documentation/ABI/testing/procfs-diskstats#### Discovery ####
UserParameter=custom.blkdev.discovery,awk ' BEGIN { printf("{\n\t\"data\":["); } { if (FNR != 1) {printf ("\t},")}; printf("\n\t\t{\t\"{#DEVBLK}\":\""); if (match($3, /^dm-[0-9]*/)) { system("ls -l /dev/mapper/ |grep -e \"../" $3  "$\" | awk \"{print \\$9}\"|tr -d \"\\n\""); } else { printf($3); }; printf("\""); } END { {printf ("\t}\n")} printf("\t]\n}\n"); }' /proc/diskstats#### Get Stat ####
UserParameter=custom.blkdev.all_stat[*],DISK="$1"; if [[ ! -b "/dev/$DISK" ]]; then DISK="$( ls -l /dev/mapper/ |awk "/ $DISK / {gsub(\"../\",\"\",\$$11);print \$$11}" )"; fi; if [[ "$DISK" != "" ]]; then grep -m1 " $DISK " /proc/diskstats | column --json --table-name ZBX_Disk_Stat --table-columns major,minor,name,read_complete,read_merge,read_sector,read_time,write_complete,write_merge,write_sector,write_time,io_queue,io_time,io_time_weight,discard_complete,discard_merge,discard_sector,discard_time --table-hide  major,minor,read_merge,write_merge,io_time,io_time_weight,discard_complete,discard_merge,discard_sector,discard_time; else exit 100; fi

地址:https://github.com/dusharu/ZBX_Disk_Stat/blob/master/config_zabbix-agent/Disk_Stat.conf

参考链接

https://www.iteye.com/blog/20120923lina-2258119
https://github.com/dusharu/ZBX_Disk_Stat

Zabbix动态监控磁盘I/O相关推荐

  1. linux磁盘i o跟踪,利用zabbix动态监控磁盘I/O

    最近在看Linux I/O子系统相关的资料,需要监控每台服务器的磁盘I/O,特别是MongoDB数据库服务器的磁盘I/O,由于每台服务器的磁盘名称可能不一样,所以需要用到Zabbix的LLD功能来发现 ...

  2. zabbix之监控磁盘读写速度

    Zabbix作为强大的服务器监控平台,本次利用它来检测服务器中各个硬盘的读写速度,以便能在硬盘性能下降能够即使更换,不影响工作效率. 1.dd命令使用 利用Linux自带的dd命令来测试硬盘的读写速度 ...

  3. linux 访问磁盘bin,zabbix应用之Low-level discovery监控磁盘IO

    zabbix自带的"Template OS Linux"模板支持监控已挂载的磁盘空间利用率,是利用LLD(Low-level discovery)实现的,却没有对磁盘IO监控.本篇 ...

  4. zabbix企业应用之low level discovery监控磁盘吞吐量与iops

    最近比较忙,所以很久没有写博客了,现在分享一下如何使用lld来监控磁盘的吞吐量与iops. 之前使用zabbix监控磁盘的时候,都是固定的磁盘,比如sda.sdb什么的,然后不同监控磁盘名做不同的模板 ...

  5. zabbix自动发现监控磁盘(iops和读写量)

    2019独角兽企业重金招聘Python工程师标准>>> 对于磁盘有个iops的概念比较奇怪,想监控起来看下,利用zabbix的自动发现把每个磁盘的iops监控起来,思路:自动发现所有 ...

  6. zabbix如何监控linux磁盘性能IO

    前提环境: perl和python,以及zabbix-agent已是可用状态 需要主要监控的指标: 1:每秒IO数,即iops或tps2:吞吐率3:平均IO尺寸,avgrq-sz4:IO等待队列长度, ...

  7. zabbix 监控项-计算公式监控磁盘使用率

    转载来源 :zabbix 监控项-计算公式 :http://www.lwops.cn/thread-261-1-2.html 监控磁盘使用率 zabbix自带的key基本能满足监控需求,但面对现实场景 ...

  8. zabbix监控系统进阶专题篇(企业微信报警,邮箱报警,电话报警,监控数据库,监控磁盘性能)

    一:zabbix配置文件详解 1. zabbix-server配置文件 Zabbix 日志 默认用文件记录,也可以发送给我们的 rsyslog 日志记录系统,如果我们 选择默认,则日志存放在LogFi ...

  9. zabbix 4.0 自动发现windows磁盘,并监控磁盘使用率和磁盘剩余容量

    1.创建磁盘自动发现规则,通过zabbix内置的键vfs.fs.discovery 2.过滤掉不需要的磁盘(可在zabbix服务端通过zabbix_get 命令获取vfs.fs.discovery的值 ...

最新文章

  1. xdoj(1187~1195 )Orz熊猫杯。
  2. 如何使用Navicat恢复数据库脚本
  3. java用mvvm,[Java教程]MVVM架构~使用boxy和knockoutjs实现编辑功能
  4. YOLOv4论文笔记
  5. 力扣 每日一题 丢失的数字
  6. mysql导出不带注释的sql语句_MySQL mysqlbinlog解析出的SQL语句被注释是怎么回事
  7. UDP传输 TCP传输
  8. 怎么用wps抽签_【WPS神技能】如何在WPS-Excel表格中制作抽奖小程序?
  9. ArcSight Recon
  10. accept搭配用法_动词accept的用法与搭配
  11. Python计算贝塔系数和夏普比率
  12. 11月28日服务器不稳定公告,《神之物语》手游11月28日服务器维护内容公告
  13. 高手UI设计师干货总结分享品牌LOGO设计的过程要求及方法
  14. Linux下QT安装
  15. houdini节点大全中文手册_【技术贴】武林秘籍在此!大咖座谈虚幻引擎制作影视动画经验!...
  16. php开发环境搭建和基础入门
  17. Promise的基础使用与生成器配合Promise解决回调地狱
  18. 【附源码】计算机毕业设计SSM人力资源管理系统
  19. 这个是可以将得到速查编码的存储过程 如 中国人 可以得到 ZGR
  20. 机器学习的数学基础(贰)

热门文章

  1. mac中sublime运行html,Mac系统下Sublime Text直接运行JavaScript调试控制台
  2. 南开100题计算机三级网络技术,计算机三级网络技术上机南开100题T46-50 -.pdf
  3. java none怎么用tomcat_在docker中部署tomcat并且部署java应用程序的步骤详解
  4. python面板数据分析代码_用python预处理面板数据(续)
  5. Linux网络处理“零拷贝”技术mmap()内核进程间通信设计8086分页管理——摆在一起来谈谈...
  6. 设计模式原则之六:依赖倒置原则
  7. MongoDB.so: undefined symbol: HeUTF8解决方法
  8. 2019年最新 Python 模拟登录知乎 支持验证码
  9. [Spark]Spark RDD 指南二 初始化
  10. 九度 1529:棋盘寻宝(递推DP)