简介:
Orabbix是一个用来实时监控Oracle数据库的zabbix插件,其中下载地址为:
http://www.smartmarmot.com/product/orabbix/download/
zabbix不能直接监控到Oracle数据库,需要通过Orabbix插件来监控
Orabbix可安装在zabbix server端,也可以安装在zabbix agent端,为了数据库服务器的独立性,这里选择安装则zabbix server端
注意:这里不提供zabbix相关的安装内容
一、环境准备(仅供参考)
服务器:
192.168.189.133:
1、已安装zabbix server
2、操作系统:CentOS 6.9
3、需要安装Orabbix
192.168.189.134:
1、已安装zabbix agent
2、已安装Oracle数据库
:
二、配置步骤(如无特别说明,则都在zabbix server中操作):
1、确认java jdk是否已安装,以为Orabbix基于java
java -version
如果没有安装则通过yum来安装
yum install java
2、在/opt目录下新建一个orabbix目录
mkdir -p /opt/orabbix
注:建议放在/opt目录下,因为orabbix的启动文件默认写在/opt/orabbix目录下
3、上传orabbix的压缩包到服务器
4、解压压缩包
unzip orabbix-1.2.3.zip
5、赋予orabbix目录权限
chmod -R a+x /opt/orabbix/
6、将默认的配置文件复制一份作为正式配置文件
cp /opt/orabbix/conf/config.props.sample /opt/orabbix/conf/config.props
7、编辑配置文件
vim /opt/orabbix/conf/config.props
具体需要编辑的内容如下:
这里需要特别注意的是,zabbix服务器的Address、Port等和数据库Url、User等参数的属性,都要与ZabbixServerList和DatabaseList中所填写的一致
DatabaseList中,建议填写的是:主机名-数据库实例名
同时,后面在zabbix中添加host时,host的名字需要与DatabaseList中所填写的一致
8、创建执行文件
cp /opt/orabbix/init.d/orabbix /etc/init.d/orabbix
9、在数据库中创建监控用户(在被监控端执行)
如果没启动数据库则执行以下命令,如果启动了则跳过:
su oracle
lsnrctl start
sqlplus / as sysdba
startup
使用管理员进入到数据库:
sqlplus / as sysdba
创建用户:
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;
如果数据库版本是11g,那么还需要执行下面的语句来开放ACL的访问控制,否则在监控过程中会有部分内容无法显示,而且orabbix的日志也会有错误提示(zabbix是大写的):
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;
10、回到zabbix server端,开启相关服务
开启zabbix server:
/etc/init.d/zabbix_server start
或者
/usr/local/zabbix/sbin/zabbix_server &
开启zabbix_agentd:
/etc/init.d/zabbix_agentd start
或者
/usr/local/zabbix/sbin/zabbix_agentd &
开启orabbix服务:
/etc/init.d/orabbix start
11、开启zabbix agent端的服务(在zabbix agent端)
/etc/init.d/zabbix_agentd start
12、查看zabbix server和orabbix的日志,如果没有报错则说明启动成功
常见启动报错如下:
Starting Orabbix service:
[root@zabbix orabbix]# Stopping
java.lang.Exception: ERROR on main - Connections is empty
atcom.smartmarmot.orabbix.Orabbixmon.run(Orabbixmon.java:101)
atcom.smartmarmot.orabbix.bootstrap.main(bootstrap.java:50)
一般都是config.props配置文件未配置或者配置有误,重新检查
也可通过日志查看
tail -f /opt/orabbix/logs/orabbix.log
13、在web端中导入相关模板
模板文件都在/opt/orabbix/template目录下
这里只导入Orabbix_export_full.xml文件
将该文件下载到本地
然后进入zabbix web端
选择模板导入
需要注意的是,这里有可能会提示host template已存在而导入失败,那么需要打开模板文件进行修改,所需修改地方如下,将其改为不与已有的冲突即可:
然后在host中添加模板:
监控效果图: