523rwfe 发表于 2016-2-16 08:40:49

zabbix监控数据库表空间大小

1.通过脚本生成日志文件
2.添加自定义脚本
oracle_discovery.sh

通过该脚本取出表空间名,并进行JSON格式化输出(因为zabbix的自动发现功能获取的数据类型是JSON格式的)

#!/bin/bash
TABLESPACE=`cat /home/patrol/tablespace.log |awk '{print$2}'|awk 'NR>3{print}'`
COUNT=`echo "$TABLESPACE" |wc -l`
INDEX=0
echo '{"data":['
echo "$TABLESPACE" | while read LINE; do
echo -n '{"{#TABLENAME}":"'$LINE'"}'
INDEX=`expr $INDEX + 1`
if [ $INDEX -lt $COUNT ]; then
    echo ','
fi
done

oracle_check.sh
通过该脚本获取表空间大小,已使用表空间大小及表空间使用率

#!/bin/bash
EQ_DATA="$2"
ZBX_REQ_DATA_TAB="$1"
SOURCE_DATA=/home/patrol/tablespace.log
case $2 in
maxmb)      grep -E "$ZBX_REQ_DATA_TAB" $SOURCE_DATA |awk '{print $5*1024*1024}';;
used)   grep -E "$ZBX_REQ_DATA_TAB" $SOURCE_DATA |awk '{print $6*1024*1024}';;
autopercent)grep -E "$ZBX_REQ_DATA_TAB" $SOURCE_DATA |awk '{print $7}';;
*) echo $ERROR_WRONG_PARAM; exit 1;;
esac
exit 0

3.脚本赋权

4.添加自定义监控项

# more oracle.conf
UserParameter=ora.tab.discovery,/etc/zabbix/scripts/oracle_discovery.sh
UserParameter=tablespace[*],/etc/zabbix/scripts/oracle_check.sh $1 $2

5.重启agent


/etc/init.d/zabbix-agent restart
6.添加发现规则


7.添加监控项


8.配置后显示如下数据



页: [1]
查看完整版本: zabbix监控数据库表空间大小