使用zabbix监控oracle表空间
0.概述
zabbix是一款极其强大的开源监控工具,下面我分享下zabbix如何监控表空间,跟着这个思路,监控其他项都是类似操作。
前提条件是你已经有了zabbix server和zabbix agent,且zabbix agent与oracle数据库运行在一台机器上面。
1.在agent上面准备脚本
a.定义查表空间使用率的脚本
/home/oracle/get_tablespace_usage.sh
#!/bin/bash
# get tablespace usage
source ~/.bash_profile
function check {
sqlplus -S "/ as sysdba" << EOF
set linesize pagesize
set feedback off heading off
spool /tmp/tablespace.log
select tablespace_name,round(used_percent) used_percent from dba_tablespace_usage_metrics;
spool off
quit
EOF
};
check &> /dev/null
errors=`grep ERROR /tmp/tablespace.log | wc -l`
if [ "$errors" -gt ]; then
echo "" > /tmp/tablespace.log
fi
chown oracle: get_tablespace_usage.sh
chmod 755 get_tablespace_usage.sh
b.定义表空间自动发现的脚本
/etc/zabbix/scripts/discovery_tablespace.sh
#!/bin/bash
# zabbix auto discovery oracle tablespace
tablespaces=(`cat /tmp/tablespace.log | awk '{print $1}' | grep -v "^$"`)
length=${#tablespaces[@]}
printf "{\n"
printf '\t'"\"data\":["
for ((i=;i<$length;i++))
do
printf "\n\t\t{"
printf "\"{#TABLESPACE_NAME}\":\"${tablespaces[$i]}\"}"
if [ $i -lt $[$length-] ];then
printf ","
fi
done
printf "\n\t]\n"
printf "}\n"
chmod 755 /etc/zabbix/scripts/discovery_tablespace.sh
c.定义表空间监控项脚本
/etc/zabbix/scripts/tablespace_check.sh
#!/bin/bash
# oracle tablespace check
TABLESPACE_NAME=$1
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,第一列是表空间的名字,第二列是对应的表空间使用率
EXAMPLE
SYSAUX
SYSTEM
TBS01
TEMP
UNDOTBS1
USERS
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表空间的更多相关文章
- nagios监控oracle 表空间
oracle表空间满的危害以及处理方式见我的博客链接https://www.cnblogs.com/-abm/p/9764803.html 除此之外我们还需要对表空间实时监控,这样就可以及时了解表空间 ...
- orabbix插件监控oracle表空间问题
我们安装好orabbix插件后,查看Tablespaces监控项是发项值为none,第一反应是没监控成功,其实不然. 1.我们打开orabbix监控项参数的路径,下面为Tablespaces的sql代 ...
- Oracle表空间,用户,用户授权
一:Oracle表空间 1,Oracle表空间与SQL Server文件组对比 SQL Server的文件组(文件组包括若干MDF,NDF数据文件)对我们来说并不陌生,前段时间我在博客“怎样玩转千万级 ...
- Oracle表空间管理
oracle表空间相关常用命令小结: 1.ALTER DATABASE SET DEFAULT BIGFILE TABLESPACE; //修改表空间数据文件类型 2.ALT ...
- 【转】Oracle 表空间与数据文件
--============================== --Oracle 表空间与数据文件 --============================== /* 一.概念 表空间:是一个或 ...
- 六分钟学会创建Oracle表空间的步骤
经过长时间学习创建Oracle表空间,于是和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西. 1.先查询空闲空间 select tablespace_name,file_id,blo ...
- 修改Oracle 表空间名称 tablespace name
修改表空间名称步骤如下: 1. 使用oracle用户登录执行 $sqlplus / as sysdba 2. 执行修改表空间命令如下 SQL> alter tablespace TEST re ...
- interview:about Oracle表空间
Oracle表空间 SQL Server数据库与Oracle数据库之间最大的区别要属表空间设计.Oracle数据库开创性地提出了表空间的设计理念,这为Oracle数据库的高性能做出了不可磨灭的贡献.可 ...
- Oracle表空间详解
Oracle表空间详解 1.表空间的分类 Oracle数据库把表空间分为两类:系统表空间和非系统表空间. 1.1系统表空间指的是数据库系统创建时需要的表空间,这些表空间在数据库创建时自动创建,是每个数 ...
随机推荐
- Java 本周四、五的相关研究——Excel 的文件管理(数据库初步)
日期:2018.9.28 星期五 博客期:013 说到这里,就二话不多说了!这次研习的是与Excel表相关联的方法 1.导入jar包(需要自己下载) 2.AccountManager类的实现(关键看非 ...
- LeetCode(108):将有序数组转换为二叉搜索树
Easy! 题目描述: 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1. 示例: 给定有序数组 ...
- laravel 路由缓存
使用路由缓存之前,需要知晓路由缓存只能用于控制器路由,不能用于闭包路由,如果路由定义中包含闭包路由将无法进行路由缓存,只有将所有路由定义转化为控制器路由或资源路由后才能执行路由缓存命令: php ar ...
- 把tomcat服务器配置为windows服务的方法
转自:http://ykyfendou.iteye.com/blog/2032916 使用tomcat开发的项目,我们把项目交付给客户的时候,客户都不希望在每次开机的时候都要启动一下tomcat服务器 ...
- 没有-jackson相关依赖会抛出如下异常--------在spring官方文档有解释
<!--jackson相关依赖--><!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackso ...
- MyBatis - 3.Mapper XML映射文件
SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序): cache – 给定命名空间的缓存配置. cache-ref – 其他命名空间缓存配置的引用. resultMap – 是最复杂也是 ...
- Linux SSH & SCP命令
SSH SSH为建立在应用层和传输层基础上的安全协议 sshd服务使用SSH协议进行远程控制,或在计算机之间传送文件.而实现此功能的telnet(远程桌面) 是不安全的,使用明文传送密码 ssh ss ...
- C#获取一周的工作日显示(星期几)
代码如下: gridBandW1.Caption = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetDayName ...
- dubbo支持哪些通信协议和序列化协议
dubbo支持的通信协议 dubbo协议 dubbo://192.168.0.1:20188 默认就是走dubbo协议的,单一长连接,NIO异步通信,基于hessian作为序列化协议 适用的场景就是: ...
- 试验IFTTT同步发微博
没啥 测试下同步发微博