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表空间告警邮件截图:
邮件通知表空间告警
相关文章
标签:Oracle