本篇文章给大家分享的是有关Zabbix中怎么监控Oracle数据库表空间,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

Oracle表空间监控

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

修改Oracle数据库表空间监控

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

vim/home/oracle/scripts/check_tablespace.sh

脚本内容如下:

#!/bin/bash#tablespaceusagepchecksource~/.bash_profilefunctioncheck{sqlplus-S"/assysdba"<<EOFsetnumwidth20setlinesize200setpagesize200spool/tmp/ora_tablespace.txtselectaa.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)bytesfromDba_Free_Spacegroupbytablespace_name)a,(selecttablespace_name,sum(bytes)bytesfromDba_Data_Filesgroupbytablespace_name)bWhereb.tablespace_name=a.tablespace_name(+)--andb.tablespace_name='MAXIMO_DATA')aa,(selecttablespace_name,sum(casewhenmaxbytes=0thenuser_byteselsemaxbytesend)"MAXS"fromdba_data_files--wheretablespace_name='MAXIMO_DATA'groupbytablespace_nameorderbytablespace_name)bbwhereaa.tablespace_name=bb.tablespace_nameandaa.tablespace_namenotlike'%UNDO%'orderby5desc,1;spooloffsetlinesize100setpagesize100spool/tmp/ora_autex.txtselecttablespace_name,autoextensiblefromdba_data_files;spooloffquitEOF};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#zabbixdiscoveryoracletablespacetable_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++))doprintf"\n\t\t{"printf"\"{#TABLESPACE_NAME}\":\"${table_spaces[$i]}\"}"if[$i-lt$[$length-1]];thenprintf","fidoneprintf"\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#oracletablespacecheckCEHCK_TYPE=$1TABLESPACE_NAME=$2functionusagepre{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;thenecho1elseecho0fi}case$CEHCK_TYPEinpre)usagepre;;fre)available;;check)check;;*)echo-e"Usage:$0[pre|fre|check][TABLESPACE_NAME]"esac

Agent参数配置:

#cat/etc/zabbix/zabbix_agentd.d/oracle_tablespace.confUserParameter=discovery.oracle.tablespace,/etc/zabbix/scripts/discovery_oracle_tablespace.shUserParameter=tablespace.check[*],/etc/zabbix/scripts/tablespace_check.sh$1$2重启zabbix-agent

主机添加模板


添加自动发现模板

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

表空间监控的数据

监控指标图形展示:

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

邮件通知表空间告警

以上就是Zabbix中怎么监控Oracle数据库表空间,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。