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

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.97

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               1.67         2.56        22.62    5273349   46596096
dm-0              0.02         0.20         0.12     404386     242752
dm-1              0.67         0.01         5.33      29914   10982896
dm-2              0.00         0.00         0.00       2586        968
dm-3              2.05         0.14        16.42     283762   33825064
dm-4              0.09         0.00         0.75       2226    1544328


Centos7操作系统:
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.61


Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              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 AM
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.26     1.17    0.02    1.65     1.28    11.31    15.05     0.01    3.04   1.75   0.29
dm-0              0.00     0.00    0.01    0.01     0.10     0.06    14.60     0.00   28.92   1.27   0.00
dm-1              0.00     0.00    0.00    0.67     0.01     2.67     8.00     0.00    2.18   1.12   0.07
dm-2              0.00     0.00    0.00    0.00     0.00     0.00     7.99     0.00   18.96   2.09   0.00
dm-3              0.00     0.00    0.00    2.05     0.07     8.21     8.07     0.01    4.06   0.96   0.20
dm-4              0.00     0.00    0.00    0.09     0.00     0.37     8.00     0.00    4.58   2.21   0.02

rrqm/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  %util
sda               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 server
import subprocess
import json
args="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/sh
Device=$1
DISK=$2
case $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 await
3.04
sh /opt/appl/zabbix/etc/shells/disk_status.sh sda util
0.29
sh /opt/appl/zabbix/etc/shells/disk_status.sh sda svctm
1.75
sh /opt/appl/zabbix/etc/shells/disk_status.sh sda await
3.04
sh /opt/appl/zabbix/etc/shells/disk_status.sh sda avgqu-sz
0.01
sh /opt/appl/zabbix/etc/shells/disk_status.sh sda avgrq-sz
15.05
sh /opt/appl/zabbix/etc/shells/disk_status.sh sda wKBps
11.31
sh /opt/appl/zabbix/etc/shells/disk_status.sh sda rKBps
1.28
sh /opt/appl/zabbix/etc/shells/disk_status.sh sda wps
1.65
sh /opt/appl/zabbix/etc/shells/disk_status.sh sda rps
0.02
sh /opt/appl/zabbix/etc/shells/disk_status.sh sda wrqm
1.17
sh /opt/appl/zabbix/etc/shells/disk_status.sh sda rrqm
0.26





你可能感兴趣的:(Zabbix3.2 Discovery 自动化监控磁盘IO(iostat))