zabbix部署本文就不讲解了,有需要的请转至
https://blog.****.net/weixin_41492695/article/details/104839637
下面我们开始自定义脚本监控linux设备的I/O情况。
1.首先进入linux系统命令行
创建自动发现脚本
cat /etc/zabbix//scripts/Disk-discovery.sh
#!/bin/bash
disk_array=(`grep -E "(vd[a-z]$|sd[a-z]$)" /proc/partitions | awk '{print $4}'`)
length=${#disk_array[@]}
printf "{\n"
printf '\t'"\"data\":["
for ((i=0;i<$length;i++))
do
printf '\n\t\t{'
printf "\"{#DISK_NAME}\":\"${disk_array[$i]}\"}"
if [ $i -lt $[$length-1] ];then
printf ','
fi
done
printf "\n\t]\n"
printf "}\n"
创建磁盘I/O监控脚本
cat /etc/zabbix/scripts/Disk-io-stat.sh
#!/bin/bash
Device=$1
DISK=$2
case $DISK in
rrqm)
iostat -dxk 1 2|grep "\b$Device\b" |tail -1| awk '{print $2}'
;;
wrqm)
iostat -dxk 1 2|grep "\b$Device\b" |tail -1| awk '{print $3}'
;;
rs)
iostat -dxk 1 2|grep "\b$Device\b" |tail -1|awk '{print $4}'
;;
ws)
iostat -dxk 1 2|grep "\b$Device\b" |tail -1|awk '{print $5}'
;;
rKB)
iostat -dxk 1 2|grep "\b$Device\b" |tail -1|awk '{print $6}'
;;
wKB)
iostat -dxk 1 2|grep "\b$Device\b" |tail -1|awk '{print $7}'
;;
avgrq-sz)
iostat -dxk 1 2|grep "\b$Device\b" |tail -1|awk '{print $8}'
;;
avgqu-sz)
iostat -dxk 1 2|grep "\b$Device\b" |tail -1|awk '{print $9}'
;;
await)
iostat -dxk 1 2|grep "\b$Device\b" |tail -1|awk '{print $10}'
;;
svctm)
iostat -dxk 1 2|grep "\b$Device\b" |tail -1|awk '{print $13}'
;;
util)
iostat -dxk 1 2|grep "\b$Device\b" |tail -1|awk '{print $14}'
;;
*)
echo -e "\e[033mUsage: sh $0 [rrqm|wrqm|rs|ws|rKB|wKB|avgqu-sz|avgrq-sz|await|svctm|util]\e[0m"
esac
2.修改agent配置文件
vim /etc/zabbix/zabbix_agentd.conf
EnableRemoteCommands=1 #开启远程命令
Server=192.168.1.189 #zabbix server的ip
ServerActive=192.168.1.189 #zabbix server的ip
Hostname=agent-189 #主机名,需与zabbix server上的配置名一致
Include=/etc/zabbix/zabbix_agentd.d/*.conf #可执行该目录下的conf文件
UnsafeUserParameters=1 #允许自定义key
3.创建conf文件,执行1、2中的脚本
cat /etc/zabbix/zabbix_agentd.d/zabbix-disk-io-stats.conf
UserParameter=disk.discovery,/etc/zabbix/scripts/Disk-discovery.sh
UserParameter=disk.io[*],/etc/zabbix/scripts/Disk-io-stat.sh $1 $2
上面步骤都配置好后需重启agent生效,systemctl restart zabbix-agent.service
可在zabbix server端执行命令检查上面配置是否正确
自动发现key:zabbix_get -s 192.168.1.189 -k disk.discovery
磁盘I/O监控key:zabbix_get -s 192.168.1.189 -k disk.io[sda,util]
获取到上面的值,说明前面步骤都没问题,下面还是zabbix server端web页面配置
4.进入Configuration-Templates,先创建模板,点击Create template
添加applications
5.创建discovery
点击discovery
点击Create discovery rule
6.创建监控原型
{#DISK_NAME} I/O avgqu-sz 平均等待处理的IO请求队列长度 disk.io[{#DISK_NAME},avgqu-sz] {#DISK_NAME} I/O avgrq-sz 平均每次IO操作的数据量 disk.io[{#DISK_NAME},avgrq-sz] {#DISK_NAME} I/O await 平均每次IO请求等待时间 disk.io[{#DISK_NAME},await] {#DISK_NAME} I/O r/s 每秒完成的读次数 disk.io[{#DISK_NAME},rs] |
7.创建图像原型
到这里就配置结束了,等几分钟后去monitoring-graphs查看图像监控