zabbix监控磁盘IO

摘要:
之后,您可以向zabbix添加项目。2.第二种方法是使用iotop命令获取数据#!项中的监测项目正常。也许这个值应该与zabbix接口上的项中的“updateinteval”一致,即1s。此外,iotop命令第三次收集的数据稍微稳定。整个监控系统已成功建立。

我这里有两种方法,感觉都不错。我这里主要是写一下监控的脚本。

1、使用iostat命令监控

1)首先打开配置文件的自定义脚本功能,然后编写脚本。

zabbix监控磁盘IO第1张

#!/bin/bash

if [ $# -ne 1 ];then
    echo "Follow the script name with an argument"
fi

case $1 in

    rrqm)
        iostat -dxk 1 2|grep -w vda |tail -1 |awk '{print $2}'
        ;;

    wrqm)
        iostat -dxk 1 2|grep -w vda |tail -1 |awk '{print $3}'
        ;;

    rps)
        iostat -dxk 1 2|grep -w vda |tail -1 |awk '{print $4}'
        ;;

    wps)
        iostat -dxk 1 2|grep -w vda |tail -1 |awk '{print $5}'
        ;;

    rKBps)
        iostat -dxk 1 2|grep -w vda |tail -1 |awk '{print $6}'
        ;;

    wKBps)
        iostat -dxk 1 2|grep -w vda |tail -1 |awk '{print $7}'
        ;;

    avgrq-sz)
        iostat -dxk 1 2|grep -w vda | tail -1  |awk '{print $8}'
        ;;

    avgqu-sz)
        iostat -dxk 1 2|grep -w vda |tail -1  |awk '{print $9}'
        ;;

    await)
        iostat -dxk 1 2|grep -w vda|tail -1 |awk '{print $10}'
        ;;

    svctm)
        iostat -dxk 1 2|grep -w vda |tail -1 |awk '{print $13}'
        ;;

    util)
        iostat -dxk 1 2|grep -w vda |tail -1 |awk '{print $14}'
        ;;

    *)
        echo -e "e[033mUsage: sh $0 [rrqm|wrqm|rps|wps|rKBps|wKBps|avgqu-sz|avgrq-sz|await|svctm|util]e[0m"
esac

2)添加至agent的脚本路径里面。

 zabbix监控磁盘IO第2张

完成之后就可以在zabbix里面添加items了

2、第二种方法,

第二种是使用iotop命令来获取数据

#!/bin/bash
#Date: 2016/11/11
#Author:zhangjie
disk_read(){
  NUM=`/usr/bin/sudo iotop -b -n 3 -d 1| grep "Total DISK READ" | grep -v grep | awk  -F "|" '{print $1}' | awk -F ":" '{print $2}' |  tail -n1 | awk -F "/" '{print $1}'`
  NUM2=`echo $NUM | awk '{print $1}'`
  UNIT=`echo $NUM | awk '{print $2}'`
  if [ $UNIT == "B" ];then
    echo $NUM2
  elif [ $UNIT == "K" ];then
    NUM3=$(echo "$NUM2 * 1024" | bc)
    echo $NUM3
  elif [ $UNIT == "M" ];then
    NUM3=$(echo "$NUM2 * 1024 * 1024" | bc)
    echo $NUM3
  elif [ $UNIT == "G" ];then
    NUM3=$(echo "$NUM2 * 1024 * 1024 * 1024" | bc)
    echo $NUM3
  fi
}
disk_write(){
  NUM=`/usr/bin/sudo iotop -b -n 3 -d 1 | grep "Total DISK WRITE :" |  grep -v grep | awk  -F "|" '{print $2}' | awk -F ":" '{print $2}' | tail -n1 | awk -F "/" '{print $1}'`
  NUM2=`echo $NUM | awk '{print $1}'`
  UNIT=`echo $NUM | awk '{print $2}'`
  if [[ $UNIT == "B" ]];then
    echo $NUM2
  elif [[ $UNIT == "K" ]];then
    NUM3=$(echo "$NUM2 * 1024" | bc)
    echo $NUM3
  elif [[ $UNIT == "M" ]];then
    NUM3=$(echo "$NUM2 * 1024 * 1024" | bc)
    echo $NUM3
  elif [[ $UNIT == "G" ]];then
    NUM3=$(echo "$NUM2 * 1024 * 1024 * 1024" | bc)
    echo $NUM3
  fi
}

main(){
    case $1 in
        disk_read)
           disk_read;
           ;;
        disk_write)
            disk_write;
            ;;
    esac
}
main $1

编写完脚本以后,我们还需要再做一件事情,修改sudoers文件

