第1章 例:检查文件系统挂载状态
1.1 自动发现文件系统名称脚本
vi Linux_mountfilename_discovery.sh
portarray=(`mount |grep "^/" |grep -E "ext3|reiserfs|ext4|xfs" |awk '{print $3}'`)
#portarray=(`netstat -tnlp|egrep -i "$1"|awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort|uniq`)
length=${#portarray[@]}
printf "{ "
printf ' '""data":["
for ((i=0;i<$length;i++))
do
printf ' {'
printf ""{#FILENAME}":"${portarray[$i]}"}"
if [ $i -lt $[$length-1] ];then
printf ','
fi
done
printf " ] "
printf "} "
1.1.1 执行结果:
1.2 检查挂载状态脚本
vim Linux_mountfilename_status.sh
filename=$1
#判断是否为空
if [ "$1" == "" ]; then
echo "1"
else
#判断是否执行命令成功
null1=`df $1 |sed -n 2p |awk '{print $NF}' /dev/null 2>&1;echo $?`
if [ $null1 -eq 0 ]; then
#判断挂载的文件系统是否异常
mount1=`echo $1`
df1=`df $1 |sed -n 2p |awk '{print $NF}'`
if [ $mount1 = $df1 ]; then
echo "0"
else
echo "2"
fi
else
echo "1"
fi
fi
1.2.1 执行结果:
1.3 配置agent子配置文件
vim Linux_mount.conf
UserParameter=linux.mountfilename.discovery,/etc/zabbix/scripts/Linux_mountfilename_discovery.sh
UserParameter=linux.mountfilename.status[*],/etc/zabbix/scripts/Linux_mountfilename_status.sh $1
1.4 重启agent服务
略
1.5 配置自动发现规则
1.6 创建监控项原型
1.7 创建触发器
1.8 注意事项:
- 键值:linux.mountfilename.status[{#FILENAME}]。{#FILENAME}的调用
- UserParameter=键值[*](脚本参数的调用)