Zabbix利用orabbix插件监控Oracle数据库
一.jdk的安装(Orabbix Server)
1.软件解压,放到固定位置
|
1
2
|
tar zxf jdk-8u51-linux-x64.tar.gzmv jdk1.8.0_51/ /usr/local/ |
2.设置系统变量,编辑/etc/profile在末尾增加
|
1
2
3
|
export JAVA_HOME=/usr/local/jdk1.8.0_51exportCLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$JAVA_HOME/bin:$PATH |
3.执行一下/etc/profile使之生效
|
1
|
source /etc/profile |
二.Oracle中增加监控用户,并设置相应的用户权限,这一步在sqlplus中完成(ORACLE服务器)
|
1
2
3
4
5
6
7
8
|
su - oraclesqlplus / as sysdbaSQL>CREATE USER zabbixIDENTIFIED BY zabbix_passwordDEFAULT TABLESPACE USERSTEMPORARY TABLESPACE TEMPPROFILE DEFAULTACCOUNT UNLOCK; |
赋予zabbix用户对应权限
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
GRANT ALTER SESSION TO ZABBIX;GRANT CREATE SESSION TO ZABBIX;GRANT CONNECT TO ZABBIX;ALTER USER ZABBIX DEFAULT ROLE ALL;GRANT SELECT ON V_$INSTANCE TO ZABBIX;GRANT SELECT ON DBA_USERS TO ZABBIX;GRANT SELECT ON V_$LOG_HISTORY TO ZABBIX;GRANT SELECT ON V_$LOG TO ZABBIX;GRANT SELECT ON V_$PARAMETER TO ZABBIX;GRANT SELECT ON SYS.DBA_AUDIT_SESSION TO ZABBIX;GRANT SELECT ON V_$LOCK TO ZABBIX;GRANT SELECT ON DBA_REGISTRY TO ZABBIX;GRANT SELECT ON V_$LIBRARYCACHE TO ZABBIX;GRANT SELECT ON V_$SYSSTAT TO ZABBIX;GRANT SELECT ON V_$PARAMETER TO ZABBIX;GRANT SELECT ON V_$LATCH TO ZABBIX;GRANT SELECT ON V_$PGASTAT TO ZABBIX;GRANT SELECT ON V_$SGASTAT TO ZABBIX;GRANT SELECT ON V_$LIBRARYCACHE TO ZABBIX;GRANT SELECT ON V_$PROCESS TO ZABBIX;GRANT SELECT ON DBA_DATA_FILES TO ZABBIX;GRANT SELECT ON DBA_TEMP_FILES TO ZABBIX;GRANT SELECT ON DBA_FREE_SPACE TO ZABBIX;GRANT SELECT ON V_$SYSTEM_EVENT TO ZABBIX;GRANT SELECT ON V_$locked_object TO ZABBIX;GRANT SELECT ON dba_objects TO ZABBIX;GRANT SELECT ON dba_tablespaces TO ZABBIX;GRANT SELECT ON v_$session TO ZABBIX; |
以上有部分小写的是我对其他文章的增加部分
如果数据库是11G,还要执行如下部分:
|
1
2
3
|
exec dbms_network_acl_admin.create_acl(acl => 'resolve.xml',description=> 'resolve acl', principal =>'ZABBIX', is_grant => true, privilege => 'resolve');exec dbms_network_acl_admin.assign_acl(acl => 'resolve.xml', host =>'*');commit; |
三.安装orabbix(Orabbix Server)
其实orabbix只需要安装在一台服务器即可,我就选择安装在Zabbix Server上,当然上面的jdk是为orabbix服务的,因为orabbix就是一个oracle客户端去查找oracle中的数据,然后传给zabbix.
|
1
2
3
4
5
6
7
8
9
10
|
mkdir /usr/local/orabbixcd /usr/local/orabbixwget orabbix http://nchc.dl.sourceforge.net/project/orabbix/orabbix-1.2.3.zipunzip orabbix-1.2.3.zipchmod +x run.shcp init.d/orabbix /etc/init.d/sed -i 's#/opt/orabbix#orabbix=/usr/local/orabbix#g' /etc/init.d/orabbixchmod +x /etc/init.d/orabbixsed -i 's#java#/usr/local/jdk1.8.0_51/bin/java#g' /usr/local/orabbix/run.sh#用以解决/usr/local/orabbix/run.sh: line 2: java: command not found这个错误 |
配置orabbix,进入/usr/local/orabbix/conf/目录
cd /usr/local/orabbix/conf
cp config.props.sample config.props
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
ZabbixServerList=ZabbixServerZabbixServer.Address=192.168.0.81ZabbixServer.Port=10051OrabbixDaemon.PidFile=./logs/orabbix.pidOrabbixDaemon.Sleep=300OrabbixDaemon.MaxThreadNumber=100DatabaseList=tpy100DatabaseList.MaxActive=10DatabaseList.MaxWait=100DatabaseList.MaxIdle=1tpy100.Url=jdbc:oracle:thin:@192.168.0.209:1521:orcltpy100.User=ZABBIXtpy100.Password=zabbixtpy100.MaxActive=10tpy100.MaxWait=100tpy100.MaxIdle=1tpy100.QueryListFile=./conf/query.props |
需要注意的是DatabaseList=CRMDB指的是被监控服务器的名称,该名称要和zabbixserver界面中的机器名称保持一致,该配置文件中后续所引用的设定都以该名称为准。
CRMDB.Url=jdbc:oracle:thin:@192.168.0.209:1521:orcl 指定的是被监控服务器的连接信息(例如采用jdbc的联接方式,服务器地址是192.168.0.209,oracle的端口是1521,orcl指的是数据库的实例)
默认按照上面的步骤就差不多了,但是你导入模板之后就会发现监控项目不全,如dbsize及dbfilesize这些类目,orabbix默认情况下未开启数据库大小,需要配置query.props
编辑 /usr/local/orabbix/conf/query.props文件
在QueryList=类目下增加dbfilesize,dbsize,如图所示

