zabbix利用orabbix监控oracle
Orabbix 是一个用来监控 Oracle 数据库实例的 Zabbix 插件。(插件安装在zabbix-server端)

下载地址:http://www.smartmarmot.com/product/orabbix/download/
zabbix-server上操作
Orabbix是通过JDBC去连接oracle数据库,然后过滤想要的数据,所以需要jdk环境
我测试过jdk1.7和1.8都可以,直接yum安装,或者下载rpm包,rpm -ivh安装,都可以
这里,我是直接rpm安装的,
| 
 1 
2 
3 
4 
5 
 | 
[root@zabbix ~]# rpm -ivh jdk-8u102-linux-x64.rpmPreparing...                ########################################### [100%]   1:jdk1.8.0_102           ########################################### [100%] | 
在/opt目录下新建一个orabbix目录:
| 
 1 
 | 
[root@oracle orabbix]#midir -p /opt/orabbix | 
(建议在此目录下,如果放置其他目录稍后需要更改orabbix的启动文件orabbix,启动文件默认写在opt/orabbix目录下 )
[root@zabbix opt]# cd orabbix/
上传orabbix-1.2.3.zip
| 
 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 
29 
 | 
[root@zabbix orabbix]# lsorabbix-1.2.3.zip解压[root@zabbix orabbix]# unzip -q orabbix-1.2.3.zip[root@zabbix orabbix]# lsconf  init.d       lib      orabbix-1.2.3.zip  orabbixw.exe  run.sh    uninstall.cmddoc   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]# lsconfig.props    log4j.properties    query_a_1.props  query_b.props     query.propsconfig.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
源配置文件
| 
 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 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
 | 
[root@zabbix conf]# egrep "^[a-Z,1-9]" config.props.sampleZabbixServerList=ZabbixServer1,ZabbixServer2ZabbixServer1.Address=IP_ADDRESS_OF_ZABBIX_SERVERZabbixServer1.Port=PORT_OF_ZABBIX_SERVERZabbixServer2.Address=IP_ADDRESS_OF_ZABBIX_SERVERZabbixServer2.Port=PORT_OF_ZABBIX_SERVEROrabbixDaemon.PidFile=./logs/orabbix.pidOrabbixDaemon.Sleep=300OrabbixDaemon.MaxThreadNumber=100DatabaseList=DB1,DB2,DB3DatabaseList.MaxActive=10DatabaseList.MaxWait=100DatabaseList.MaxIdle=1DB1.Url=jdbc:oracle:thin:@server.domain.example.com:<LISTENER_PORT>:DB1DB1.User=zabbixDB1.Password=zabbix_passwordDB1.MaxActive=10DB1.MaxWait=100DB1.MaxIdle=1DB1.QueryListFile=./conf/query.propsDB2.Url=jdbc:oracle:thin:@server2.domain.example.com:<LISTENER_PORT>:DB2DB2.User=zabbixDB2.Password=zabbix_passwordDB2.QueryListFile=./conf/query.propsDB3.Url=jdbc:oracle:thin:@server3.domain.example.com:<LISTENER_PORT>:DB3DB3.User=zabbixDB3.Password=zabbix_passwordDB3.QueryListFile=./conf/query.props | 
修改之后
| 
 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 
29 
30 
31 
32 
33 
34 
35 
 | 
[root@zabbix conf]# egrep "^[a-Z,1-9]" config.propsZabbixServerList=ZabbixServer1   #(zabbixserver的名字,下行中address和port都引用到了这个名字,所以下面两行的前缀名字要与这里的名字保持一致)ZabbixServer1.Address=127.0.0.1    #我这里就是在zabbix server上面操作的,所以这里是127.0.0.1ZabbixServer1.Port=10051   #zabbix server的服务端口OrabbixDaemon.PidFile=./logs/orabbix.pidOrabbixDaemon.Sleep=300OrabbixDaemon.MaxThreadNumber=100DatabaseList=172.20.10.183-oracle,192.168.56.99-oracle   #这里很重要,跟下面的对应上DatabaseList.MaxActive=10DatabaseList.MaxWait=100DatabaseList.MaxIdle=1172.20.10.183-oracle.Url=jdbc:oracle:thin:@172.20.10.183:1521:orcl      #172.20.10.183 oracle数据库的地址,1521端口,orcl数据库实例名172.20.10.183-oracle.User=zabbix      #授权的账号172.20.10.183-oracle.Password=zabbix   #授权的密码172.20.10.183-oracle.MaxActive=10172.20.10.183-oracle.MaxWait=100172.20.10.183-oracle.MaxIdle=1172.20.10.183-oracle.QueryListFile=./conf/query.props    #要查询的语句都在这定义的,不满意自己改 | 
oracle主机上操作(这步可以省略,只要知道数据库实例,账号,密码)
下面是oracle 11g的(12c 语法不一样)授权语句如下,创用户,授权,这些操作,我都是在oracle数据库的sqlplus下执行的
| 
 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 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
 | 
[oracle@oracle ~]$ sqlplus / as sysdba  SQL*Plus: Release 11.2.0.3.0 Production on Wed Sep 7 18:01:54 2016Copyright (c) 1982, 2011, Oracle.  All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL>CREATE USER ZABBIX IDENTIFIED BY zabbix 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:
报错的话,检查配置文件,数据库地址,端口,实例名,账号,密码是否正确,需要验证对于不懂oracle的怎么办,搜命令呗,我也是一路过来,各种坑~~~~~
然后里面看日志
[root@zabbix orabbix]# tailf /opt/orabbix/logs/orabbix.log
[main] INFO Orabbix - --------- on Database -> orcl
[pool-1-thread-1] WARN Orabbix - Error while executing ->dbversion- on database ->172.20.10.183-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;
到此,安装配置完成,则通过web页面访问监控界面直接导入模板即可
模版放置在/opt/orabbix/template下
Orabbix_export_full.xml          #只需要导入这个一个模板就好
 
添加主机
 
然后链接oracle的模板
 
添加完成之后的效果

查看最新数据
 
这时候图也有了
 
常见错误
[root@zabbix orabbix]# tailf /opt/orabbix/logs/orabbix.log
[main] ERROR Orabbix - Error on Configurator for database 172.20.10.183 oracle -->ORA-01017: invalid username/password; logon denied
config.props配置文件中,数据库账号密码不对,或者在oracle数据库没授权这个用户
                    
                
                
            
        
浙公网安备 33010602011771号