Zabbix3.2 Discovery 自动化监控磁盘IO(iostat)

来源:互联网 发布:java jdk官网下载 编辑:程序博客网 时间:2024/06/17 17:03
Centos6操作系统:iostat Linux 2.6.32-431.el6.x86_64 (shvm-zbx01-3-3) 04/24/2017 _x86_64_(8 CPU)avg-cpu:  %user   %nice %system %iowait  %steal   %idle           1.82    0.00    1.19    0.02    0.00   96.97Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtnsda               1.67         2.56        22.62    5273349   46596096dm-0              0.02         0.20         0.12     404386     242752dm-1              0.67         0.01         5.33      29914   10982896dm-2              0.00         0.00         0.00       2586        968dm-3              2.05         0.14        16.42     283762   33825064dm-4              0.09         0.00         0.75       2226    1544328Centos7操作系统:iostat Linux 3.10.0-514.el7.x86_64 (zabbix-grafana) 2017年04月24日 _x86_64_(2 CPU)avg-cpu:  %user   %nice %system %iowait  %steal   %idle           2.71    0.00    1.14    9.54    0.00   86.61Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtnsda              37.16        23.57      2725.51   11716159 1354834772单独执行iostat,显示的结果为从系统开机到当前执行时刻的统计信息。以上输出中,除最上面指示系统版本、主机名和日期的一行外,另有两部分:avg-cpu: 总体cpu使用情况统计信息,对于多核cpu,这里为所有cpu的平均值;Device: 各磁盘设备的IO统计信息.iostat -dxkt Linux 2.6.32-431.el6.x86_64 (xxx-xxxx) 04/24/2017 _x86_64_(8 CPU)04/24/2017 10:11:57 AMDevice:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %utilsda               0.26     1.17    0.02    1.65     1.28    11.31    15.05     0.01    3.04   1.75   0.29dm-0              0.00     0.00    0.01    0.01     0.10     0.06    14.60     0.00   28.92   1.27   0.00dm-1              0.00     0.00    0.00    0.67     0.01     2.67     8.00     0.00    2.18   1.12   0.07dm-2              0.00     0.00    0.00    0.00     0.00     0.00     7.99     0.00   18.96   2.09   0.00dm-3              0.00     0.00    0.00    2.05     0.07     8.21     8.07     0.01    4.06   0.96   0.20dm-4              0.00     0.00    0.00    0.09     0.00     0.37     8.00     0.00    4.58   2.21   0.02rrqm/s: 每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并wrqm/s: 每秒对该设备的写请求被合并次数r/s: 每秒完成的读次数w/s: 每秒完成的写次数rkB/s: 每秒读数据量(kB为单位)wkB/s: 每秒写数据量(kB为单位)avgrq-sz:平均每次IO操作的数据量(扇区数为单位)avgqu-sz: 平均等待处理的IO请求队列长度await: 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)svctm: 平均每次IO请求的处理时间(毫秒为单位)%util: 采用周期内用于IO操作的时间比率,即IO队列非空的时间比率iostat -dxkt Linux 3.10.0-514.el7.x86_64 (zabbix-grafana) 2017年04月24日 _x86_64_(2 CPU)2017年04月24日 10时12分19秒Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %utilsda               0.02     0.32    0.59   36.57    23.56  2725.33   147.97     1.54   41.45    6.22   42.02   6.01  22.34注意:iostat在Centos7系统中多了r_await w_await disk_discovery.py #/usr/bin/python#This script is used to discovery disk on the serverimport subprocessimport jsonargs="cat /proc/diskstats |grep -E '\ssd[a-z]\s|\sxvd[a-z]\s|\svd[a-z]\s'|awk '{print $3}'|sort|uniq 2>/dev/null"t=subprocess.Popen(args,shell=True,stdout=subprocess.PIPE).communicate()[0] disks=[] for disk in t.split('\n'):    if len(disk) != 0:       disks.append({'{#DISK_NAME}':disk})print json.dumps({'data':disks},indent=4,separators=(',',':'))#/bin/shDevice=$1DISK=$2case $DISK in         rrqm)            iostat -dxkt |grep "\b$Device\b"|tail -1|awk '{print $2}'            ;;         wrqm)            iostat -dxkt |grep "\b$Device\b"|tail -1|awk '{print $3}'            ;;          rps)            iostat -dxkt |grep "\b$Device\b"|tail -1|awk '{print $4}'            ;;          wps)            iostat -dxkt |grep "\b$Device\b" |tail -1|awk '{print $5}'            ;;        rKBps)            iostat -dxkt |grep "\b$Device\b" |tail -1|awk '{print $6}'            ;;        wKBps)            iostat -dxkt |grep "\b$Device\b" |tail -1|awk '{print $7}'            ;;        avgrq-sz)            iostat -dxkt |grep "\b$Device\b" |tail -1|awk '{print $8}'            ;;        avgqu-sz)            iostat -dxkt |grep "\b$Device\b" |tail -1|awk '{print $9}'            ;;        await)            iostat -dxkt |grep "\b$Device\b" |tail -1|awk '{print $10}'            ;;        svctm)            iostat -dxkt |grep "\b$Device\b" |tail -1|awk '{print $11}'            ;;         util)            iostat -dxkt |grep "\b$Device\b" |tail -1|awk '{print $12}'            ;;esac脚本执行结果如下:sh /opt/appl/zabbix/etc/shells/disk_status.sh sda await3.04sh /opt/appl/zabbix/etc/shells/disk_status.sh sda util0.29sh /opt/appl/zabbix/etc/shells/disk_status.sh sda svctm1.75sh /opt/appl/zabbix/etc/shells/disk_status.sh sda await3.04sh /opt/appl/zabbix/etc/shells/disk_status.sh sda avgqu-sz0.01sh /opt/appl/zabbix/etc/shells/disk_status.sh sda avgrq-sz15.05sh /opt/appl/zabbix/etc/shells/disk_status.sh sda wKBps11.31sh /opt/appl/zabbix/etc/shells/disk_status.sh sda rKBps1.28sh /opt/appl/zabbix/etc/shells/disk_status.sh sda wps1.65sh /opt/appl/zabbix/etc/shells/disk_status.sh sda rps0.02sh /opt/appl/zabbix/etc/shells/disk_status.sh sda wrqm1.17sh /opt/appl/zabbix/etc/shells/disk_status.sh sda rrqm0.26
1 0