经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Oracle » 查看文章
使用zabbix监控oracle表空间的操作流程
来源:jb51  时间:2021/6/28 17:08:13  对本文有异议

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.创建模板,模板名字随便起,这里我定义了一个宏

b.创建自动发现规则

c.创建监控项原型

d.创建触发器类型

e.创建图形原型

5.测试

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

测试通过!

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

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号