zabbix并没有给我们提供这么一个模板来完成在Linux中磁盘IO的监控,所以我们需要自己来创建一个,在此还是在Linux OS中添加。

  由于一台服务器中磁盘众多,如果只一两台可以手动添加,但服务集群达到几十那就非常麻烦,因此需要利用 自动发现 这个功能,自动发现后自动添加对服务器磁盘的监控,而且添加磁盘后也会自动添加到监控,实现自动化运维的效果,所以在这里也演示一次自动发现的配置。

打开Linux模板,添加自动发现规则

上面的key值是需要在 zabbix_agent.conf 中配置的

UserParameter=disk.discovery,/usr/local/share/zabbix/alertscripts/disk_discovery.sh

自动发面的规则用shell代码实现,返回一段磁盘的json list

代码 disk_discovery.sh

#!/bin/bash
diskarray=(`cat /proc/diskstats |grep -E "\bsd[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 ','fi
done
printf  "\n\t]\n"
printf "}\n"

到此自动发现磁盘已完,有点简单吧。

添加监控项

按照上面的内容添加第一个写扇区的次数监控,接下来按下面的内容添加共6个内容。

内容介绍

名称: {#DISK_NAME}磁盘读的次数
键值: disk.status[{#DISK_NAME},read.ops]
单位: ops/second
储存值:差量(每秒速率)名称: {#DISK_NAME}磁盘写的次数
键值: disk.status[{#DISK_NAME},write.ops]
单位: ops/second
储存值:差量(每秒速率)名称: {#DISK_NAME}磁盘读的毫秒数
键值: disk.status[{#DISK_NAME},read.ms]
单位: ms
储存值:差量(每秒速率)名称: {#DISK_NAME}磁盘写的毫秒数
键值: disk.status[{#DISK_NAME},write.ms]
单位: ms
储存值:差量(每秒速率)名称: {#DISK_NAME}读扇区的次数
键值:  disk.status[{#DISK_NAME},read.sectors]
单位:  B/sec
使用自定义倍数: 512
储存值:差量(每秒速率)名称: {#DISK_NAME}写扇区的次数
键值:  disk.status[{#DISK_NAME},write.sectors]
单位:  B/sec
使用自定义倍数: 512
储存值:差量(每秒速率)

然后如果得到这些值是需要shell脚本的:

disk_status.sh

#/bin/sh
device=$1
DISK=$2case $DISK inread.ops)/bin/cat /proc/diskstats | grep "\b$device\b" | head -1 | awk '{print $4}'    #//磁盘读的次数
            ;;read.ms)/bin/cat /proc/diskstats | grep "\b$device\b" | head -1 | awk '{print $7}'    #//磁盘读的毫秒数
            ;;write.ops)/bin/cat /proc/diskstats | grep "\b$device\b" | head -1 | awk '{print $8}'     #//磁盘写的次数
            ;;write.ms)/bin/cat /proc/diskstats | grep "\b$device\b" | head -1 | awk '{print $11}'    #//磁盘写的毫秒数
            ;;io.active)/bin/cat /proc/diskstats | grep "\b$device\b" | head -1 | awk '{print $12}'    #//I/O的当前进度,
            ;;read.sectors)/bin/cat /proc/diskstats | grep "\b$device\b" | head -1 | awk '{print $6}'      #//读扇区的次数(一个扇区的等于512B)
            ;;write.sectors)/bin/cat /proc/diskstats | grep "\b$device\b" | head -1 | awk '{print $10}'     #//写扇区的次数(一个扇区的等于512B)
            ;;io.ms)/bin/cat /proc/diskstats | grep "\b$device\b" | head -1 | awk '{print $13}'      #//花费在IO操作上的毫秒数
            ;;esac

在客户端中的zabbix_agent.conf 中一起配置:

UserParameter=disk.discovery,/usr/local/share/zabbix/alertscripts/disk_discovery.sh
UserParameter=disk.status[*],/usr/local/share/zabbix/alertscripts/disk_status.sh $1 $2

要注意的是以上两个文件需要给x 执行权限。

添加图形显示

在图形原型中添加,注意名称中要带哪个磁盘的动态名称,不然会出现Disk IO 已注册的错误信息。

zabbix3 Cannot create graph: graph with the same name "Disk IO" already exists

在监控项中选择上面添加的6个监控项。

测试效果

重启客户端的zabbix_agentd,然后在zabbix服务端对服务发现和写扇区次数进行测试。代码如下,有显示内容说明已经部署成功。

查看图形化,选择监控主机,图形中查看,若还没有项,需要等个几分钟再看。

问题:

网上有网友用的是python来实现自动发现功能,但测试发现老是报错:

python import: command not found

可能是依赖包有问题,考虑到集群服务器的python环境问题,因此就不考虑用python的实现。

以上的内容也是基于之前的文章中的内容作为介绍基础,若有其他问题可先看之前的文章中介绍的基础环境。

转载于:https://www.cnblogs.com/zhangs1986/p/8118788.html

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

  1. 分布式监控系统Zabbix3.2对数据库的连接数预警

    在前篇分布式监控系统Zabbix3.2监控数据库的连接数 中已经对数据库的端口3306进行了监控,可以看到数据库的连接数历史变化有高有低,那如果达到了数据库连接数的阀值是不是主动通知给运维人员去检查问 ...

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

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

  3. 5 zabbix 添加host_运维监控实战篇,zabbix自动发现和自动注册图文详解

    一.介绍 自动发现 Zabbix自动发现就是为了解决批量监控而设计的功能之一,什么是自动发现呢,简单来说就是Zabbix Server端可以基于设定的规则,自动批量的去发现局域网若干服务器,并自动把服 ...

  4. Zabbix监控系统系列之十五:自动发现Oracle表空间并监控

    ======= 系列目录 ======= Zabbix监控系统系列之一 : Server部署 Zabbix监控系统系列之二 : 初始化配置 Zabbix监控系统系列之三 :版本升级 Zabbix监控系 ...

  5. zabbix自动发现oracle表空间并监控其使用率

    监控需求 Oracle表空间使用率实时监控,当表空间使用率达到95%时触发告警机制.Oracle表空间分为系统默认表空间和用户创建的表空间,而表空间又有自动扩展和非自动扩展两种类型,用户(DBA)在创 ...

  6. zabbix 自动发现规则 触发器_运维监控实战篇,zabbix自动发现和自动注册图文详解...

    一.介绍 自动发现 Zabbix自动发现就是为了解决批量监控而设计的功能之一,什么是自动发现呢,简单来说就是Zabbix Server端可以基于设定的规则,自动批量的去发现局域网若干服务器,并自动把服 ...

  7. 视频监控系统中流媒体服务器的主要功能,流媒体存储服务器在视频监控中被正确使用?它有哪些显著的优点?...

    原标题:流媒体存储服务器在视频监控中被正确使用?它有哪些显著的优点? 流媒体是指在互联网上以数据流的形式发布音视频多媒体内容的媒体,流媒体技术是指在IP网络上发布多媒体数据流的技术.它改变了传统互联网 ...

  8. HADOOP集群优化——CPU、内存、磁盘IO、YARN监控

    目录 hadoop集群优化指标---CPU.内存.磁盘IO.YARN监控 Linux性能监测:CPU篇 Linux性能监测:内存篇 Linux性能监测:磁盘IO篇 Linux性能监测:YARN篇 写在 ...

  9. 分布式监控系统Zabbix-3.0.3-完整安装记录(4)-解决zabbix监控图中出现中文乱码问题...

    之前部署了Zabbix-3.0.3监控系统,在安装数据库时已经将zabbix库设置了utf-8字符. 首先确定zabbix开启了中文支持功能: 登录到zabbix服务器的数据目录下(前面部署的zabb ...

最新文章

  1. 构建弹性架构组件—ELB和ASG
  2. Office word 2007不能另存为pdf格式的解决方法
  3. c# groupbox大小,C# 实现可拖动和调整大小的控件
  4. 织梦多个栏目arclist调用副栏目不显示的解决办法
  5. java 字符串 加密_如何用JAVA实现字符串简单加密解密?
  6. Linux下查看CPU等基本命令,Linux查看CPU和内存使用情况的常用命令
  7. anaconda怎么使用python包_Anaconda中python包的介绍与使用方法
  8. 编译安装openresty+mysql+php7
  9. CF235C-Cyclical Quest【SAM】
  10. 改善Java应用程序性能的快速技巧
  11. 谷歌浏览器的 vue插件工具
  12. 妙用遨游抓包找fckeditor上传木马路径
  13. 实时获取麦克风语音信号
  14. access 英语什么意思_Access数据库集成教程二:创建查询
  15. vs2003 下载地址
  16. 客户需求分析8个维度_电商数据分析的4大思维和8个指标
  17. 后端利用MultipartFIle类型参数接受文件上传
  18. Leetcode-93. 复原 IP 地址
  19. 数字转中文大写= 1234= 一千二百三十四
  20. golang常用库之-mgo.v2包、MongoDB官方go-mongo-driver包、七牛Qmgo包 | go操作mongodb、mongodb bson

热门文章

  1. 德勤加入阿里云原生合作伙伴计划,强强联手开创数字化咨询新风向
  2. 阿里巴巴大规模应用Flink的踩坑经验:如何大幅降低 HDFS 压力?
  3. 从零点五开始用Unity做半个2D战棋小游戏(四)
  4. 写给程序员的美术创作指南
  5. 进入“高画质手游时代”?《天谕》手游首次采用的这项技术有多强大
  6. 风雨彩虹,铿锵玫瑰——女足夺冠
  7. 【JavaScript脚本】——T1基本语法
  8. HTTP状态码对照表(全部状态_建议收藏)
  9. 小白的CMMI3体验
  10. ORACLE TEXT DATASTORE PREFERENCE(六)