Linux下监控磁盘io,zabbix监控linux磁盘IO性能

近期数据主机的磁盘IO经常峰值,影响业务的稳定运行。得到一个需求,要求通过zabbix监控agent主机的IO状态,要知道zabbix默认是没有监控zabbix模板的,那么此时需要我们定义脚本获取agent的IO性能,并在zabbix的web端定义模板来实现对数据库主机监控

下面就来介绍如何通过zabbix对agent主机的IO性能进行监控:

【Agent段配置详解】

# egrep -v "#|^$" /etc/zabbix/zabbix_agentd.conf

PidFile=/var/run/zabbix/zabbix_agentd.pid

LogFile=/var/log/zabbix/zabbix_agentd.log

LogFileSize=0Server=10.15.200.72Include=/etc/zabbix/zabbix_agentd.d/*.conf

# cat /etc/zabbix/zabbix_agentd.d/scripts/disk_discovery.sh   #编写自动发现磁盘脚本

#!/bin/bash

diskarray=(`cat /proc/diskstats |grep -E "sd[a-z]|xvd[a-z]|vd[a-z]"|awk '{print $3}'|sort|uniq 2>/dev/null`)

length=${#diskarray[@]}

printf"{"printf''""data":["

for ((i=0;i

if [ $i -lt $[$length-1] ];then

printf','fi

done

printf"]"printf"}"

# cat /etc/zabbix/zabbix_agentd.d/scripts/disk_status.sh   #获取磁盘IO数据

#/bin/sh

Device=$1DISK=$2

case $DISK inrrqm)

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

参数详解:

rrqm/s: 每秒进行 merge 的读操作数目。即 delta(rmerge)/s

wrqm/s: 每秒进行 merge 的写操作数目。即 delta(wmerge)/s

rps: 每秒完成的读 I/O 设备次数。即 delta(rio)/s

wps: 每秒完成的写 I/O 设备次数。即 delta(wio)/s

rsec/s: 每秒读扇区数。即 delta(rsect)/s

wsec/s: 每秒写扇区数。即 delta(wsect)/s

rkBps: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。(需要计算)

wkBps: 每秒写K字节数。是 wsect/s 的一半。(需要计算)

avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。delta(rsect+wsect)/delta(rio+wio)

avgqu-sz: 平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。

await: 平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)

svctm: 平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio)

%util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)

# cat /etc/zabbix/zabbix_agentd.d/disk_status.conf #将两个脚本授予执行权限,单独写在一个个配置文件中,

UserParameter=disk.discovery[*],/etc/zabbix/zabbix_agentd.d/scripts/disk_discovery.sh

UserParameter=disk.status[*],/etc/zabbix/zabbix_agentd.d/scripts/disk_status.sh $1 $2

【Zabbix-web端配置】

1、新建模板,命名为DISK-IO,加入到Templates模板组。

c26fc9f9225c5234e0e6ab59b456bad9.png

2、新建一个自动发现规则

536aa83046e898747a48f53094778a62.png

3、建立多个监控项原型

d59216abeff9de7a02caeaefe8895ac3.png

4、建立触发器类型

c8d1a8065cd85667a59866902a53d61c.png

5、建立图形原型

1228528ddf08bd7ec69a8f3b47f9e37e.png

ac1b3d830f0d544b7b9fc65f3607584d.png

568b13e8975e812d6fbdb1f400cf8035.png

b4a3a75c1894c1edbbd161722fb7d193.png

最后将定义的模板链接到某个监控主机,从图形中即可发现磁盘IO数据变化

482205f3d85062722eb036196e93a036.png

1e03b4a0a7e939faa668ebd696cfd541.png

ad1896c94eac3867cb22e0343f687ed5.png

366822cd3a4882d647fab5f8a03ad967.png

END!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值