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.添加自定义监控项
[[email protected] zabbix_agentd.d16:59:23]# 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.配置后显示如下数据