上篇写了一个zabbix_系统IO监控,但每次都需要手动加,比较费劲,监控项跟图形都只能一个一个加

附上篇博客地址: http://xiong51.blog.51cto.com/5239058/1947663

这次使用zabbix_自动发现的模式来搞一次,

大概思路,

1、在zabbix客户端先配置iostat最新数据,

1.1、不能直接使用iostat,因为它的数据一直会固定不动,使用iostst -xdkt 5 3   (5秒3次)

1.2、 定义好脚本之后需要使用crontab配置每1分钟或者30秒更新一次数据,直接输送到文件就成

2、写一个自动发现的脚本,发现iostat有几个磁盘,格式必须为JSON,key值必须大写

2.1、 小写会出现 这个  Cannot create item: item with the same key “custom.vfs.dev.read.ops `xxxxxx` already exists

2.2、 避免出现坑,配置完成之后在zabbix服务端上运行,出现下图的结果说明脚本运行正常

2.3、 在测试之前,必须在zabbix客户端的配置文件中加一行,io.dis为自己定义的键

UserParameter=io.dis.status[*],/usr/local/zabbix/scripts/discovery_iostat_disk.sh

3、最后在弄一个脚本,配置你想要监控的项就成

rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util

各项值的详解

rrqm/s: 每秒进行 merge 的读操作数目。即 rmerge/s
wrqm/s: 每秒进行 merge 的写操作数目。即 wmerge/s
r/s: 每秒完成的读 I/O 设备次数。即 rio/s
w/s: 每秒完成的写 I/O 设备次数。即 wio/s
rsec/s: 每秒读扇区数。即 rsect/s
wsec/s: 每秒写扇区数。即 wsect/s
rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。
wkB/s: 每秒写K字节数。是 wsect/s 的一半。
avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。
avgqu-sz: 平均I/O队列长度。
await: 平均每次设备I/O操作的等待时间 (毫秒)。
svctm: 平均每次设备I/O操作的服务时间 (毫秒)。
%util: 一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比

4、 附上脚本一共四个   所有脚本都需要7的权限 rwx 使用zabbix用户

#!/bin/bash
#
#   Name:service 取出io数据用于分析
#   Version Number:1.01
#   Type: 取出I/O数据
#   Language:bash shell
#   Date:2017-08-07
#   Author:xiongiostat -xdkt 5 3 > /tmp/io.txttimes=`date +%H":"%M":"%S`# 取出最后一次iostat更新的数据,为最新数据,将最新的数据更新至/tmp/2.txt 不输出
grep "$times" -A 100 /tmp/io.txt  > /tmp/io2.txt
#!/bin/bash
#
#   Name:service 自动发现io_磁盘
#   Version Number:1.01
#   Type: 自动发现io_磁盘
#   Language:bash shell
#   Date:2017-08-07
#   Author:xiongdisk=(`awk '{print $1}' /tmp/io2.txt | sed -e "1,2d"`)
length=${#disk[@]}printf "{\n"
printf "\t\"data:\"[\n"
for ((i=0;i<$length;i++)); doprintf '\t\t{'printf "\"{#disk_name}\":\"${disk[$i]}\"}"if [ $i -lt $[$length - 1] ];thenprintf ",\n"fi
done
printf "\n\t]\n"
printf "}\n"
############### 配置脚本 #!/bin/bash
#
#   Name:service 自动发现io_磁盘
#   Version Number:1.01
#   Type: 自动发现io_磁盘
#   Language:bash shell
#   Date:2017-08-07
#   Author:xiongdisk=$1
case $2 in
rrqm)grep "$disk" /tmp/io2.txt | awk '{print $2}' ;;
wrqm)grep "$disk" /tmp/io2.txt | awk '{print $3}' ;;
rs)grep "$disk" /tmp/io2.txt | awk '{print $4}' ;;
ws)grep "$disk" /tmp/io2.txt | awk '{print $5}' ;;
rkB)grep "$disk" /tmp/io2.txt | awk '{print $6}' ;;
wkB)grep "$disk" /tmp/io2.txt | awk '{print $7}' ;;
avgrqsz)grep "$disk" /tmp/io2.txt | awk '{print $8}' ;;
avgqusz)grep "$disk" /tmp/io2.txt | awk '{print $9}' ;;
await)grep "$disk" /tmp/io2.txt | awk '{print $10}' ;;
rawait)grep "$disk" /tmp/io2.txt | awk '{print $11}' ;;
wawait)grep "$disk" /tmp/io2.txt | awk '{print $12}' ;;
svctm)grep "$disk" /tmp/io2.txt | awk '{print $13}' ;;
util)grep "$disk" /tmp/io2.txt | awk '{print $14}' ;;
esac*)echo "使用方法  /bash disk_name disk_type" exit 5 ;;
esac

# 附上一个临时配置脚本文件,懒得写的 可以先运行一下这个脚本,然后再修改一下就成

