当前位置:   article > 正文

zabbix之监控磁盘读写速度_disk write rate zabbix

disk write rate zabbix

Zabbix作为强大的服务器监控平台,本次利用它来检测服务器中各个硬盘的读写速度,以便能在硬盘性能下降能够即使更换,不影响工作效率。

1、dd命令使用

利用Linux自带的dd命令来测试硬盘的读写速度,关于dd命令的详解可网上查找,很多资料,下面给出dd测试的用法。

(1)两个特殊的设备

/dev/null:回收站、无底洞

/dev/zero:产生字符
  • 1
  • 2
  • 3

(2)硬盘读写速度检测

sudo dd if=/dev/sdb1 of=/ssd1/test.iso bs=1024k count=500 conv=fdatasync iflag=direct (同时读写速度)
sudo dd if=/dev/zero of=/ssd1/test.iso bs=1024k count=500 conv=fdatasync (写速度)
sudo dd if=/dev/sdb1 of=/dev/null bs=8k iflag=direct (读速度)
  • 1
  • 2
  • 3

if=/dev/zero:用来设置dd命令读取的输入文件名。
of=/ssd1/test.iso:dd命令写入的文件名称(写入ssd1,则测量ssd1的写入速度)。
bs=1024k:设置dd命令读取的块的大小。例子中为1024k
count=500 :dd命令读取的块的个数。
本次用的是同时读写速度,足以反映硬盘性能。
在这里插入图片描述

2、编写硬盘检测脚本zb_disk_discovery

要批量测试服务器的所有硬盘,则必须自动检测服务器中有哪些硬盘,脚本用shell编写,命名为zb_disk_discovery

#!/bin/sh

disks=$(ls -d /disk* /ssd* /hdd* /home 2>/dev/null)
for dsk in ${disks}
do
    size=$(df ${dsk} | grep -v "Filesystem" | awk '{print $2}')
    if [ $size -gt 134217728 ];then
        new_disk2="${dsk} "${new_disk2}
    fi
done

disks=${new_disk2}

if [[ $* =~ "--json" ]];then
echo ${disks} | awk 'BEGIN {printf("{\n\t\"data\":[\n");}   END{for(i=1; i<NF; i++) printf("\t\t{ \"{#DISKNAME}\":\"%s\"},\n", $i); printf("\t\t{ \"{#DISKNAME}\":\"%s\"}\n", $NF); printf("\t]\n}\n");}'
elif [[ $* =~ "-n" ]];then
echo ${disks} | wc -w
else
    echo ${disks}
fi
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

将脚本放在PATH中,执行结果如下:
在这里插入图片描述

3、编写自动测试硬盘速度的脚本–zb_disk_iotest

发现了硬盘后,再编写一个自动测试硬盘读写速度的脚本,用shell编写,命名为zb_disk_iotest

#!/bin/bash

DISK="$1"
DISK_MOUNT=""
DISK_SPEED=""
DISK_SPEED_UNIT=""
DISK_AVAIL=""
OUTPUT_FILE="/tmp/${DISK}_iotest"

if [ ! -d $DISK ] || [ -z $DISK ] ; then
    echo "the disk isn't exist !"
    exit 1
fi

DISK_AVAIL="$(df  $DISK | grep -v "Filesystem" | awk '{print $4}')"
DISK_AVAIL="$(expr $DISK_AVAIL / 1024 / 1024)"

if [ $DISK_AVAIL -lt 1 ]; then
     echo "disk is full!" 
    exit 1
fi

DISK_MOUNT="$(df $DISK | grep -v 'Filesystem' | cut -d ' ' -f 1)"
sudo dd if=$DISK_MOUNT of=$DISK/test.iso bs=1024k count=500 conv=fdatasync iflag=direct > /dev/null 2> $OUTPUT_FILE
DISK_SPEED="$(cat $OUTPUT_FILE | tail -n 1 | cut -d ' ' -f 8)"
DISK_SPEED_UNIT="$(cat $OUTPUT_FILE | tail -n 1 | cut -d ' ' -f 9)"

if [[ $DISK_SPEED_UNIT = 'GB/s' ]]; then
    DISK_SPEED="$(expr $DISK_SPEED \* 1024)"
elif [[ $DISK_SPEED_UNIT = 'kB/s' ]] ; then
    DISK_SPEED="$(expr $DISK_SPEED / 1024)"
fi

sudo rm $OUTPUT_FILE -rf
sudo rm /$DISK/test.iso -rf
echo $DISK_SPEED
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

执行结果如下,可看出ssd1硬盘的读写速度为185MB/s
在这里插入图片描述

4、Zabbix配置

前提是zabbix已安装好哦~

(1)配置文件一般放在/etc/zabbix/zabbix_agentd.d/下:编辑/etc/zabbix/zabbix_agentd.d/disk_manager.conf:

UserParameter=cvt.disk.discovery,zb_disk_discovery --json
UserParameter=cvt.disk.info.iospeed[*],zb_disk_iotest $1
  • 1
  • 2

(2)配置Zabbix等待时间

由于硬盘读写速度检测与时间挂钩,而Zabbix默认响应时间为3s,超过3s的话,会默认读取失败,因此需要将Zabbix等待时间修改为最长–30s。普通服务器和zabbix服务器都需要修改!!!
vim /etc/zabbix/zabbix_agentd.conf (此为普通服务器的zabbix服务)

### Option: Timeout
#     Spend no more than Timeout seconds on processing
#
# Mandatory: no
# Range: 1-30
# Default:
Timeout=30
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

sudo vim /etc/zabbix/zabbix_server.conf (此为Zabbix服务器,具体看你安装在哪)

#
# Mandatory: no
# Range: 1-30
# Default:
# Timeout=3
Timeout=30
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

(3)为Zabbix添加sudo权限

由于脚本设计sudo(管理员权限),因此需要为Zabbix服务器上的Zabbix用户配置管理员权限:通过配置/etc/sudoers实现。
sudo vim /etc/sudoers

#includedir /etc/sudoers.d
zabbix ALL=NOPASSWD: ALL
  • 1
  • 2

(4)重启Zabbix服务

sudo service zabbix-agent restart
  • 1

(5)测试
在这里插入图片描述
zabbix_get -s 172.17.84.247 -p 10050 -k "cvt.disk.info.iospeed[/ssd1]"
在这里插入图片描述
可看到结果正常,到此Zabbix配置完毕,剩下的就是去Zabbix网页添加监控项了。

5、添加Zabbix监控项

在此给出配置截图,详情自己了解:

(1)配置zb_disk_discovery
在这里插入图片描述
(2)配置zb_disk_iotest
在这里插入图片描述

6、结果展示

在这里插入图片描述
在这里插入图片描述
成功!!

原文地址:https://blog.csdn.net/PCaiyue/article/details/80459796

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/161048
推荐阅读
相关标签
  

闽ICP备14008679号