orabbix监控oracle11g,Zabbix利用orabbix插件监控Oracle数据库

一.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

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,如图所示

viewspace-2126310

然后在该文件的末尾添加

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

viewspace-2126310

从以上可以看到我很多数据是抓不到的,都是因为权限的问题找不到表,于是就需要利用query.props

/usr/local/orabbix/conf/query.props

找到对应的表,如这里找archive的表

viewspace-2126310

如果没有权限的话 就需要用DBA的权限进数据库给予权限

GRANT SELECT ON v_$LOG TO ZABBIX;

即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值