共計 3482 個字符,預計需要花費 9 分鐘才能閱讀完成。
本篇文章給大家分享的是有關 Zabbix 中怎么監控 Oracle 數據庫表空間,丸趣 TV 小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著丸趣 TV 小編一起來看看吧。
Oracle 表空間監控
核心數據庫 10.100.0.20 和 21 表空間已經修改完成,可以正常監控使用率和大小,并郵件告警通知。
修改 Oracle 數據庫表空間監控
創建表空間信息收集腳本:
vim /home/oracle/scripts/check_tablespace.sh
腳本內容如下:
#!/bin/bash # tablespace usagep check source ~/.bash_profile function check { sqlplus -S / as sysdba EOF set numwidth 20 set linesize 200 set pagesize 200 spool /tmp/ora_tablespace.txt select aa.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 (Select b.Tablespace_Name, (b.Bytes - Nvl(a.Bytes, 0)) USD From (select tablespace_name, sum(bytes) bytes from Dba_Free_Space group by tablespace_name) a, (select tablespace_name, sum(bytes) bytes from Dba_Data_Files group by tablespace_name) b Where b.tablespace_name = a.tablespace_name(+) -- and b.tablespace_name= MAXIMO_DATA ) aa, (select tablespace_name, sum(case when maxbytes = 0 then user_bytes else maxbytes end) MAXS from dba_data_files -- where tablespace_name= MAXIMO_DATA group by tablespace_name order by tablespace_name) bb where aa.tablespace_name = bb.tablespace_name and aa.tablespace_name not like %UNDO% order by 5 desc, 1; spool off set linesize 100 set pagesize 100 spool /tmp/ora_autex.txt select tablespace_name,autoextensible from dba_data_files; spool off quit EOF };check /dev/null
賦予執行權限
chmod +x /home/oracle/scripts/check_tablespace.sh
配置計劃任務 (oracle 用戶)
*/5 * * * * /home/oracle/scripts/check_tablespace.sh
手動執行腳本并查看結果
表空間腳本執行結果
自動發現腳本內容如下:
# cat discovery_oracle_tablespace.sh #!/bin/bash #zabbix discovery oracle tablespace 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 } ] }
監控項腳本內容如下:
# cat tablespace_check.sh #!/bin/bash # oracle tablespace check CEHCK_TYPE=$1 TABLESPACE_NAME=$2 function usagepre { 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} } function available { 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} } function check { if grep \b$TABLESPACE_NAME\b /tmp/ora_autex.txt | awk {print $2} | uniq | grep YES /dev/null;then echo 1 else echo 0 fi } case $CEHCK_TYPE in 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 表空間告警郵件截圖:
郵件通知表空間告警
以上就是 Zabbix 中怎么監控 Oracle 數據庫表空間,丸趣 TV 小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注丸趣 TV 行業資訊頻道。
正文完