安裝前的環境準備
1. 確保JRE環境,使用java命令可以識別
2. 修改zabbixserver和agent的host文件,但在Zabbix中添加Oracle Host時,必須用你在此設定的名字DatabaseList的名稱必須一致
3. run.sh腳本java要替換爲絕對路徑,如果zabbix不是安裝在/opt/zabbix下,啓動腳本也要修改路徑
4. 創建日誌文件路徑 mkdir -p /opt/orabbix/log
5 給orabbix目錄下附權限chmod a+x /opt/orabbix –R
2.安裝orabbix
orabbix官網:http://www.smartmarmot.com/wiki/index.php?title=Orabbix
下載地址:http://www.smartmarmot.com/product/orabbix/download/ 最新版本orabbix-1.2.3.zip
下載後上傳到Zabbix-server的/opt/orabbix/下(建議目錄,否則會影響後續腳本執行)
#mkdir /opt/orabbix
#cd /opt/orabbit
#unzip orabbix-1.2.3.zip
3. 配置orabbix
創建orabbix配置文件編輯config.props
#cp /opt/orabbix/conf/config.props.sample /opt/orabbix/conf/config.props
vi /opt/orabbix/conf/config.props
ZabbixServerList=node3
ZabbixServer1.Address=192.168.41.35 -----zabbix server ip
ZabbixServer1.Port=10051 -----zabbix agent端口
----注:以上等號後的名字必須與下行中等號前名字保持一樣。端口號爲與Zabbix Server通訊的端口,我這裏是將Orabbix與Zabbix裝在同一臺機器上的,如果不在同一臺機器,那裝Orabbix的機器需要先裝Zabbix Agent,否則數據將無法傳送到Zabbix Server。
#pidFile
OrabbixDaemon.PidFile=./logs/orabbix.pid
#frequency of item's refresh
OrabbixDaemon.Sleep=300
DatabaseList=DB1 (這裏必須與Oracle Host中的一致,否則無法解析)
以上等號後的名字可以自己任意取名,但在Zabbix中添加Oracle Host時,必須用你在此設定的名字,否則無法監測。以上等號後面的值修改後,在下面的數據庫連接定義=處,也需要修改相應的名字;
DatabaseList.MaxActive=10
DatabaseList.MaxWait=100
DatabaseList.MaxIdle=1
DB1.Url=jdbc:oracle:thin:@192.168.12.54:1521:racdb1
DB1.User=zabbix
DB1.Password=zabbix
配置orabbix的服務和進程
#cp -a /opt/orabbix/init.d/orabbix /etc/init.d/orabbix
#chmod 755 /etc/init.d/orabbix
#/etc/init.d/orabbix start
在Oracle端增加用戶和權限
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 ALTER SESSION TO zabbix;
GRANT CREATE SESSION TO zabbix;
GRANT CONNECT TO zabbix;
ALTER USER zabbix DEFAULT ROLE ALL;
GRANT SELECT ON V_$INSTANCE TO zabbix;
GRANT SELECT ON DBA_USERS TO zabbix;
GRANT SELECT ON V_$LOG_HISTORY TO zabbix;
GRANT SELECT ON V_$LOG TO zabbix;
GRANT SELECT ON V_$PARAMETER TO zabbix;
GRANT SELECT ON SYS.DBA_AUDIT_SESSION TO zabbix;
GRANT SELECT ON V_$LOCK TO zabbix;
GRANT SELECT ON DBA_REGISTRY TO zabbix;
GRANT SELECT ON V_$LIBRARYCACHE TO zabbix;
GRANT SELECT ON V_$SYSSTAT TO zabbix;
GRANT SELECT ON V_$PARAMETER TO zabbix;
GRANT SELECT ON V_$LATCH TO zabbix;
GRANT SELECT ON V_$PGASTAT TO zabbix;
GRANT SELECT ON V_$SGASTAT TO zabbix;
GRANT SELECT ON V_$LIBRARYCACHE TO zabbix;
GRANT SELECT ON V_$PROCESS TO zabbix;
GRANT SELECT ON DBA_DATA_FILES TO zabbix;
GRANT SELECT ON DBA_TEMP_FILES TO zabbix;
GRANT SELECT ON DBA_FREE_SPACE TO zabbix;
GRANT SELECT ON V_$SYSTEM_EVENT TO zabbix;
GRANT SELECT ON V_$locked_object TO zabbix;
GRANT SELECT ON dba_objects TO zabbix;
GRANT SELECT ON dba_tablespaces TO zabbix;
GRANT SELECT ON v_$session TO zabbix;
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;