【Zabbix】zabora监控Oracle数据库
zabora监控Oracle数据库
它作为一个开源项目,通过shell脚本有效的监控Oracle基础指标。本文档旨在通过实战,在Zabbix 3.0版本之下,监控生产环境下的多台Oracle数据库。
建立oracle账号
CREATE USER monitor IDENTIFIED BY 'xxxxxxx' DEFAULT TABLESPACE SYSTEM TEMPORARY TABLESPACE TEMP PROFILE DEFAULT ACCOUNT UNLOCK;
GRANT CONNECT TO monitor;
GRANT RESOURCE TO monitor;
ALTER USER monitor DEFAULT ROLE ALL;
GRANT SELECT ANY TABLE TO monitor;
GRANT CREATE SESSION TO monitor;
GRANT SELECT ANY DICTIONARY TO monitor;
GRANT UNLIMITED TABLESPACE TO monitor;
GRANT SELECT ANY DICTIONARY TO monitor;
GRANT SELECT ON V_$SESSION TO monitor;
GRANT SELECT ON V_$SYSTEM_EVENT TO monitor;
GRANT SELECT ON V_$EVENT_NAME TO monitor;
GRANT SELECT ON V_$RECOVERY_FILE_DEST TO monitor;
基本原理
它的核心是通过一个zabora.sh脚本,调用zabora/sql目录下的多个sql脚本,用于获取json数据。然后在zabbix平台上调用。用于监控。
部署命令:
./zabora/deploy_zabbix.sh "${ORACLE_USER}" "${ORACLE_PASS}"
chmod 755 /etc/zabbix/scripts/agentd/zabora/zabora.sh
如上命令,可以直接部署zabora.sh脚本。效果如下:
配置了
/etc/zabbix/zabbix_agentd.d/zabora.conf。放置shell脚本,SQL脚本到
/etc/zabbix/scripts/agentd/zabora目录下。UserParameter=zabora[*],/etc/zabbix/scripts/agentd/zabora/zabora.sh -o $1 -s $2 -a $3
UserParameter=zabora.discovery[*],/etc/zabbix/scripts/agentd/zabora/zabora.sh -o $1 -s $2 -a $3 -j $4
UserParameter=zabora.version,/etc/zabbix/scripts/agentd/zabora/zabora.sh -v short
这里手工调用
zabora.sh,查看其机理。-o代表oracle的sid-s代表调用sql脚本的简称。-j是否以json串的结果输出。以下是查看Oracle表空间的信息。
[root@oradb sql]# /etc/zabbix/scripts/agentd/zabora/zabora.sh -o oradb -s tb_list -j 1
{
"data":[
{ "{#1}":"SYSTEM" },
{ "{#1}":"SYSAUX" },
{ "{#1}":"USERS" },
{ "{#1}":"OD" },
{ "{#1}":"OA" },
{ "{#1}":"FA" },
{ "{#1}":"HR" },
{ "{#1}":"IPC_HZ_DB" },
{ "{#1}":"PM" },
{ "{#1}":"DEF3DB" },
{ "{#1}":"HDOA" },
{ "{#1}":"ARP" },
{ "{#1}":"LMS_MANAGE" },
{ "{#1}":"LMS_SERVER" },
{ "{#1}":"DEVPLATFORM" },
{ "{#1}":"NEWOA" },
{ "{#1}":"PAY" },
{ "{#1}":"WHIOV_OA" },
{ "{#1}":"TBS_OA" },
{ "{#1}":"FIN" },
{ "{#1}":"EXCHANGE" },
{ "{#1}":"PLATFORM" },
{ "{#1}":"NNC_DATA02" },
{ "{#1}":"NNC_DATA03" },
{ "{#1}":"NNC_INDEX01" },
{ "{#1}":"NNC_INDEX02" },
{ "{#1}":"NNC_INDEX03" },
{ "{#1}":"PORTAL" },
{ "{#1}":"NNC_DATA01" },
{ "{#1}":"FINEDB" },
{ "{#1}":"ARP_FLASH_ARC" },
{ "{#1}":"FINEDB51" }
]
}
在server端,测试脚本的可用性.
[root@localhost ~]# zabbix_get -s 172.31.222.34 -k "zabora[oradb,db_active,1]"
1
[root@localhost ~]# zabbix_get -s 172.31.222.34 -k "zabora[oradb,tb_size,SYSTEM]"
3.43
以上说明,后台server端和agent端,脚本配置无误。现在可以配置前台,用于监控oracle的相关指标。
zabbix前台配置
步骤1,导入模板
选择template_db_oracle-2.2.xml这个模板,【配置】--》【模板】--》【导入】,模板导入成功。
模板的内容,无非就是监控项,触发器,图形等。其实可以自己建立一个监控指标,用于监控。

步骤2,添加主机到模板中。
【配置】--》【主机】。选择你要监控的Oracle主机。
【模板】,添加需要链接的模板,这里的模板名字为【Template_DB_Oracle】。
【主机】--》【宏】。用于配置{$ORACLE_SID}的参数值。效果如下:
{$ORACLE_SID} = oradb。

