Orabbix 是一個用來監控 Oracle 數據庫實例的 Zabbix 插件。(插件安裝在zabbix-server端)linux
下載地址:http://www.smartmarmot.com/product/orabbix/download/git
Orabbix是經過JDBC去鏈接oracle數據庫,而後過濾想要的數據,因此須要jdk環境github
我測試過jdk1.7和1.8均可以,直接yum安裝,或者下載rpm包,rpm -ivh安裝,均可以web
這裏,我是直接rpm安裝的,sql
[root@zabbix ~]# rpm -ivh jdk-8u102-linux-x64.rpm Preparing... ########################################### [100%] 1:jdk1.8.0_102 ########################################### [100%]
在/opt目錄下新建一個orabbix目錄:數據庫
[root@oracle orabbix]#mkdir -p /opt/orabbix
(建議在此目錄下,若是放置其餘目錄稍後須要更改orabbix的啓動文件orabbix,啓動文件默認寫在opt/orabbix目錄下 )vim
[root@zabbix opt]# cd orabbix/bash
上傳orabbix-1.2.3.ziporacle
[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
編輯配置文件:dom
[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=172.20.10.183-oracle,192.168.56.99-oracle #這裏很重要,跟下面的對應上 DatabaseList.MaxActive=10 DatabaseList.MaxWait=100 DatabaseList.MaxIdle=1 172.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=10 172.20.10.183-oracle.MaxWait=100 172.20.10.183-oracle.MaxIdle=1 172.20.10.183-oracle.QueryListFile=./conf/query.props #要查詢的語句都在這定義的,不滿意本身改
下面是oracle 11g的(12c 語法不同)受權語句以下,創用戶,受權,這些操做,我都是在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 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 #只須要導入這個一個模板就好
添加主機(注意host name 要和conf.props文件中指定的DatabaseList一致)
而後連接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數據庫沒受權這個用戶。
ORA-28040: No matching authentication protocol這個錯誤
解決:在Oracle用戶(不是grid用戶)下,將$ORACLE_HOME/network/admin/sqlnet.ora文件原來的SQLNET.ALLOWED_LOGON_VERSION=8註釋掉(若是沒有sqlnet.ora文件,那麼就建立一個),修改成以下的行:
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8 SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8 不用重啓數據庫或者監聽,也不用重啓應用。
1.orabbix配置文件出現異常,首先須要清楚每一個參數的含義,而後再進行配置;
2.數據沒法獲取(經過查看orabbix的日誌文件能夠看到報錯),orabbix查詢oracle數據庫的用戶權限不夠,須要授予足夠的權限;
3.zabbix界面沒法獲得數據,若是能夠確保上面一項是能夠從數據庫中得到數據的話,則須要查看conf.props文件中指定的DatabaseList是否正確(必須是zabbix控制檯上的主機名)。
zabbix4.0版本相應安裝包:https://github.com/hejianlai/Zabbix