zabbix监控Oracle,使用插件orabbix

Orabbix

首先我们需要确定orabbix主机已安装java/zabbix agent.orabbix不一定要装在oracle数据库主机上面,但是oracle主机要装zabbix agent而且和zabbix server互通。

JDK配置(centos 7)

JDK一般有两种。一种是Oracle JDK,另外一种是open jdk。Zabbix建议部署在centos上,因为centos 自带open jdk。如果要换成Oracle JDK我们先把原来的JDK删除掉。

查看本机上安装的JDK

# rpm -qa | grep java

删除相关的JDK

#rpm -ivh --force --nodeps + 文件名(强制删除)

在Oracle官网下载JDK到linux /usr/java/上解压

#tar -zxvf jdk-8u144-linux-x64.tar.gz 
更名
#mv jdk-8u144-linux-x64 jdk

配置环境变量
#vi /etc/profile#java environment
export JAVA_HOME=/usr/java/jd 
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin

安装orabbix

Orabbix建议部署在zabbix server 同一台机器上。

Orabbix是一个插件,旨在与Zabbix Enterprise Monitor配合使用,为Oracle数据库提供多层监控,性能和可用性报告和度量,以及服务器性能指标。
它提供了一种从多个Oracle实例获取数据的有效机制,并为Zabbix服务器提供监视和性能指标的这些信息。然后,您可以利用Zabbix的报告功能收集所有数据,并为利益相关者提供图表和服务水平协议指标等分析。
当前分发包含一组预定义的模板,这些模板包含初始部署时的警报和图形功能。但是,这些可以根据您的需求和数据/监控要求进行微调。

 

以下是Orabbix能够监控的一些示例:

数据库版本(即包的有效性)

存档(使用趋势分析存档日志生成)

事件等待(文件I / O,单块读取,多块读取,直接路径读取,SQLNet消息,控制文件I / O,日志写入)

命中率(触发器,表/程序,SQL区域,正文的命中率)

逻辑I / O(逻辑I / O上的服务器性能:当前读取,一致读取,块更改)

物理I / O(重做写入,数据文件写入,数据文件读取)

PGA

SGA(特别是;固定缓冲区,Java池,大型池,日志缓冲区,共享池缓冲区高速缓存)

共享池(池字典缓存,池可用内存,库Chache,SQL区域,MISC。)

引脚命中率(Oracle库缓存引脚是由与库缓存的争用引起的,用于存储SQL可执行文件以供重用的区域)

会话/流程

会话(活动会话,非活动会话,系统会话)

 

 
  zabbix监控Oracle,使用插件orabbix_第1张图片


DBSize / DBFileSize(DBSize数据库的大小确实使用了空间和Filesize)

下载orabbix:

进入/opt目录执行

#wget --no-check-certificate https://nchc.dl.sourceforge.net/project/orabbix/orabbix-1.2.3.zip

解压

#unzip orabbix-1.2.3.zip

调整配置文件:

cd /opt/orabbix

cp init.d/orabbix /etc/init.d/

chmod 755 /etc/init.d/orabbix

chmod 755 /opt/orabbix/run.sh

 

接下来这部分在需要被监控oracle 数据库上操作

CREATE USER ZABBIX

IDENTIFIED BY ZABBIX

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;

如果是Oracle 11G 再加上下列语句

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;

 

配置config.props:

#cd /opt/orabbix/conf

#cp config.props.sample config.props

有几个需要注意的点

ZabbixServerList=ZabbixServer  //zabbix_server主机名

ZabbixServer.Address=127.0.0.1 //zabbix_server地址

ZabbixServer.Port=10051 //zabbix_agent端口

 

DatabaseList=DB1,DB2 //数据库主机名称,多个数据库用逗号分隔,名称与该主机在zabbix中监控的主机名称保持一致

DB1.Url=jdbc:oracle:thin:@127.0.0.1:1521:orcl//DB1与上面的DatabaseList名字一致,DB1 orcl 为数据库的instance名

DB1.User=zabbix

DB1.Password=Zabbix

DB1.MaxActive=10

DB1.MaxWait=100

DB1.MaxIdle=1

DB1.QueryListFile=./conf/query.props

 

结束配置,运行./run.sh

#systemctl start orabbix

#ps -ef | grep orabbix

 

 
  zabbix监控Oracle,使用插件orabbix_第2张图片


Check prot

 

完成。

到zabbix web界面上添加 full模板配置主机就OK啦。

你可能感兴趣的:(zabbix)