zoukankan      html  css  js  c++  java
  • 磁盘读写监控

    磁盘自动发现

    #!/bin/bash
    if [ -z $1 ] # 如果位参1是空
    then
    diskarray=(`cat /proc/diskstats|awk '{print $3}'|grep -E '^[a-z]+$'|sort|uniq 2>/dev/null`)
    length=${#diskarray[@]}
    printf "{
    "
    printf  '	'""data":["
    for ((i=0;i<$length;i++))
    do
            printf '
    		{'
            printf ""{#DISK}":"${diskarray[$i]}"}"
            if [ $i -lt $[$length-1] ];then
                    printf ','
            fi
    done
    printf  "
    	]
    "
    printf "}
    "
    else # 有位参进来进行磁盘io使用率的监测
    iostat -dxk $1 1 3 | grep $1 | tail -n 1 | awk '{ print $NF }'
    fi
    

    返回磁盘io使用率v

    #!/bin/bash
    if [ -z $1 ]
    then
        RTN='['
        DISK=`cat /proc/diskstats |grep -E "sd[a-z]|xvd[a-z]|vd[a-z]"|awk '{print $3}'|sort|uniq  2>/dev/null`
        for d in $DISK
        do
            RTN=`echo $RTN'{"{#DISK}":"'$d'"},'`
        done
        RTN=`echo ${RTN%*,}']'`
        echo '{"data":'$RTN'}'
    else
    Device=$1
    DISK=$2
    case $DISK in
        rrqm)
        	iostat -dxkt 1 2|grep "$Device"|tail -1|awk '{print $2}'
        	;;
        wrqm)
        	iostat -dxkt 1 2|grep "$Device"|tail -1|awk '{print $3}'
        	;;
        rps)
        	iostat -dxkt 1 2|grep "$Device"|tail -1|awk '{print $4}'
        	;;
        wps)
        	iostat -dxkt 1 2|grep "$Device" |tail -1|awk '{print $5}'
        	;;
        rKBps)
        	iostat -dxkt 1 2|grep "$Device" |tail -1|awk '{print $6}'
        	;;
        wKBps)
        	iostat -dxkt 1 2|grep "$Device" |tail -1|awk '{print $7}'
        	;;
        avgrq-sz)
        	iostat -dxkt 1 2|grep "$Device" |tail -1|awk '{print $8}'
        	;;
        avgqu-sz)
        	iostat -dxkt 1 2|grep "$Device" |tail -1|awk '{print $9}'
        	;;
        await)
        	iostat -dxkt 1 2|grep "$Device" |tail -1|awk '{print $10}'
        	;;
        svctm)
        	iostat -dxkt 1 2|grep "$Device" |tail -1|awk '{print $11}'
        	;;
        util)
        	iostat -dxkt |grep "$Device" |tail -1|awk '{print $12}'
        	;;
    esac
    
    fi
    
    
    

    原生的zabbix对于磁盘io监控的支持

    对返回的磁盘名进行监控项的创建/磁盘写入统计信息
    vfs.dev.read/write[,,]
    磁盘读取统计信息。
    整数 - 类型 为 sectors,operations, bytes
    浮点型 - 类型 为 sps, ops, bps

    device - 磁盘设备 (默认为 all)

    type - 可能的值: sectors, operations, bytes, sps, ops, bps必须指定此参数,因为各种操作系统的默认值不同。
    sps, ops, bps 表示: sectors, operations, bytes per second, respectively.

    mode - 可能的值: avg1 (1分钟平均值, 默认), avg5, avg15.
    如果要获取每秒改变值,可以在进程中添加每秒改变,倍数自定义。
    此参数仅支持的类型为: sps, ops, bps.

    不同操作系统的“类型”参数的默认值:
    AIX - operations
    FreeBSD - bps
    Linux - sps
    OpenBSD - operations
    Solaris - bytes

    示例:
    ⇒ vfs.dev.read[,operations]
    在支持的平台上的sps, ops 和 bps 曾被限制为 8 个设备(7个独立的和1个 all). 从Zabbix
    2.0.1 开始,这个限制提高到1024个设备(1023个独立的和1个all).
    如果默认为全部用于第一个参数,那么该key将返回摘要统计信息,包括所有块设备,
    如sda,sbd及其分区(sda1,sda2,sdb3 …)和基于这些块设备/分区的多个设备(MD raid)和基于
    这些设备/分区的逻辑卷(LVM)。在这种情况下,返回值只能作为相对值(动态时间)而不是绝
    对值。
    LVM的支持从Zabbix 1.8.6开始。
    直到Zabbix 1.8.6才能使用相关的设备名称(例如,sda)。 从那时起,可选的 /dev/前缀(例
    如/dev/sda)必须被使用。
    旧名称: io[*]

    比较关心的是磁盘的ops每秒的操作数,默认的mode使用的是avg1,出来的值就是1分钟之内的平均值

  • 相关阅读:
    struts token令牌机制
    javascript的splice()方法备注
    [转的哦】 Android字符串资源及其格式化Android 中的string.xml用法小结
    3.Android I/O文件写入和读取
    Android开发_读取联系人信息_读取通讯录号码
    ListView的美化涉及到的一些属性
    4.Android添加背景音乐的方法
    Android 网络协议
    ContentValues 和HashTable之间的区别
    5.Andorid绘图方法(Canvas)
  • 原文地址:https://www.cnblogs.com/cizao/p/11853903.html
Copyright © 2011-2022 走看看