zabbix之 orabbix模板監控oracle


一、Orabbix簡介

Orabbix是設計用來為zabbix監控Oracle的數據庫的插件,它提供多層次的監控,包括可用性和服務器性能的指標。
它提供了從眾多Oracle實例采集的有效機制,進而提供此信息的監控和性能指標。然后,您可以利用的zabbix的報告功能為收集的所有數據,並提供分析。目前的發行版中包含了一組預先定義的模板,包括從初始部署報警和圖形功能。然而,這些可以進行微調,以滿足您額需求和數據/監控要求。

 

二、Orabbix監控的內容

  1、數據庫版本

  2、歸檔日志與生產趨勢

  3、觸發器,表/過程命中率

  4、邏輯IO性能

  5、物理IO性能

  6PGA

  7SGA

  8、共享池

  9Session

  10、數據庫大小

 

 三、服務端操作

    1、安裝jre(確保有Java的環境)

    下載地址:http://www.oracle.com/technetwork/java/javase/downloads/   

 

# rpm -ivh jre-7u67-linux-x64.rpm

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

1:jre ########################################### [100%]

Unpacking JAR files...

rt.jar...

jsse.jar...

charsets.jar...

localedata.jar...

jfxrt.jar...

     2、安裝orabbix (一般選擇安裝在zabbix server端,如果安裝在其他地方也可以)

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

       1)在/opt創建目錄創建orabbix文件。(原因:orabbix啟動文件默認寫在/opt/orabbix目錄下,也可以修改一下orabbix啟動腳本的路徑 )          

 

#mkdir /opt/orabbix

#mv orabbix-1.2.3.zip /opt/orabbix

#cd /opt/orabbit

#unzip orabbix-1.2.3.zip

 

        2)授予文件可執行的權限

 

#chmod a+x /opt/orabbix -R

       3)創建一個名為config.props文件,有模板可以參考。

 

#cp /opt/orabbix/conf/config.props.sample config.props

 

       4)修改confi.props配置文件,僅需修改如下內容即可。

 

參數說明:

# cat /opt/orabbix/conf/config.props |grep -v "#"   這里僅取沒有注釋的。

ZabbixServerList=ZabbixServer          #zabbix名稱

   

ZabbixServer.Address=192.168.0.119     #zabbix服務端的IP地址

ZabbixServer.Port=10051                #zabbix服務端的端口

   

OrabbixDaemon.PidFile=./logs/orabbix.pid

OrabbixDaemon.Sleep=300

OrabbixDaemon.MaxThreadNumber=100

   

DatabaseList=twstcptest.com    #這個名稱可以隨便起,但是必須跟監控的主機名保持一致。

   

DatabaseList.MaxActive=10

DatabaseList.MaxWait=100

DatabaseList.MaxIdle=1

   

twstcptest.com.Url=jdbc:oracle:thin:@192.168.0.110:1521:rdcms  #這里主要是通過JDBC來連接客戶端的。rdcms主要是數據庫的實例名稱。在客戶端可以通過select instance_name from v$instance來得到實例的名稱。

twstcptest.com.User=zabbix      #數據庫用戶

twstcptest.com.Password=zabbix  #數據庫用戶密碼

twstcptest.com.MaxActive=10

twstcptest.com.MaxWait=100

twstcptest.com.MaxIdle=1

twstcptest.com.QueryListFile=./conf/query.props

 

配置參考

###】cat config.props

#comma separed list of Zabbix servers

ZabbixServerList=ZabbixServer1

ZabbixServer1.Address=192.168.50.34

ZabbixServer1.Port=10051

#pidFile

OrabbixDaemon.PidFile=./logs/orabbix.pid

#frequency of item's refresh

OrabbixDaemon.Sleep=300

#MaxThreadNumber should be >= than the number of your databases

OrabbixDaemon.MaxThreadNumber=100

#put here your databases in a comma separated list

#DatabaseList=DB1,DB2,DB3

DatabaseList=Yueqing7

#Configuration of Connection pool

#if not specified Orabbis is going to use default values (hardcoded)

#Maximum number of active connection inside pool

DatabaseList.MaxActive=10

#The maximum number of milliseconds that the pool will wait

#(when there are no available connections) for a connection to be returned

#before throwing an exception, or <= 0 to wait indefinitely.

DatabaseList.MaxWait=100

DatabaseList.MaxIdle=1

Yueqing7.Url=jdbc:oracle:thin:@192.168.20.2:1521:boncdev

Yueqing7.User=bmonitor

Yueqing7.Password=bmonitor

Yueqing7.QueryListFile=./conf/query.props

 

 

四、客戶端操作 登錄數據庫並授予用戶相關權限即可

 1.新建用戶:

-Create a User for Orabbix to access your Oracle Database. You can use the following script:

 

SQL> CREATE TABLESPACE TBS_bmonitor DATAFILE '/oradata01/boncdev/oradata/BONCDEV/datafile/tbs_bmonitor_1g_01.dbf' SIZE 1024M AUTOEXTEND OFF;

SQL> CREATE USER bmonitor IDENTIFIED BY bmonitor DEFAULT TABLESPACE tbs_bmonitor TEMPORARY TABLESPACE TEMP PROFILE DEFAULT ACCOUNT UNLOCK;


2.基本權限授權

-Roles for bmonitor

SQL> GRANT CONNECT TO bmonitor;

SQL> GRANT RESOURCE TO bmonitor;

SQL> ALTER USER bmonitor DEFAULT ROLE ALL;


3.粗粒度授權

  -5 System Privileges for BMONITOR

SQL> GRANT SELECT ANY TABLE TO BMONITOR;

SQL> GRANT CREATE SESSION TO BMONITOR;

SQL> GRANT SELECT ANY DICTIONARY TO BMONITOR;

SQL> GRANT UNLIMITED TABLESPACE TO BMONITOR;

SQL> GRANT SELECT ANY DICTIONARY TO BMONITOR;


4.細粒度授權

SQL> GRANT SELECT ON V_$INSTANCE TO bmonitor;

SQL> GRANT SELECT ON DBA_USERS TO bmonitor;

SQL> GRANT SELECT ON V_$LOG_HISTORY TO bmonitor;

SQL> GRANT SELECT ON V_$PARAMETER TO bmonitor;

SQL> GRANT SELECT ON SYS.DBA_AUDIT_SESSION TO bmonitor;

SQL> GRANT SELECT ON V_$LOCK TO bmonitor;

SQL> GRANT SELECT ON DBA_REGISTRY TO bmonitor;

SQL> GRANT SELECT ON V_$LIBRARYCACHE TO bmonitor;

SQL> GRANT SELECT ON V_$SYSSTAT TO bmonitor;

SQL> GRANT SELECT ON V_$PARAMETER TO bmonitor;

SQL> GRANT SELECT ON V_$LATCH TO bmonitor;

SQL> GRANT SELECT ON V_$PGASTAT TO bmonitor;

SQL> GRANT SELECT ON V_$SGASTAT TO bmonitor;

SQL> GRANT SELECT ON V_$LIBRARYCACHE TO bmonitor;

SQL> GRANT SELECT ON V_$PROCESS TO bmonitor;

SQL> GRANT SELECT ON DBA_DATA_FILES TO bmonitor;

SQL> GRANT SELECT ON DBA_TEMP_FILES TO bmonitor;

SQL> GRANT SELECT ON DBA_FREE_SPACE TO bmonitor;

SQL> GRANT SELECT ON V_$SYSTEM_EVENT TO bmonitor;

SQL> GRANT SELECT ON v_$log TO bmonitor;

SQL> GRANT SELECT ON v_$locked_object TO bmonitor;

SQL> GRANT SELECT ON v_$session TO bmonitor;

SQL> GRANT SELECT ON dba_tablespaces TO bmonitor;

SQL> GRANT SELECT ON dba_objects TO bmonitor;

SQL> GRANT SELECT ON v_$archived_log to bmonitor;

SQL> GRANT SELECT ON V_$SGA to bmonitor;


5.

如果是oracle11g的數據庫版本或者以上,還需要執行下面的語句開放ACL的訪問控制,否則在監控的過程中有部份內容無法正常顯示(例於數據庫版本,數據庫文件大小等),而且orabbix的日志顯示中也會有錯誤提示。:

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_export_full.xml 在orabbix.zip壓縮包 template 目錄內)

 

1)創建 Host groups

2)導入模版xml文件  Configuration > Templates > Import file (選擇orabbix自帶模板導入)>  Import

 

3) 創建 HOSTS,並關聯oracle監控模板

創建 hosts (注意 

關聯oracle監控模板 :Host -> Templates -> Link new templates -> Select

 

六、 監控效果

 

問題1:
ORA-28040: No matching authentication protocol錯誤,低客戶端連接到12c高版本的解決方案
解決:在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

不用重啟數據庫或者監聽,也不用重啟應用。

問題2:

Import failed

Details

·        Host group "Templates"already exists.

 

解決方法:將orabbix的4個xml里面的<group>TEMPLATES</group>改成
<group>TEMPLATES_ORACLE</group>,然后重新導入import即可。

問題3:
cannot send list of active checks to "192.168.1.99": host [192.168.1.99] not found

web前端 hosts name 跟 配置文件內不一致


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM