Zabbix监控Oracle数据库表空间并配置邮件告警图文教程

时间:2021-05-02

Oracle表空间监控

核心数据库10.100.0.20和21表空间已经修改完成,可以正常监控使用率和大小,并邮件告警通知。

修改Oracle数据库表空间监控

创建表空间信息收集脚本:

vim/home/oracle/scripts/check_tablespace.sh

脚本内容如下:

#!/bin/bash

#tablespaceusagepcheck

source~/.bash_profile

functioncheck{

sqlplus-S"/assysdba"<<EOF

setnumwidth20

setlinesize200

setpagesize200

spool/tmp/ora_tablespace.txt

selectaa.tablespace_name,

round(bb.maxs,2)"MAX(G)",

round(aa.usd,2)"USED(G)",

round((bb.maxs-aa.usd),2)"FREE(G)",

round(aa.usd/bb.maxs*100,2)"USED%"

from(Selectb.Tablespace_Name,(b.Bytes-Nvl(a.Bytes,0))"USD"

From(selecttablespace_name,sum(bytes)bytes

fromDba_Free_Space

groupbytablespace_name)a,

(selecttablespace_name,sum(bytes)bytes

fromDba_Data_Files

groupbytablespace_name)b

Whereb.tablespace_name=a.tablespace_name(+)

--andb.tablespace_name='MAXIMO_DATA'

)aa,

(selecttablespace_name,

sum(case

whenmaxbytes=0then

user_bytes

else

maxbytes

end)"MAXS"

fromdba_data_files

--wheretablespace_name='MAXIMO_DATA'

groupbytablespace_name

orderbytablespace_name)bb

whereaa.tablespace_name=bb.tablespace_nameandaa.tablespace_namenotlike'%UNDO%'

orderby5desc,1;

spooloff

setlinesize100

setpagesize100

spool/tmp/ora_autex.txt

selecttablespace_name,autoextensiblefromdba_data_files;

spooloff

quit

EOF

};check&>/dev/null

赋予执行权限

chmod+x/home/oracle/scripts/check_tablespace.sh

配置计划任务(oracle用户)

*/5****/home/oracle/scripts/check_tablespace.sh

手动执行脚本并查看结果

表空间脚本执行结果

自动发现脚本内容如下:

#catdiscovery_oracle_tablespace.sh

#!/bin/bash

#zabbixdiscoveryoracletablespace

table_spaces=(`cat/tmp/ora_tablespace.txt|sed-e"1,3d"-e"/^$/d"-e"/selected/d"|awk'{print$1}'`)

length=${#table_spaces[@]}

printf"{\n"

printf'\t'"\"data\":["

for((i=0;i<$length;i++))

do

printf"\n\t\t{"

printf"\"{#TABLESPACE_NAME}\":\"${table_spaces[$i]}\"}"

if[$i-lt$[$length-1]];then

printf","

fi

done

printf"\n\t]\n"

printf"}\n"

执行结果

#./discovery_oracle_tablespace.sh

{

"data":[

{"{#TABLESPACE_NAME}":"EMA"},

{"{#TABLESPACE_NAME}":"SYSAUX"},

{"{#TABLESPACE_NAME}":"MHWEB"},

{"{#TABLESPACE_NAME}":"SYSTEM"},

{"{#TABLESPACE_NAME}":"OGG"},

{"{#TABLESPACE_NAME}":"USERS"},

{"{#TABLESPACE_NAME}":"QDPTTBS"},

{"{#TABLESPACE_NAME}":"UYUN"},

{"{#TABLESPACE_NAME}":"LINKSCAPEH5DB"},

{"{#TABLESPACE_NAME}":"WX_HUANGHE_TBS"}

]

}

监控项脚本内容如下:

#cattablespace_check.sh

#!/bin/bash

#oracletablespacecheck

CEHCK_TYPE=$1

TABLESPACE_NAME=$2

functionusagepre{

grep"\b$TABLESPACE_NAME\b"/tmp/ora_tablespace.txt|awk'{printf"%.f\n",$5}'

#grep"\b$TABLESPACE_NAME\b"/tmp/ora_tablespace.txt|awk'{printf"%.f\n",$3/$2*100}'

}

functionavailable{

grep"\b$TABLESPACE_NAME\b"/tmp/ora_tablespace.txt|awk'{printf$4}'

#grep"\b$TABLESPACE_NAME\b"/tmp/ora_tablespace.txt|awk'{printf($2-$3)*1024*1024}'

}

functioncheck{

ifgrep"\b$TABLESPACE_NAME\b"/tmp/ora_autex.txt|awk'{print$2}'|uniq|grep"YES"&>/dev/null;then

echo1

else

echo0

fi

}

case$CEHCK_TYPEin

pre)

usagepre;;

fre)

available;;

check)

check;;

*)

echo-e"Usage:$0[pre|fre|check][TABLESPACE_NAME]"

esac

Agent参数配置:

#cat/etc/zabbix/zabbix_agentd.d/oracle_tablespace.conf

UserParameter=discovery.oracle.tablespace,/etc/zabbix/scripts/discovery_oracle_tablespace.sh

UserParameter=tablespace.check[*],/etc/zabbix/scripts/tablespace_check.sh$1$2

重启zabbix-agent

主机添加模板

添加自动发现模板

等待一会后查看监控结果:

表空间监控的数据

监控指标图形展示:

这个的告警我就不去模拟了,因为都是生产环境的,下图为4月份的TEMP表空间告警邮件截图:

邮件通知表空间告警

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章