zabbix监控磁盘IO第3张

zabbix监控磁盘IO第4张把这个添加注释,去掉此功能。

完成之后就可以进行监控了。

zabbix监控磁盘IO第5张

上面是两个脚本,选择任意一个都是可以的,接下来就是按照下面的步骤添加items,可能稍有出入,需酌情修改。

3、接下来开始进行测试:在server端使用zabbix_get命令测试脚本是否正确:

[root@ELK-chaofeng zabbix_agentd.d]# zabbix_get -s 127.0.0.1 -p 10050 -k io_check['wKBps']
40.00
[root@ELK-chaofeng zabbix_agentd.d]# zabbix_get -s 127.0.0.1 -p 10050 -k IO_check['disk_write']
87.00

3、看的出来没有什么问题,那么此时我们在zabbix的监控界面进行添加。

 zabbix监控磁盘IO第6张

4、添加item

 zabbix监控磁盘IO第7张

5、填写内容即可

 zabbix监控磁盘IO第8张

填写完之后点击update”保存

6、添加graph

 zabbix监控磁盘IO第9张

还是在这个界面点击“graph”

7、添加graph

 zabbix监控磁盘IO第10张

8、填写内容

 zabbix监控磁盘IO第11张

添加成功后我们就可以查看了。

 9、最后我们看看效果(我这里以上面的第二个脚本为例)

zabbix监控磁盘IO第12张

可以看到没有什么问题。

疑难总结:之前的脚本中,出来的图像是断断续续的,感觉挺是奇怪的。感觉像是时间间隔采集数据的问题。

zabbix监控磁盘IO第13张

就是出现上面的这种情况。items里面的监控项是没有问题,显示是正常的。

 zabbix监控磁盘IO第14张

然后我换一种方式查看,发现确实read上有很长一段时间没有数据出现。感觉很不对劲。

后来在脚本中的iotop命令中,将iotop命令后面的参数修改了一下成功了:“iotop -b -n 3 -d 1” ,-d表示多长时间采集一次数据,-n表示采集数据的次数。之前我设置的是0.2秒采集一次数据,现在看来是不合适的。可能这个数值最好与zabbix界面的items里面的“update inteval”保持一致最好,都是1s。

此外,iotop命令第三次采集的数据是稍微稳定点的。所以最好采集3次以上的数据。

修改好之后,我们再次来看看效果:

zabbix监控磁盘IO第15张

 发现这个时候是正常的了。

再来看看时间间隔:

zabbix监控磁盘IO第16张

发现时间间隔也是有序的,看来就没有什么毛病了。整个监控搭建成功了。

免责声明:文章转载自《zabbix监控磁盘IO》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇java之元数据(metadata)概率图模型(PGM):贝叶斯网(Bayesian network)初探下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

AWK 技巧(取倒列,过滤行,匹配,不匹配,内置变量)

使用awk取某一行数据中的倒数第N列:$(NF-(n-1)) 比如取/etc/passwd文件中的第2列、倒数第1、倒数第2、倒数第4列(以冒号为分隔符)。($NF表示倒数第一列,$(NF-1)表示倒数第二列) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 [roo...

Bootstrap Multiselect插件使用步骤以及常见参数配置介绍

    Multiselect是基于jQuery插件的,它可以以下拉列表的形式为用户提供选择内容,能进行单选或者多选。它应用的主要步骤如下: 一,引入需要的相关js和css文件 既然是Bootstrap插件,又是基于jQuery的,很明显主要就导入这两个类型的文件 <link rel="stylesheet" href="http://t.zouka...

zabixx安装

server端部署 IP:192.168.88.42 环境检查 安装(使用yum安装) #安装zabbix源、aliyun YUM源 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo curl -o /etc/yum.repos.d...

zabbix详解(一)

zabbix简介 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让系统管理员快速定位/解决存在的各种问题。 zabbix由3部分构成,zabbixserver、可选组件zabbix proxy、可选组件zabbix agent。...

使用grep排除空行和注释行

grep的排除选项为 -v排除空行的命令是:grep -v '^$' filename排除以#注释的命令是:grep -v '^#' filename 结合起来就是,既排除空行又排除注释行的命令grep -v "^#" nova.conf | grep -v "^$"...

第142天:Size Marks下载安装和使用方法

Size Marks下载安装使用方法 一、下载安装 1、下载Size marks:链接: https://pan.baidu.com/s/1breyMf1 密码: fjsn 2、 复制 Size Marks.jsx 到Photoshop的脚本文件夹。 OS X: /Applications/[Photoshop]/Presets/Scripts/ Win...