Orabbix簡介說明
orabbix是一個用來監控oracle數據庫性能的zabbix插件工具,通過安裝在被監控服務器上客戶端上收集數據並傳給zabbix服務器端,然后通過調用圖形顯示。具有以下功能:
- 數據庫版本
- 歸檔文件
- 等待的事件(如文件的I/O,單塊的讀,多塊的讀,直接讀,SQLNet消息,控制文件I/O,日志寫等)
- HitRatio(監控Hit Ratio的觸發,表/存儲過程,SQLArea,Body)
- 邏輯I/O(當前讀操作,持續的讀操作,塊的更改)
- PGA
- SGA(固定的緩沖,JAVApool,Large Pool,Log Buffer,Shared Pool,Buffer Cache)
- 物理I/O(重寫操作,數據文件寫操作,數據文件讀操作)
- SharePool(PoolDictionary Cache, Pool Free Memory, Library Cache,Sql Area ,Misc.)
- Pin Hit Ratio(monitor Hit Ratio on Trigger, Tables/Procedures, SQLArea,Body)
- Session/Processes(monitor Sessions and processes)
- Session (ActiveSession, Inactive Sessions, System Session)
環境
Oracle Server: 192.168.88.53:1521:orcl
Zabbix Server: 192.168.88.56:10050
Zabbix Agent: 192.168.88.56:10051
Orabbix: 192.168.88.56
jdk 1.8: 192.168.88.56
1,下載並安裝jdk8
如果已經安裝了java,這步可以跳過。
下載地址
http://www.oracle.com/technetwork/java/javase/downloads/index.html
解壓安裝,這里以jdk-8u152-linux-x64版本為例
mkdir -p /usr/local/java
tar -zxvf jdk-8u152-linux-x64.tar.gz -C /usr/local/java
2,創建oracle監控帳號,在oracle的sqlplus窗口里面執行:
CREATE USER ZABBIX_MONITOR IDENTIFIED BY zabbix456
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT
ACCOUNT UNLOCK;
GRANT CONNECT TO ZABBIX_MONITOR;
GRANT RESOURCE TO ZABBIX_MONITOR;
ALTER USER ZABBIX_MONITOR DEFAULT ROLE ALL;
GRANT SELECT ANY TABLE TO ZABBIX_MONITOR;
GRANT CREATE SESSION TO ZABBIX_MONITOR;
GRANT SELECT ANY DICTIONARY TO ZABBIX_MONITOR;
GRANT UNLIMITED TABLESPACE TO ZABBIX_MONITOR;
GRANT SELECT ANY DICTIONARY TO ZABBIX_MONITOR;
if you need an User (ZABBIX) for Orabbix with the minimum grants available
GRANT ALTER SESSION TO ZABBIX_MONITOR;
GRANT CREATE SESSION TO ZABBIX_MONITOR;
GRANT CONNECT TO ZABBIX_MONITOR;
ALTER USER ZABBIX_MONITOR DEFAULT ROLE ALL;
GRANT SELECT ON V_$INSTANCE TO ZABBIX_MONITOR;
GRANT SELECT ON DBA_USERS TO ZABBIX_MONITOR;
GRANT SELECT ON V_$LOG_HISTORY TO ZABBIX_MONITOR;
GRANT SELECT ON V_$PARAMETER TO ZABBIX_MONITOR;
GRANT SELECT ON SYS.DBA_AUDIT_SESSION TO ZABBIX_MONITOR;
GRANT SELECT ON V_$LOCK TO ZABBIX_MONITOR;
GRANT SELECT ON DBA_REGISTRY TO ZABBIX_MONITOR;
GRANT SELECT ON V_$LIBRARYCACHE TO ZABBIX_MONITOR;
GRANT SELECT ON V_$SYSSTAT TO ZABBIX_MONITOR;
GRANT SELECT ON V_$PARAMETER TO ZABBIX_MONITOR;
GRANT SELECT ON V_$LATCH TO ZABBIX_MONITOR;
GRANT SELECT ON V_$PGASTAT TO ZABBIX_MONITOR;
GRANT SELECT ON V_$SGASTAT TO ZABBIX_MONITOR;
GRANT SELECT ON V_$LIBRARYCACHE TO ZABBIX_MONITOR;
GRANT SELECT ON V_$PROCESS TO ZABBIX_MONITOR;
GRANT SELECT ON DBA_DATA_FILES TO ZABBIX_MONITOR;
GRANT SELECT ON DBA_TEMP_FILES TO ZABBIX_MONITOR;
GRANT SELECT ON DBA_FREE_SPACE TO ZABBIX_MONITOR;
GRANT SELECT ON V_$SYSTEM_EVENT TO ZABBIX_MONITOR;
如果是oracle11g的數據庫版本,還需要執行下面的語句開放ACL的訪問控制,否則在監控的過程中有部份內容無法正常顯示(例於數據庫版本,數據庫文件大小等),而且orabbix的日志顯示中也會有錯誤提示。注意如果創建的賬號是小寫,以下的ZABBIX_MONITOR需要大寫。最好還是大寫吧。
exec dbms_network_acl_admin.create_acl(acl => 'resolve.xml',description=> 'resolve acl', principal =>'ZABBIX_MONITOR', is_grant => true, privilege => 'resolve');
exec dbms_network_acl_admin.assign_acl(acl => 'resolve.xml', host =>'*');
commit;
3,安裝部署orabbix
其實orabbix只需要安裝在一台服務器即可,我就選擇安裝在Zabbix Server上,當然上面的jdk是為orabbix服務的,因為orabbix就是一個oracle客戶端去查找oracle中的數據,然后傳給zabbix,安裝orabbix:
下載:
mkdir -p /usr/local/orabbix
cd /usr/local/orabbix
wget http://nchc.dl.sourceforge.net/project/orabbix/orabbix-1.2.3.zip
安裝:
unzip orabbix-1.2.3.zip
chmod +x run.sh
cp init.d/orabbix /etc/init.d/
chmod +x /etc/init.d/orabbix
sed -i 's#/opt/orabbix#/usr/local/orabbix#g' /etc/init.d/orabbix
# 根據實際java路徑修改
sed -i 's#java#/usr/local/java/jdk1.8.0_152/bin/java#g' /usr/local/orabbix/run.sh
4,配置config. Props:
orabbix所有的配置文件都在conf目錄中,需要將默認的配置文件config.props.sample復制一份后再進行修改和配置。
cd /usr/local/orabbix/conf
cp config.props.sample config.props
vim config.props
以下是修改后和去注釋后的配置
ZabbixServerList=ZabbixServer1
ZabbixServer1.Address=192.168.88.56
ZabbixServer1.Port=10051
OrabbixDaemon.PidFile=./logs/orabbix.pid
OrabbixDaemon.Sleep=300
OrabbixDaemon.MaxThreadNumber=100
DatabaseList=testora
DatabaseList.MaxActive=10
DatabaseList.MaxWait=100
DatabaseList.MaxIdle=1
testora.Url=jdbc:oracle:thin:@192.168.88.53:1521:orcl
testora.User=zabbix_monitor
testora.Password=zabbix456
testora.MaxActive=10
testora.MaxWait=100
testora.MaxIdle=1
testora.QueryListFile=./conf/query.props
PS:需要注意的是DatabaseList=testora指的是被監控服務器的名稱,該名稱要和zabbix server界面中的機器名稱保持一致,該配置文件中后續所引用的設定都以該名稱為准。
testora.Url=jdbc:oracle:thin:@192.168.88.53:1521:orcl指定的是被監控服務器的連接信息(例如采用jdbc的聯接方式,服務器地址是192.168.88.53,oracle的端口是1521,orcl指的是數據庫的實例名稱)
5,啟動orabbix服務
啟動orabbix
service orabbix start
Starting Orabbix service:
查看啟動的orabbix進程
ps aux |grep orabbix
root 1259 0.3 0.6 12112256 203324 pts/1 Sl 16:02 0:13 /usr/local/java/jdk1.8.0_152/bin/java -Duser.language=en -Duser.country=US -Dlog4j.configuration=./conf/log4j.properties -cp lib/commons-codec-1.4.jar:lib/commons-dbcp-1.4.jar:lib/commons-lang-2.5.jar:lib/commons-logging-1.1.1.jar:lib/commons-pool-1.5.4.jar:lib/hsqldb.jar:lib/log4j-1.2.15.jar:lib/ojdbc6.jar:.:./orabbix-1.2.3.jar com.smartmarmot.orabbix.bootstrap start ./conf/config.props
6,界面導入oracle模版文件
導入時應該注意模板里面的host的name屬性,group的屬性值是否與zabbix已存在的設置有沖突,如果導入失敗,可能是沖突造成的。把這兩個屬性改一下名即可。