#!/bin/bash
#
a=(`cat io2.txt |sed '1d' | grep '^Device'`)
length=${#a[@]}printf "#!/bin/bash\n"
printf "#\n"
printf "case \$1 in\n"
for ((i<0;i<length;i++));doprintf "${a[$i]})\n"printf "\tgrep \"\$disk\" /tmp/io2.txt | awk \'{print $i}\' ;;\n"
doneprintf "esac\n"

5、  配置计划任务,让iostat.sh脚本能够1分钟或者30秒执行一次,取最新的数据

 crontab -e 中添加一行
0 */1 * * * /bin/bash /usr/local/zabbix/scripts/iostat.sh

6、 zabbix客户端配置

vim ../etc/zabbix_agentd.conf   # 此处为自己配置的zabbix目录 使用绝对路径最为妥当
UserParameter=io.dis.status[*],/usr/local/zabbix/scripts/discovery_iostat_disk.sh
UserParameter=io.status[*],/usr/local/zabbix/scripts/zabbix_iostat_disk.sh  $1 $2

7、 效果图,所有的键值类型都是字符型

8、 最后附上模板

太长不方便看,请附件中下载

转载于:https://blog.51cto.com/xiong51/1954271

zabbix 系统IO监控_自动发现相关推荐

  1. 监控软件自动发现功能和监控软件分布式监控配置

    监控软件自动发现功能 新添加了一台web02主机 被监控主机上,需要安装好zabbix-agent程序 编辑zabbix-agent配置文件 [root@web02 yum.repos.d]# gre ...

  2. 分布式监控系统Zabbix3.2添加自动发现磁盘IO并注册监控

     zabbix并没有给我们提供这么一个模板来完成在Linux中磁盘IO的监控,所以我们需要自己来创建一个,在此还是在Linux OS中添加. 由于一台服务器中磁盘众多,如果只一两台可以手动添加,但服务 ...

  3. zabbix 监控项自动发现过滤_通过Zabbix的自动发现(规则)自动创建监控项

    下图是一个已配置并启用的自动发现规则: 应用到165.194这个主机后,自动发现的监控项: 服务端配置创建Template 创建Discovery rule 键值readPorts跟被监控端配置的参数 ...

  4. 坚持#第273天~zabbix监控2(自动发现的总结、自动注册、微信报警、linux上网)

    zabbix自动发现: 一:创建发现规则 配置-自动发现 名称:Local networkHaha IP范围:192.168.1.1-255 检查-新的ICMP ping用于与其他对象ping的通的功 ...

  5. zabbix 监控项自动发现过滤_Zabbix5.2由浅入深之官方自动发现规则初探(网络篇)

    今天的主题是官方模板的自动发现规则分析,在监控工作中常常会遇到一些可变化的OID值,也就是父OID+索引,而索引本身是变化的,如果监控设备数量固定,一个个写问题不大,但在规模增加到一定程度手动添加已然 ...

  6. zabbix 监控项自动发现过滤_Zabbix监控之配置Linux自动发现与自动注册报警

    1.关于linux客户端的部署上篇已经介绍不清楚的可以去看一下(Zabbix监控之agent和邮件报警配置) 1.1.一.配置自动发现: 1.1.1.1.1.打开Zabbix Web管理界面,创建Za ...

  7. zabbix 监控项自动发现过滤_Zabbix使用javascript+jsonpath预处理动态生成监控项

    场景模拟: 问题1:数据库空间如果太大,对性能方面有一定的影响,所以某知名企业的运维人员小智想要监控每台数据库服务器的数据库文件大小.这名运维人员目前的做法是执行查询语句,把结果存成txt文件,然后每 ...

  8. zabbix详解之监控项自动发现(LLD)

    概述 自动发现(LLD)提供了一种为受监控节点的不同监控指标自动创建监控项,触发器和图形的分发.例如,Zabbix可以在你的机器上自动开始监控服务端口,而无需为每个服务端口手动创建监控项. 此外,可以 ...

  9. Zabbix磁盘IO监控

    首先在zabbix_agent下定义一个获取磁盘IO信息的脚本: vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/disk_status.sh#/bin/ ...

最新文章

  1. java8的jvm优化_基于JDK8 版本的SpringBoot 启动参数优化(建议收藏)
  2. node.js的开发流程_Node.js子流程:您需要了解的一切
  3. mysql deadlock 记录_MySQL DeadLock故障排查全过程记录
  4. WebView 指南
  5. 使用netron实现对onnx模型结构可视化
  6. python爬虫作业帮_2020高校邦《网络数据采集与Python爬虫【带实验】》课后作业参考答案2020知到《PPT创意动画》单选题答案...
  7. 红米9.0系统设备最完美激活XPOSED框架的教程
  8. 自动提取论文公式方法
  9. 阿米洛 varlimo 机械键盘 cmd (win) 键锁定
  10. win7下搭建小程序服务器,重磅!微信PC端支持小程序直接开启 适配Win7及以上系统...
  11. [react] Target container is not a DOM element
  12. InstallShield打包源码公布
  13. 中国计算机科学家数量百人,百位科学家获“中国青年科技奖”,高校人数占比超七成...
  14. 天融信七层虚拟服务器设置,一看就会!天融信智慧无线管理平台(ESP)安装图解...
  15. 前京东AI掌门人周伯文入局ChatGPT,亲手创立的衔远科技获天使轮融资数亿元!
  16. 解决了一个Web网页显示不全的BUG
  17. 虚数到底有什么意义?
  18. 一、三次握手【绿皮书很重要】
  19. Pytorch-工业应用中如何选取合适的损失函数(MAE、MSE、Huber)
  20. ADO.NET ORM数据库增删改查封装(工具一)

热门文章

  1. python 换页_Python之路【第十九篇】自定义分页实现(模块化)
  2. 诺基亚7P可刷华为鸿蒙系统,今日热闻 | 鸿蒙OS 2.0发布、EMUI 11发布、iPhone 12或配备7P镜头...
  3. php检测数组值的长度,php检测数组长度的函数sizeof count_PHP教程
  4. mysql8.0.13安装不_Windows环境下MySql8.0.13的安装及常见问题解决方案
  5. php 遍历文件夹并压成zip_php ZipArchive实现多文件打包下载实例
  6. Vue 3.0已进入发布候选阶段!
  7. python字典类型可迭代_核心数据类型--字典
  8. python item方法_Python中使用item()方法遍历字典的例子
  9. Android的setVisibility的三个参数
  10. Windows 10 开启 Num Lock