然后在该文件的末尾添加
|
1
2
3
4
5
6
7
8
|
dbfilesize.Query=select to_char(sum(bytes/1024/1024/10), 'FM99999999999999990') retvalue from dba_data_filesdbsize.Query=SELECT to_char(sum( NVL(a.bytes/1024/1024/10 - NVL(f.bytes/1024/1024/10, 0), 0)), 'FM99999999999999990') retvalue \FROM sys.dba_tablespaces d, \(select tablespace_name, sum(bytes) bytes from dba_data_files group by tablespace_name) a, \(select tablespace_name, sum(bytes) bytes from dba_free_space group by tablespace_name) f \WHERE d.tablespace_name = a.tablespace_name(+) AND d.tablespace_name = f.tablespace_name(+) \AND NOT (d.extent_management like 'LOCAL' AND d.contents like 'TEMPORARY') |
用以定义查询dbfilesize,dbsize的SQL语句
这个时候就可以启动orabbix服务了
service orabbix start
检查服务ps aux |grep orabbix|wc -l 如果等于2就说明启动那个成功了,启动成功不一定就是没问题了,这个时候需要查看日志
/usr/local/orabbix/logs/orabbix.log

从以上可以看到我很多数据是抓不到的,都是因为权限的问题找不到表,于是就需要利用query.props
/usr/local/orabbix/conf/query.props
找到对应的表,如这里找archive的表

