zabbix利用orabbix监控oracle

2018-01-07 分类:监控 阅读(3863) 评论(0)

环境准备,首先得有一台能正常用的zabbix server服务器 192.168.56.98

然后得有一台正在运行的oracle数据库服务器

这里我准备了两台192.168.56.166和192.168.56.99

Orabbix 是一个用来监控 Oracle 数据库实例的 Zabbix 插件。

下载地址:http://www.smartmarmot.com/product/orabbix/download/

Orabbix是通过JDBC去连接oracle数据库,然后过滤想要的数据,所以需要jdk环境

我测试过jdk1.7和1.8都可以,直接yum安装,或者下载rpm包,rpm -ivh安装,都可以

这里,我是直接rpm安装的,省事

以下所有操作都是在zabbix server服务器上进行的,聪明的你,看主机名也能看出来

[root@zabbix ~]# rpm -ivh jdk-8u102-linux-x64.rpm

Preparing... ########################################### [100%]

1:jdk1.8.0_102 ########################################### [100%]

在/opt目录下新建一个orabbix目录:

[root@zabbix orabbix]#midir -p /opt/orabbix

(建议在此目录下,如果放置其他目录稍后需要更改orabbix的启动文件orabbix,启动文件默认写在opt/orabbix目录下 )

[root@zabbix opt]# cd orabbix/

上传orabbix-1.2.3.zip

[root@zabbix orabbix]# ls

orabbix-1.2.3.zip

解压

[root@zabbix orabbix]# unzip -q orabbix-1.2.3.zip

[root@zabbix orabbix]# ls

conf init.d lib orabbix-1.2.3.zip orabbixw.exe run.sh uninstall.cmd

doc install.cmd orabbix-1.2.3.jar orabbix.exe run.bat template

授权

[root@zabbix orabbix]# cd ..

[root@zabbix opt]# chmod -R a+x orabbix/

[root@zabbix ~]# cd /opt/orabbix/conf/

[root@zabbix conf]# ls

config.props log4j.properties query_a_1.props query_b.props query.props

config.props.sample log4j.properties.sample query_a.props query - Copy.props query.props.sample

[root@zabbix conf]# cp config.props.sample config.props

编辑配置文件:

[root@zabbix conf]# vim config.props

源配置文件

[root@zabbix conf]# egrep "^[a-Z,1-9]" config.props.sample

ZabbixServerList=ZabbixServer1,ZabbixServer2

ZabbixServer1.Address=IP_ADDRESS_OF_ZABBIX_SERVER

ZabbixServer1.Port=PORT_OF_ZABBIX_SERVER

ZabbixServer2.Address=IP_ADDRESS_OF_ZABBIX_SERVER

ZabbixServer2.Port=PORT_OF_ZABBIX_SERVER

OrabbixDaemon.PidFile=./logs/orabbix.pid

OrabbixDaemon.Sleep=300

OrabbixDaemon.MaxThreadNumber=100

DatabaseList=DB1,DB2,DB3

DatabaseList.MaxActive=10

DatabaseList.MaxWait=100

DatabaseList.MaxIdle=1

DB1.Url=jdbc:oracle:thin:@server.domain.example.com:<LISTENER_PORT>:DB1

DB1.User=zabbix

DB1.Password=zabbix_password

DB1.MaxActive=10

DB1.MaxWait=100

DB1.MaxIdle=1

DB1.QueryListFile=./conf/query.props

DB2.Url=jdbc:oracle:thin:@server2.domain.example.com:<LISTENER_PORT>:DB2

DB2.User=zabbix

DB2.Password=zabbix_password

DB2.QueryListFile=./conf/query.props

DB3.Url=jdbc:oracle:thin:@server3.domain.example.com:<LISTENER_PORT>:DB3

DB3.User=zabbix

DB3.Password=zabbix_password

DB3.QueryListFile=./conf/query.props

我修改之后的

[root@zabbix conf]# egrep "^[a-Z,1-9]" config.props

ZabbixServerList=ZabbixServer1 #(zabbixserver的名字,下行中address和port都引用到了这个名字,所以下面两行的前缀名字要与这里的名字保持一致)

ZabbixServer1.Address=127.0.0.1 #我这里就是在zabbix server上面操作的,所以这里是127.0.0.1

ZabbixServer1.Port=10051 #zabbix server的服务端口

OrabbixDaemon.PidFile=./logs/orabbix.pid

OrabbixDaemon.Sleep=300

OrabbixDaemon.MaxThreadNumber=100

DatabaseList=192.168.56.166-oracle,192.168.56.99-oracle #这里很重要,跟下面的对应上,先埋个伏笔

DatabaseList.MaxActive=10

DatabaseList.MaxWait=100

DatabaseList.MaxIdle=1

192.168.56.166-oracle.Url=jdbc:oracle:thin:@192.168.56.166:1521:orcl #192.168.56.166 oracle数据库的地址,1521端口,orcl数据库实例名

