使用zabbix监控oracle表空间的操作流程

时间:2022-02-18 04:25:27

0.概述

zabbix是一款极其强大的开源监控工具,下面我分享下zabbix如何监控表空间,跟着这个思路,监控其他项都是类似操作。

前提条件是你已经有了zabbix server和zabbix agent,且zabbix agent与oracle数据库运行在一台机器上面。

1.在agent上面准备脚本

a.定义查表空间使用率的脚本

/home/oracle/get_tablespace_usage.sh

  1. #!/bin/bash
  2. # get tablespace usage
  3. source ~/.bash_profile
  4. function check {
  5. sqlplus -S "/ as sysdba" << EOF
  6. set linesize 200 pagesize 200
  7. set feedback off heading off
  8. spool /tmp/tablespace.log
  9. select tablespace_name,round(used_percent) used_percent from dba_tablespace_usage_metrics;
  10. spool off
  11. quit
  12. EOF
  13. };
  14. check &> /dev/null
  15. errors=`grep ERROR /tmp/tablespace.log | wc -l`
  16. if [ "$errors" -gt 0 ]; then
  17. echo "" > /tmp/tablespace.log
  18. fi

chown oracle: get_tablespace_usage.sh

chmod 755 get_tablespace_usage.sh

b.定义表空间自动发现的脚本

/etc/zabbix/scripts/discovery_tablespace.sh

  1. #!/bin/bash
  2. # zabbix auto discovery oracle tablespace
  3. tablespaces=(`cat /tmp/tablespace.log | awk '{print $1}' | grep -v "^$"`)
  4. length=${#tablespaces[@]}
  5. printf "{\n"
  6. printf '\t'"\"data\":["
  7. for ((i=0;i<$length;i++))
  8. do
  9. printf "\n\t\t{"
  10. printf "\"{#TABLESPACE_NAME}\":\"${tablespaces[$i]}\"}"
  11. if [ $i -lt $[$length-1] ];then
  12. printf ","
  13. fi
  14. done
  15. printf "\n\t]\n"
  16. printf "}\n"

chmod 755/etc/zabbix/scripts/discovery_tablespace.sh

c.定义表空间监控项脚本

/etc/zabbix/scripts/tablespace_check.sh

  1. #!/bin/bash
  2. # oracle tablespace check
  3. TABLESPACE_NAME=$1
  4. grep "\b$TABLESPACE_NAME\b" /tmp/tablespace.log | awk '{print $2}'

chmod 755/etc/zabbix/scripts/tablespace_check.sh

2.将脚本a放入crontab里面

su - oracle

crontab -e

*/5 * * * * /home/oracle/get_tablespace_usage.sh

执行的结果查看/tmp/tablespace.log,第一列是表空间的名字,第二列是对应的表空间使用率

  1. EXAMPLE 2
  2. SYSAUX 3
  3. SYSTEM 5
  4. TBS01 85
  5. TEMP 0
  6. UNDOTBS1 0
  7. USERS 1

3.编辑agent参数

vi /etc/zabbix/zabbix_agentd.d/userparameter_oracle.conf
# tablespace usage
UserParameter=discovery.tablespace,/etc/zabbix/scripts/discovery_tablespace.sh
UserParameter=tablespace.check.[*],/etc/zabbix/scripts/tablespace_check.sh $1

4.在zabbix web界面中设置相关选项

a.创建模板,模板名字随便起,这里我定义了一个宏

使用zabbix监控oracle表空间的操作流程

b.创建自动发现规则

使用zabbix监控oracle表空间的操作流程

c.创建监控项原型

使用zabbix监控oracle表空间的操作流程

d.创建触发器类型

使用zabbix监控oracle表空间的操作流程

e.创建图形原型

使用zabbix监控oracle表空间的操作流程

5.测试

我将一个表空间创建表,并插入数据,使其超过80%,看其是否报警

使用zabbix监控oracle表空间的操作流程

使用zabbix监控oracle表空间的操作流程

测试通过!

到此这篇关于使用zabbix监控oracle表空间的操作流程的文章就介绍到这了,更多相关zabbix监控oracle表空间内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/ddzj01/p/10570218.html