一、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(固定的缓冲,JAVA pool,Large Pool,Log Buffer,Shared Pool,Buffer Cache)
8、物理I/O(重写操作,数据文件写操作,数据文件读操作)
9、SharePool(Pool Dictionary 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 (Active Session, Inactive Sessions, System Session)
二、 orabbix安装
2.1、Java环境
首先在被监控的服务器安装java环境,可以直接到oracle官网下载对应的包安装。
wget http://download.oracle.com/otn-pub/java/jdk/7u72-b14/jre-7u72-linux-x64.rpm rpm �Civh jre-7u72-linux-x64.rpm
2.2、建立对应的目录
orabbix默认的配置是/opt/orabbix,相关的内容都会在此文件夹内,如果安装时指定了其它的目录请记得在配置文件中更改为正确的文件路径。
mkdir �Cp /opt/orabbix cd /opt/orabbix
2.3、安装对应的文件
wget http://192.168.0.201:8080/%e5%b8%b8%e7%94%a8%e8%bd%af%e4%bb%b6/%e5%b7%a5%e5%85%b7/zabbix/orabbix-1.2.3.zip unzip orabbix-1.2.3.zip cp init.d/orabbix /etc/init.d/ chmod +x run.sh chmod +x /etc/init.d/orabbix
2.4、增加监控用户
CREATE USER ZABBIX IDENTIFIED BY <REPLACE WITH PASSWORD> 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_$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;
如果是11G的数据库版本,还需要执行下面的语句开放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;
设置完成后,可以通过以下的语句查看添加的状态。
select utl_inaddr.get_host_name('127.0.0.1') from dual;
2.5、配置文件
orabbix所有的配置文件都在conf目录中,需要将默认的配置文件config.props.sample复制一份后再进行修改和配置。
cd conf cp config.props.sample config.props vim config.progs
以下内容都基于该配置文件。
ZabbixServerList=ZabbixServer ZabbixServer.Address=192.168.0.189 ZabbixServer.Port=10051 OrabbixDaemon.PidFile=./logs/orabbix.pid OrabbixDaemon.Sleep=300 OrabbixDaemon.MaxThreadNumber=100 DatabaseList=CRMDB DatabaseList.MaxActive=10 DatabaseList.MaxWait=100 DatabaseList.MaxIdle=1 CRMDB.Url=jdbc:oracle:thin:@192.168.0.209:1521:orcl CRMDB.User=ZABBIX CRMDB.Password=zabbix CRMDB.MaxActive=10 CRMDB.MaxWait=100 CRMDB.MaxIdle=1 CRMDB.QueryListFile=./conf/query.props
需要注意的是DatabaseList=CRMDB指的是被监控服务器的名称,该名称要和zabbix server界面中的机器名称保持一致,该配置文件中后续所引用的设定都以该名称为准。
CRMDB.Url=jdbc:oracle:thin:@192.168.0.209:1521:orcl指定的是被监控服务器的连接信息(例如采用jdbc的联接方式,服务器地址是192.168.0.209,oracle的端口是1521,orcl指的是数据库的实例)
2.6、添加监控主机
在zabbix的GUI管理界面上添加监控的主机前需要先导入oracle数据库的监控模板,监控模板保存在解压出来的template文件夹中,选取Orabbix_export_full.xml导入。
2.7、启动服务
可以先将orabbix加为系统服务,然后启动监控服务并观察对应的日志文件,如果没有错误提示,监控界面中就可以正常显示监控图形了。
chkconfig �Cadd orabbix chkconfig �Clevel 345 orabbix on service orabbix start tail �Cf /opt/orabbix/log/orabbix.log
三、 参考资料
http://www.smartmarmot.com/wiki/index.php/Orabbix
http://www.peasland.net/
http://www.smartmarmot.com/product/orabbix/