一 、Orabbix 介绍
orabbix是一个用来监控oracle数据库性能的zabbix插件工具,通过安装在被监控服务器上客户端上收集数据并传给zabbix服务器端,然后通过调用图形显示。具有以下功能:
1. 数据库版本
2. 归档文件
3. 等待的事件(如文件的I/O,单块的读,多块的读,直接读,SQLNet消息,控制文件I/O,日志写等)
4. HitRatio(监控Hit Ratio的触发,表/存储过程,SQLArea,Body)
5. 逻辑I/O(当前读操作,持续的读操作,块的更改)
6. PGA
7. SGA(固定的缓冲,JAVApool,Large Pool,Log Buffer,Shared Pool,Buffer Cache)
8. 物理I/O(重写操作,数据文件写操作,数据文件读操作)
9. SharePool(PoolDictionary Cache, Pool Free Memory, Library Cache,Sql Area ,Misc.)
10. Pin Hit Ratio(monitor Hit Ratio on Trigger, Tables/Procedures, SQLArea,Body)
11. Session/Processes(monitor Sessions and processes)
12. Session (ActiveSession, Inactive Sessions, System Session)
二、创建Oracle监控账号并赋权
CREATE USER zabbix IDENTIFIED BY ys_zb_0418 DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP PROFILE DEFAULT ACCOUNT UNLOCK;
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;
注意: 如果是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;
# --执行过程
SQL> exec dbms_network_acl_admin.create_acl(acl => 'resolve.xml',description=> 'resolve acl', principal =>'ZABBIX', is_grant => true, privilege => 'resolve');
PL/SQLprocedure successfully completed.
SQL> exec dbms_network_acl_admin.assign_acl(acl => 'resolve.xml', host =>'*');
PL/SQLprocedure successfully completed.
SQL> commit;
Commit complete.
SQL>
三、安装配置orabbix
安装JDK
tar -xf jdk-7u79-linux-x64.tar.gz -C /usr/local/
安装orabbix
下载地址:http://www.smartmarmot.com/product/orabbix/download/
# mdkir -p /usr/local/orabbix # mv orabbix-1.2.3.zip /usr/local/orabbix # unzip orabbix-1.2.3.zip # chmod +x run.sh # cp init.d/orabbix /etc/init.d/ # sed -i 's#/opt/orabbix#orabbix=/usr/local/orabbix#g' /etc/init.d/orabbix # chmod +x /etc/init.d/orabbix # sed -i 's#java#//usr/local/jdk1.7.0_79/bin/java#g' /usr/local/orabbix/run.sh
准备orabbix 配置文件
# cp config.props.sample config.props # vim config.props
需要注意的是DatabaseList=App01指的是被监控服务器的名称,该名称要和zabbix server界面中的机器名称保持一致,该配置文件中后续所引用的设定都以该名称为准。
App01.Url=jdbc:oracle:thin:@ 192.168.154.130:1521:orcl指定的是被监控服务器的连接信息(例如采用jdbc的联接方式,服务器地址是 192.168.154.130,oracle的端口是1521,orcl指的是数据库的实例名称)
3. 配置 orabbix 启动脚本 并启动orabbix
# service orabbix start
4. 导入oracle 监控模板
Configuration->Template->Import