192.168.56.166-oracle.User=zabbix #授权的账号

192.168.56.166-oracle.Password=zabbix #授权的密码

192.168.56.166-oracle.MaxActive=10

192.168.56.166-oracle.MaxWait=100

192.168.56.166-oracle.MaxIdle=1

192.168.56.166-oracle.QueryListFile=./conf/query.props #要查询的语句都在这定义的,不满意自己改

192.168.56.99-oracle.Url=jdbc:oracle:thin:@192.168.56.99:1521:orcl #与上面的类似

192.168.56.99-oracle.User=zabbix

192.168.56.99-oracle.Password=123456

192.168.56.99-oracle.MaxActive=10

192.168.56.99-oracle.MaxWait=100

192.168.56.99-oracle.MaxIdle=1

192.168.56.99-oracle.QueryListFile=./conf/query.props

上述的操作中,有提到oracle的账号密码什么的,当然得提前授权了!

授权语句如下,创用户,授权,这些操作,我都是在oracle数据库的sqlplus下执行的

[oracle@oracle ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Wed Sep 7 18:01:54 2016

Copyright (c) 1982, 2011, Oracle. All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>

CREATE USER ZABBIX IDENTIFIED BY 123456 DEFAULT TABLESPACE SYSTEM TEMPORARY TABLESPACE TEMP PROFILE DEFAULT ACCOUNT UNLOCK;

GRANT CONNECT TO ZABBIX;

GRANT RESOURCE TO ZABBIX;

ALTER USER ZABBIX DEFAULT ROLE ALL;

GRANT SELECT ANY TABLE TO ZABBIX;

GRANT CREATE SESSION TO ZABBIX;

GRANT SELECT ANY DICTIONARY TO ZABBIX;

GRANT UNLIMITED TABLESPACE TO ZABBIX;

GRANT SELECT ANY DICTIONARY TO ZABBIX;

GRANT SELECT ON V_$SESSION TO ZABBIX;

GRANT SELECT ON V_$SYSTEM_EVENT TO ZABBIX;

GRANT SELECT ON V_$EVENT_NAME TO ZABBIX;

GRANT SELECT ON V_$RECOVERY_FILE_DEST TO ZABBIX;

启动orabbix

[root@zabbix orabbix]# cp init.d/orabbix /etc/init.d/

[root@zabbix orabbix]# ll /etc/init.d/orabbix

-rwxr-xr-x 1 root root 1693 Sep 14 21:40 /etc/init.d/orabbix

[root@zabbix orabbix]# /etc/init.d/orabbix start

Starting Orabbix service:

然后里面看日志

[root@zabbix orabbix]# tailf /opt/orabbix/logs/orabbix.log

2016-09-14 21:45:33,597 [main] INFO Orabbix - --------- on Database -> orcl

2016-09-14 21:45:33,711 [pool-1-thread-1] WARN Orabbix - Error while executing ->dbversion- on database ->192.168.56.166-oracle- Exception received ORA-24247: network access denied by access control list (ACL)

ORA-06512: at "SYS.UTL_INADDR", line 4

ORA-06512: at "SYS.UTL_INADDR", line 35

ORA-06512: at line 1

出现这些日志,不影响后面的操作,如果你是完美主义者,满足你

在oracle数据库的sqlplus下执行下面三条命令

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;

出现下面的日志,恭喜你,已经正常工作了!

[root@zabbix orabbix]# tailf /opt/orabbix/logs/orabbix.log

2016-09-14 21:45:33,874 [pool-1-thread-1] INFO Orabbix - Done with dbJob on database 192.168.56.166-oracle QueryList elapsed time 217 ms

2016-09-14 21:45:33,886 [pool-1-thread-2] INFO Orabbix - Done with dbJob on database 192.168.56.99-oracle QueryList elapsed time 205 ms

2016-09-14 21:46:33,719 [pool-1-thread-3] INFO Orabbix - Done with dbJob on database 192.168.56.166-oracle QueryList elapsed time 18 ms

2016-09-14 21:46:33,733 [pool-1-thread-4] INFO Orabbix - Done with dbJob on database 192.168.56.99-oracle QueryList elapsed time 15 ms

到此,安装配置完成,则通过web页面访问直接导入模板即可

模版放置在/opt/orabbix/template下
Orabbix_export_full.xml         #只需要导入这个一个模板就好


重点来了添加主机

然后链接oracle的模板

添加完成之后的效果

过一会儿,刷新一下,就可以看到变绿了

查看最新数据

这时候图也有了

常见错误

[root@zabbix orabbix]# tailf /opt/orabbix/logs/orabbix.log

2016-09-14 21:43:36,323 [main] ERROR Orabbix - Error on Configurator for database 192.168.56.99-oracle -->ORA-01017: invalid username/password; logon denied

config.props配置文件中,数据库账号密码不对,或者在oracle数据库没授权这个用户

评论已关闭

登录

忘记密码 ?

切换登录

注册