zabbix3.0.2 通过orabbix来监控oracle11g增强版的详细过程

来源:互联网 发布:手机erp软件 编辑:程序博客网 时间:2024/05/20 06:51

 

-->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)

 

 

1,下载安装jdk8

#下载地址

http://download.csdn.net/detail/mchdba/9515973                                        

# 解压安装

tar -xvf jdk-8u45-linux-x64.tar.gz -C /usr/lib/jvm

 

 

2,创建oracle监控帐号,在oraclesqlplus窗口里面执行:

创建监控用户语句:

 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;

本blog原始地址为:http://blog.csdn.net/mchdba/article/details/51366790,谢绝转载。

 

 

如果是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>

 

 

 

3,安装部署orabbix

其实orabbix只需要安装在一台服务器即可,我就选择安装在Zabbix Server上,当然上面的jdk是为orabbix服务的,因为orabbix就是一个oracle客户端去查找oracle中的数据,然后传给zabbix,安装orabbix:

 

 

# 下载:

Mkdir /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/

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/lib/jvm/jdk1.8.0_45/bin/java#g' /usr/local/orabbix/run.sh 

 

 

4,配置config. Props

orabbix所有的配置文件都在conf目录中,需要将默认的配置文件config.props.sample复制一份后再进行修改和配置。

 

[root@zabbix_serv_121_12 conf]# vim config.props

 

ZabbixServer2.Port=PORT_OF_ZABBIX_SERVER

 

#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=azure_yueworldoracle_crm_3_90,azure_earth_dbm1_3_111,DB3

 

#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

 

#define here your connection string for each database

#DB1.Url=jdbc:oracle:thin:@192.167.3.90:1521:DB1

azure_yueworldoracle_crm_3_90.Url=jdbc:oracle:thin:@192.167.3.90:1521:powerdes

azure_yueworldoracle_crm_3_90.User=zabbix

azure_yueworldoracle_crm_3_90.Password=ys_zb_0418

#Those values are optionals if not specified Orabbix is going to use the general values

azure_yueworldoracle_crm_3_90.MaxActive=10

azure_yueworldoracle_crm_3_90.MaxWait=100

azure_yueworldoracle_crm_3_90.MaxIdle=1

azure_yueworldoracle_crm_3_90.QueryListFile=./conf/query.props

 

azure_earth_dbm1_3_111.Url=jdbc:oracle:thin:@192.167.3.111:1521:earth_m1

azure_earth_dbm1_3_111.User=zabbix

azure_earth_dbm1_3_111.Password=ys_zb_0418

azure_earth_dbm1_3_111.QueryListFile=./conf/query.props

 

PS:需要注意的是DatabaseList=DB1指的是被监控服务器的名称,该名称要和zabbix server界面中的机器名称保持一致,该配置文件中后续所引用的设定都以该名称为准。

DB1.Url=jdbc:oracle:thin:@ 192.167.3.90:1521:powerdes指定的是被监控服务器的连接信息(例如采用jdbc的联接方式,服务器地址是192.167.3.90,oracle的端口是1521,powerdes指的是数据库的实例名称)

 

5,启动orabbix服务

# 启动orabbix

[root@zabbix_serv_121_12 conf]# service orabbix start

Starting Orabbix service:

[root@zabbix_serv_121_12 conf]#

 

# 查看启动的orabbix进程

[root@zabbix_serv_121_12 conf]# ps aux |grep orabbix

root      1259  0.3  0.6 12112256 203324 pts/1 Sl   16:02   0:13 /usr/lib/jvm/jdk1.8.0_45/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

root      6108  0.0  0.0 103256   844 pts/1    S+   17:04   0:00 grep orabbix

[root@zabbix_serv_121_12 conf]#

 

6,界面导入oracle模版文件

导入模版xml文件,期间碰到问题参加后面的问题记录1。E:\software\Oracle\install_11.2.0.4\pic2\01.png、02.png

 


 

 

在oracle服务器上,加入orabbix监控模版03.png,进入Host -> Templates -> Link new templates -> Select,进去新界面选择Group -> TEMPLATES_ORACLE,之后左边NAME下面打勾,点击Select按钮。

 

之后点击Link new templates框里的Add按钮,然后点击下面的Update按钮,如04.png所示:

 

7,在oracle模版上添加linux基础监控

这个oracle模版里面只有oracle的监控,对于oracle服务器的基础监控比如磁盘、io等等是没有的,这个时候我们需要在这个oracle模版上引入linux监控。进入All templates -> Template_Oracle -> Linked templates ->Link new templates选框,点击Select按钮,在进去的界面里面选择Template OS Linux模版,然后退出,点击Add按钮,添加到Linked templates里面,之后点击Update按钮更新完成,可以看到这个oracle模版的items已经增加到108个了,Graphs已经增加到了19个了,Triggers也增加到了390个了,结果如下图E:\software\Oracle\install_11.2.0.4\pic2\05.png所示

 

8,查看oracle监控部分显示图片

从Monitoring -> Graphs -> Group(选择你自己的组) -> Host(选择你自己的oracle服务器) ->Graps,看到oracle服务器的许多监控图列表,如下图E:\software\Oracle\install_11.2.0.4\pic2\06.png所示:

 

 

SGA内存使用监控图,E:\software\Oracle\install_11.2.0.4\pic2\07.png:

 


HitRatio命中率监控图,E:\software\Oracle\install_11.2.0.4\pic2\08.png:



9,问题记录

Import failed

Details

·        Host group "Templates"already exists.

解决方法:将orabbix的4个xml里面的<group>TEMPLATES</group>改成<group>TEMPLATES_ORACLE</group>,然后重新导入import即可。

 

 

参考文章:http://www.smartmarmot.com/wiki/index.php/Orabbix

 

 

 

 


3 0