一.jdk的安装(Orabbix Server)

1.软件解压,放到固定位置

1
2
tar zxf jdk-8u51-linux-x64.tar.gz
mv jdk1.8.0_51/ /usr/local/

2.设置系统变量,编辑/etc/profile在末尾增加

1
2
3
export JAVA_HOME=/usr/local/jdk1.8.0_51
exportCLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

3.执行一下/etc/profile使之生效

1
source /etc/profile

二.Oracle中增加监控用户,并设置相应的用户权限,这一步在sqlplus中完成(ORACLE服务器)

1
2
3
4
5
6
7
8
su - oracle
sqlplus / as sysdba
SQL>CREATE USER zabbix
IDENTIFIED BY zabbix_password
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT
ACCOUNT 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/orabbix
cd /usr/local/orabbix
wget orabbix http://nchc.dl.sourceforge.net/project/orabbix/orabbix-1.2.3.zip
unzip orabbix-1.2.3.zip
chmod +x run.sh
cp init.d/orabbix /etc/init.d/
sed -i 's#/opt/orabbix#orabbix=/usr/local/orabbix#g' /etc/init.d/orabbix
chmod +x /etc/init.d/orabbix
sed -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=ZabbixServer
ZabbixServer.Address=192.168.0.81
ZabbixServer.Port=10051
OrabbixDaemon.PidFile=./logs/orabbix.pid
OrabbixDaemon.Sleep=300
OrabbixDaemon.MaxThreadNumber=100
DatabaseList=tpy100
DatabaseList.MaxActive=10
DatabaseList.MaxWait=100
DatabaseList.MaxIdle=1
tpy100.Url=jdbc:oracle:thin:@192.168.0.209:1521:orcl
tpy100.User=ZABBIX
tpy100.Password=zabbix
tpy100.MaxActive=10
tpy100.MaxWait=100
tpy100.MaxIdle=1
tpy100.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_files
 
dbsize.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数据库的更多相关文章

  1. zabbix之 orabbix模板监控oracle

    一.Orabbix简介 Orabbix是设计用来为zabbix监控Oracle的数据库的插件,它提供多层次的监控,包括可用性和服务器性能的指标.它提供了从众多Oracle实例采集的有效机制,进而提供此 ...

  2. orabbix插件监控oracle表空间问题

    我们安装好orabbix插件后,查看Tablespaces监控项是发项值为none,第一反应是没监控成功,其实不然. 1.我们打开orabbix监控项参数的路径,下面为Tablespaces的sql代 ...

  3. 使用Zabbix监控Oracle数据库

    Orabbix介绍 监控Oracle数据库我们需要安装第三方提供的Zabbix插件,我们先测试比较有名的Orabbix,http://www.smartmarmot.com/product/orabb ...

  4. Zabbix+Orabbix监控oracle数据库表空间

    Orabbix 是设计用来为 zabbix 监控 Oracle 数据库的插件,它提供多层次的监控,包括可用性和服务器性能指标. 它提供了从众多 oracle 实例采集数据的有效机制,进而提供此信息的监 ...

  5. zabbix利用orabbix监控oracle

    Orabbix 是一个用来监控 Oracle 数据库实例的 Zabbix 插件.(插件安装在zabbix-server端) 下载地址:http://www.smartmarmot.com/produc ...

  6. 利用zabbix监控oracle数据库

    一.概述 zabbix是一款非常强大,同时也是应用最为广泛的开源监控软件,本文将给大家介绍如何利用zabbix监控oracle数据库. 二.环境介绍 以下是我安装的环境,实际部署时并不需要跟我的环境一 ...

  7. 【Zabbix】zabora监控Oracle数据库

    zabora监控Oracle数据库 它作为一个开源项目,通过shell脚本有效的监控Oracle基础指标.本文档旨在通过实战,在Zabbix 3.0版本之下,监控生产环境下的多台Oracle数据库. ...

  8. 转 zabbix debug and zabbix使用percona插件监控mysql

    ########## https://www.cnblogs.com/keithtt/p/8542987.html zabbix使用percona插件监控mysql   1.添加percona仓库. ...

  9. 利用Navicat Premium连接Oracle数据库

    利用Navicat Premium连接Oracle数据库 Navicat premium是一款数据库管理工具,支持多种数据库,也非常轻量: 安装包准备:Navicat Premium_11.1.8简体 ...

随机推荐

  1. git pull refusing to merge unrelated histories

    1. 简介 最近的项目开发环境我换到实验室的机器上了,毕竟是台式机,速度杠杠的.于是出现了一个问题,台式机上面的代码我笔记上的代码同步的问题.于是想到了Git这个强大的工具.关于git的简介我就不说了 ...

  2. Java中的继承抽象类和接口

    一.总结 1.使用extends关键字继承,eg: class Student extends Persion { ...}; 2.Java编程规范中类的首字母大写,方法的首字母小写单词首字母代谢,e ...

  3. MySQL聚合函数与数据分组

    我们最常需要的是汇总数据而不是把他们实际检索出来 确定表中行数(或满足某个条件或包含某个特定值的行数) 确定表中行组的和 找出表列(或所有行或特定列)的最大值,最小值和平均值 聚集函数是运行在行组上, ...

  4. Day 35数据库(Day1)

    创建表. create table student( id int not null auto_increment PRIMARY key, name archar(250) not null, ag ...

  5. Bjarne Stroustrup announces C++ Core Guidelines

    This morning in his opening keynote at CppCon, Bjarne Stroustrup announced the C++ Core Guidelines ( ...

  6. 相似度与距离计算python代码实现

    #定义几种距离计算函数 #更高效的方式为把得分向量化之后使用scipy中定义的distance方法 from math import sqrt def euclidean_dis(rating1, r ...

  7. Python的rand vs randn以及linspace

    Numpy里面的randn是满足了整体分布的,normal distribution(正态分布):rand则是满足了Uniform Distribution(均匀分布): Linspace(start ...

  8. dojo:如何为表格添加从数据库获得存储的下拉框

    为表格添加下拉框的例子官网上就有,但如果下拉框的数据是从数据库请求的.需要有一些注意的地方. 首先希望实现的效果如下图所示: 表格初始数据为空,点击查询后获得表格表格数据,但下拉框的数据是在对应的fo ...

  9. spring4与mongodb的集成

    新项目的辅助系统,需要用到mongo系统,今天再次将其使用环境进行了操作搭建.还是遇到一些问题,毕竟之前使用的场景和现在的不同.版本也不一样了. 本次使用的环境: mongo:3.4.4版本 OS: ...

  10. Jenkins触发远程Job的几种方式

    本文叙述基于以下假设前提,将介绍三种在不同的jenkins服务器之间触发Job的方法: 本地Jenkins Server local.jenkins.com远程Jenkins Server remot ...