最终效果

【Zabbix】zabora监控Oracle数据库的更多相关文章
- Zabbix+Orabbix监控oracle数据库表空间
Orabbix 是设计用来为 zabbix 监控 Oracle 数据库的插件,它提供多层次的监控,包括可用性和服务器性能指标. 它提供了从众多 oracle 实例采集数据的有效机制,进而提供此信息的监 ...
- 利用zabbix监控oracle数据库
一.概述 zabbix是一款非常强大,同时也是应用最为广泛的开源监控软件,本文将给大家介绍如何利用zabbix监控oracle数据库. 二.环境介绍 以下是我安装的环境,实际部署时并不需要跟我的环境一 ...
- 使用Zabbix监控Oracle数据库
Orabbix介绍 监控Oracle数据库我们需要安装第三方提供的Zabbix插件,我们先测试比较有名的Orabbix,http://www.smartmarmot.com/product/orabb ...
- 搜索表字段包含某字符串的SQL和监控Oracle数据库的SQL。
1.第一个SQL 背景:需要找到SQL Server数据库中,包含某个字符串的表,输出表和包含该字符串的列. )='=' --这里填要搜索的字符串 DECLARE @sql NVARCHAR(MAX) ...
- 8个DBA最常用的监控Oracle数据库的常用shell脚本
本文介绍了8个常用的监控数据shell脚本.首先回顾了一些DBA常用的Unix命令,以及解释了如何通过Unix Cron来定时执行DBA脚本.网上也有好多类似的文章,但基本上都不能正常运行,花点时间重 ...
- Zabbix通过Orabbix监控Oracle数据库
一.背景 公司业务使用的是一直Oracle数据库,因为多次出现表空间满的时候不能及时发现,每次都是业务组的人员通知处理,这样下来DBA这边就比较被动,所以老大要求监控表空间剩余大小并且当剩余过小时能够 ...
- Spotlight监控Oracle数据库的链接创建
最近在做性能测试时,由于要挂载空间数据,开发人员直接将所有业务表都挂到了Oracle数据库中.最近做了几次测试发现响应时间和吞吐量都不是很理想,进行一番分析后怀疑可能在Oracle中出现问题,因此再网 ...
- Zabbix利用orabbix插件监控Oracle数据库
一.jdk的安装(Orabbix Server) 1.软件解压,放到固定位置 1 2 tar zxf jdk-8u51-linux-x64.tar.gz mv jdk1.8.0_51/ /usr/lo ...
- zabbix 监控 oracle 数据库
https://blog.csdn.net/dyllove98/article/details/41120853
随机推荐
- 解决root用户下都无权限操作的问题
问题现象: 有时系统设置了一种文件,无法编辑其所有权 sudo chown users:username {filename} 或者root用户下执行 chown users:username {f ...
- 使用paramiko模块进行封装,远程操作linux主机
import time import paramiko class HandleParamiko: ''' 定义一个linux处理类 ''' def __init__(self, hostname, ...
- JAVA 网络编程 - 实现 群聊 程序
在实现 这个 程序之前, 我们 需要 了解 一些 关于 Java 网络 编程 的 知识. 基本 的 网络知识: 网络模型 OSI (Open System Interconnection 开放系统互连 ...
- Docker的入门及常用命令
Docker入门及常用命令 1. 各个容器之间是相互隔离状态: 这样减少了我们软件之间的影响. 2. docker是os层虚拟化架构的一种产品体现, os层虚拟化架构出来的操作系统需要和宿主机操作系统 ...
- Java队列和定时器Timer
一: Queue详解 Queue: 基本上,一个队列就是一个先入先出(FIFO)的数据结构 Queue接口与List.Set同一级别,都是继承了Collection接口.Linked ...
- Android调用打印机
打印机其实和Android没有什么大的关系,和linux内核关联才是比较强的. 最终的结果是要在Android实现驱动打印机,但是一般调试一个新的驱动的流程是这样的:1.先在linux PC上进行测试 ...
- 为什么要学 Python? python该怎么学
很多童鞋对为什么学习Python感到迷茫,小编来跟大家说说学习Python的10个理由,希望可以帮助到大家!!! 摘要: 看完这十个理由,我决定买本python从入门到精通! 如果你定期关注现今的科技 ...
- IDEA创建maven web工程
一.新建一个maven web工程 step1 File --> New --> Project step2 按下图步骤操作 step3 填写项目信息 step4 选择本地的maven安装 ...
- arcgis api for javascript 学习(二) 发布并调用地图切片
文章将从发布切片地图到调用切片地图整个过程都展示出来. (一).切片地图的发布 1.还是前面的arcgis展示的地图 2.与发布动态地图前面的步骤是一样的 打开分享后,如图 3.一切就绪后,到达缓存的 ...
- 【转载】Gradle for Android 第三篇( 依赖管理 )
依赖管理是Gradle最闪耀的地方,最好的情景是,你仅仅只需添加一行代码在你的build文件,Gradle会自动从远程仓库为你下载相关的jar包,并且保证你能够正确使用它们.Gradle甚至可以为你做 ...