分布式监控系统Zabbix4.2添加自动发现磁盘IO(实操)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分布式监控系统Zabbix4.2添加自动发现磁盘IO(实操)相关的知识,希望对你有一定的参考价值。
前言:
zabbix并没有给我们提供这么一个模板来完成在Linux中磁盘IO的监控,所以我们需要自己来创建一个,在此还是在Linux OS中添加。
由于一台服务器中磁盘众多,如果只一两台可以手动添加,但服务集群达到几十那就非常麻烦,因此需要利用 自动发现 这个功能,自动发现后自动添加对服务器磁盘的监控,而且添加磁盘后也会自动添加到监控,实现自动化运维的效果,所以在这里也演示一次自动发现的配置。
经测试无法自动发现多个磁盘,只能手动把{#DISK_NAME} 改成要监控的磁盘 (例如sda、sdb,dm-*、bcache0等 虚看自己服务器配置信息)
如图,我需要监控以上磁盘的三个重要指标
部署详细步骤:
一、在被监控设备部署如下:
1、在被监控设备上部署自动发现的脚本disk.sh,内容如下
#!/bin/bash
diskarray=(`iostat -d -x 1 1|awk ‘{print $1}‘|sort|uniq 2>/dev/null`)
length=${#diskarray[@]}
printf "{
"
printf ‘ ‘""data":["
for ((i=0;i<$length;i++))
do
printf ‘
{‘
printf ""{#DISK_NAME}":"${diskarray[$i]}"}"
if [ $i -lt $[$length-1] ];then
printf ‘,‘
fi
done
printf "
]
"
printf "}
"
在设备上测试脚本执行后的效果:
{
"data":[
{"{#DISK_NAME}":"Device:"},
{"{#DISK_NAME}":"dm-0"},
{"{#DISK_NAME}":"dm-1"},
{"{#DISK_NAME}":"dm-2"},
{"{#DISK_NAME}":"dm-3"},
{"{#DISK_NAME}":"Linux"},
{"{#DISK_NAME}":"sda"},
{"{#DISK_NAME}":"sdb"},
{"{#DISK_NAME}":"sdc"}
]
}
我这里简单粗暴过滤出来了执行iostat -d -x 1 1命令后输出的第一行,可能部分不是磁盘名称, 不过没有关系,在后续zabbix页面会进行过滤的
2、脚本加权限
chmod 755 /opt/aspire/product/zabbix/bin/disk.sh
chown zabbix:zabbix /opt/aspire/product/zabbix/bin/disk.sh
3、在zabbix_agentd.conf中加入自定义监控项
UserParameter=disk.vfs.dev.read.s[*],iostat -d -x 1 1 | egrep $1 | head -1 | awk ‘{print $$4}‘
UserParameter=disk.vfs.dev.write.s[*], iostat -d -x 1 1 | egrep $1 | head -1 | awk ‘{print $$5}‘
UserParameter=disk.vfs.dev.untl.s[*],iostat -d -x 1 1 | egrep $1 | head -1 | awk ‘{print $$14}‘
UserParameter=disk.discovery,/opt/aspire/product/zabbix/bin/disk.sh
4、重启zabbix_agent进程
二、在zabbix页面操作如下:
1、在zabbix页面过滤你需要监控的磁盘名称,服务器中部分磁盘监控意义不大 ,全量监控影响服务器性能,我这里是过滤出名称以sd、dm、bc开头的磁盘。
2、打开Linux模板,添加自动发现规则:
这里定义的键值需要与之前写入配置文件自动探索脚本key值一致。
关联配置正则表达式
3、配置监控项原型
key值与上面写进配置文件的保持一致
三、检验结果:
以上是关于分布式监控系统Zabbix4.2添加自动发现磁盘IO(实操)的主要内容,如果未能解决你的问题,请参考以下文章