如果没有权限的话 就需要用DBA的权限进数据库给予权限
GRANT SELECT ON v_$LOG TO ZABBIX;
即可
Zabbix利用orabbix插件监控Oracle数据库的更多相关文章
- zabbix之 orabbix模板监控oracle
一.Orabbix简介 Orabbix是设计用来为zabbix监控Oracle的数据库的插件,它提供多层次的监控,包括可用性和服务器性能的指标.它提供了从众多Oracle实例采集的有效机制,进而提供此 ...
- orabbix插件监控oracle表空间问题
我们安装好orabbix插件后,查看Tablespaces监控项是发项值为none,第一反应是没监控成功,其实不然. 1.我们打开orabbix监控项参数的路径,下面为Tablespaces的sql代 ...
- 使用Zabbix监控Oracle数据库
Orabbix介绍 监控Oracle数据库我们需要安装第三方提供的Zabbix插件,我们先测试比较有名的Orabbix,http://www.smartmarmot.com/product/orabb ...
- Zabbix+Orabbix监控oracle数据库表空间
Orabbix 是设计用来为 zabbix 监控 Oracle 数据库的插件,它提供多层次的监控,包括可用性和服务器性能指标. 它提供了从众多 oracle 实例采集数据的有效机制,进而提供此信息的监 ...
- zabbix利用orabbix监控oracle
Orabbix 是一个用来监控 Oracle 数据库实例的 Zabbix 插件.(插件安装在zabbix-server端) 下载地址:http://www.smartmarmot.com/produc ...
- 利用zabbix监控oracle数据库
一.概述 zabbix是一款非常强大,同时也是应用最为广泛的开源监控软件,本文将给大家介绍如何利用zabbix监控oracle数据库. 二.环境介绍 以下是我安装的环境,实际部署时并不需要跟我的环境一 ...
- 【Zabbix】zabora监控Oracle数据库
zabora监控Oracle数据库 它作为一个开源项目,通过shell脚本有效的监控Oracle基础指标.本文档旨在通过实战,在Zabbix 3.0版本之下,监控生产环境下的多台Oracle数据库. ...
- 转 zabbix debug and zabbix使用percona插件监控mysql
########## https://www.cnblogs.com/keithtt/p/8542987.html zabbix使用percona插件监控mysql 1.添加percona仓库. ...
- 利用Navicat Premium连接Oracle数据库
利用Navicat Premium连接Oracle数据库 Navicat premium是一款数据库管理工具,支持多种数据库,也非常轻量: 安装包准备:Navicat Premium_11.1.8简体 ...
随机推荐
- CSVN备份初体验
备份方法挺多的,目前我知道有四种 其一: 首先复制旧csvn服务器上repositories下的版本库文件夹到新csvn服务器repositories文件夹下面(做以下修改时最好把csvn服务停掉) ...
- zabbix监控第一台主机系统
注意zabbix客户端和zabbix服务端版本要一致,否则很容易出问题 实验环境,在第一台centos7(ip为192.168.245.128,以下简称主机1)上安装zabbix服务器端,在第二台ce ...
- Hasura GraphQL 内部表结构
Hasura 使用pg 数据库存储引擎的元数据信息,在hdb_catalog schema 下面,是在初始化的时候生成的 对于表的管理.权限的信息存储都在这个schema下 hdb_table 这个表 ...
- C libraries in Linux
Copy from a book. There are several C libraries to choose from. The main options are as follows: gli ...
- Unity 原厂免费资源学习
- Lua 程序设计 (Roberto,Ierusalimschy 著)
1 开始 2 类型与值 3 表达式 4 语句 5 函数 6 深入函数 7 迭代器与泛型for 8 编译,执行与错误 9 协同程序(coroutine) 10 完整的示例 11 数据结构 12 数据文件 ...
- 深入详解美团点评CAT跨语言服务监控(三)CAT客户端原理
cat客户端部分核心类 message目录下面有消息相关的部分接口 internal目录包含主要的CAT客户端内部实现类: io目录包含建立服务端连接.重连.消息队列监听.上报等io实现类: spi目 ...
- [转]分布式系统唯一ID生成方案汇总
系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结.生成ID的方法有很多,适应不同的场景.需求以及性能要求.所以有些比较复杂的系统会有多个ID生成的策略.下面就介绍一些常见 ...
- mysql 的 docker 镜像使用
mysql 的 docker 镜像使用: 下载镜像: docker pull mysql:8.0.14 运行容器: docker run -it -e MYSQL_ROOT_PASSWORD=mypw ...
- python3 TypeError: Unicode-objects must be encoded before hashing
python3下,利用hash值对字符串进行md5加密时报错:TypeError: Unicode-objects must be encoded before hashing 原因是:python3 ...