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可执行文件以供重用的区域)
会话/流程
会话(活动会话,非活动会话,系统会话)
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
Check prot
完成。
到zabbix web界面上添加 full模板配置主机就OK啦。