七 ORABBIX 安装
ORABBIX 是寄生于ZABBIX4上的插件,主要通过SQL语句收集ORACLE数据库的信息,然后在ZABBIX上画图,然后通过ZABBIX触发器和报警功能!
建议ORABBIX服务端安装在ZABBIX同一台服务器上,除非ZABBIX使用了中间代理组件外.
7.1安装java的jre
确保被监控的服务器安装java环境,可以直接到oracle官网下载对应的包安装。
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/
rpm -ivh jre-7u67-linux-x64.rpm
Preparing... ######################## [100%]
1:jre ######################[100%]
Unpacking JAR files...
rt.jar...
jsse.jar...
charsets.jar...
localedata.jar...
jfxrt.jar...复制
#vi etc/bashrc 或者 #vi etc/profile (修改的文件不同,就是这两种方法的唯一区别)
然后添加
JAVA_HOME=/usr/java/jdk1.7.0_03
JAVA_BIN=/usr/lib/jdk1.7.0_03/bin
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BINPATH CLASSPATH复制
最后,在Shell提示符下输入java -version,如果成功输出正确的版本信息,说明安装成功了
7.2安装orabbix
下载地址:http://www.smartmarmot.com/product/orabbix/download/
下面是本人提供的百度网盘,有相关的ZABBIX源码编译插件和RPM
还有完整的安装好的目录2GB 可供参考
1ORABBIX4
2
3链接:https://pan.baidu.com/s/1ybtWQmoi-Bl0xA4ZdIf5Sg
4
5提取码:q01z复制
7.3.创建目录
创建orabbix文件。orabbix启动文件默认写在/opt/orabbix目录下,也可以修改一下orabbix启动脚本的路径,没有必要多费功夫。
mkdir /u01/LNAMP/orabbix
mv orabbix-1.2.3.zip /u01/LNAMP/orabbix
cd /u01/LNAMP/orabbix
unzip orabbix-1.2.3.zip复制
7.4授予文件可执行的权限
#chmod a+x u01/LNAMP/orabbix -R
7.5创建配置文件
有模板可以参考。名字不能随意更改!并且修改confi.props配置文件,仅需修改如下内容即可(以下内容根据本例实际环境编写)
cp /u01/LNAMP/orabbix/conf/config.props.sample /u01/LNAMP/orabbix/conf/config.props
cat /u01/LNAMP/orabbix/conf/config.props|grep -v "#"
ZabbixServerList=ZabbixServer #zabbix名称
ZabbixServer.Address=192.168.50.72 #zabbix服务端的IP地址
ZabbixServer.Port=10051 #zabbix服务端的监控端口
OrabbixDaemon.PidFile=./logs/orabbix.pid
OrabbixDaemon.Sleep=300
OrabbixDaemon.MaxThreadNumber=100
DatabaseList=jy-ovaryeb01hsd-oracle #这个名称可以随便起,但是必须跟web监控、agent的主机名保持一致。
DatabaseList.MaxActive=10
DatabaseList.MaxWait=100
DatabaseList.MaxIdle=1
jy-ovaryeb01hsd-oracle.Url=jdbc:oracle:thin:@192.168.120.252:1521:orcl复制
#这里主要是通过JDBC来连接客户端的。orcl是数据库的实例名称(只能实列名称)。1521是监听端口
jy-ovaryeb01hsd-oracle.User=zabbix #数据库用户zabbix
jy-ovaryeb01hsd-oracle.Password=zabbix #数据库用户密码
jy-ovaryeb01hsd-oracle.MaxActive=10
jy-ovaryeb01hsd-oracle.MaxWait=100
jy-ovaryeb01hsd-oracle.MaxIdle=1
jy-ovaryeb01hsd-oracle.QueryListFile=./conf/query.props #监控语句复制
7.6启动服务和查看进程
Vi /u01/LNAMP/orabbix/init.d/orabbix
orabbix=/u01/LNAMP/orabbix
cp -a /u01/LNAMP/orabbix/init.d/orabbix /etc/init.d/orabbix(开机自动启动)
/etc/init.d/orabbix start
Starting Orabbix service:复制
在启动服务过程中通过 tail -f u01/LNAMP/orabbix/logs/orabbix.log日志查看启动信息。
Orabbix服务加入随系统启动:
chkconfig --add orabbix
chkconfig --level 345 orabbix on
7.7导入模板。
在zabbix的GUI管理界面上添加监控的主机前需要先导入oracle数据库的监控模板,将该模板 Orabbix_export_full.xml 下载到本机,选取Orabbix_export_full.xml导入。
#cd u01/LNAMP/orabbix/template.
[root@zabbix template]# ll
total 236
-rwxr-xr-x 1 root root 107257Oct 25 2011 Orabbix_export_full.xml
-rwxr-xr-x 1 root root 21399 Oct 25 2011 Orabbix_export_graphs.xml
-rwxr-xr-x 1 root root 86724 Oct 25 2011 Orabbix_export_items.xml
-rwxr-xr-x 1 root root 4911 Oct 25 2011 Orabbix_export_triggers.xml
Orabbix_export_full.xml 全部导入(图表监控项触发器)
Orabbix_export_graphs.xml 图表
Orabbix_export_items.xml 监控项
Orabbix_export_triggers.xml 触发器
也可以再模版中找到此模版。然后将需要的信息直接cp过去,比如打开此处的监控项,把它全部复制到oracle主机下,触发器、图像显示同理!
7.8添加主机
(host name必须跟config.props里面定义的名称的配置保持一致)如下图
7.9添加的host与模板相关联
点击’select‘选择‘Orabbix_export_full.xml‘模板
ORABBIXB模板上有关内存的监控项跟LINUX系统的发生冲突,建议把它删除
7.10 数据库端ORABBIX设置
数据库操作
1) #su - oralce登录 oracle 命令行
#sqlplus as sysdba
2) 创建zabbix用户可以现成的管理账号
create user zabbix identified by zabbix defaulttablespace system temporary tablespace temp profile default account unlock;
3) 赋予zabbix一切查看权限
GRANT CONNECT TOZABBIX;
GRANT RESOURCE TOZABBIX;
ALTER USER ZABBIXDEFAULT ROLE ALL;
GRANT SELECT ANYTABLE TO ZABBIX;
GRANT CREATESESSION TO ZABBIX;
GRANT SELECT ANYDICTIONARY TO ZABBIX;
GRANT UNLIMITEDTABLESPACE TO ZABBIX;
GRANT SELECT ANYDICTIONARY TO ZABBIX;
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;复制
备库好像不支持不太好,容易导致错误
ERROR Orabbix - Error on DBEnquiry on query=lio_consistent_read on database=PBSDG Error returned is java.lang.IllegalArgumentException: null value for key 'lio_consistent_read'
还导致我备库报警
Errors in file /u01/ora_logs/orcl/diag/rdbms/orcl_st2/orcl/trace/orcl_ora_23194.trc:
Errors in file /u01/ora_logs/orcl/diag/rdbms/orcl_st2/orcl/trace/orcl_ora_23194.trc (incident=300502):
ORA-00600: internal error code, arguments: [psdnop-1], [8181], [], [], [], [], [], [], [], [], [], []
ORA-08181: specified number is not a valid system change number
一个查询 会导致如此厉害
4) 如果是11G的数据库版本,还需要执行下面的语句开放ACL的访问控制,否则在监控的过程中有部份内容无法正常显示(例于数据库版本,数据库文件大小等),而且orabbix的日志显示中也会有以下的错误提示。
exec dbms_network_acl_admin.create_acl(acl =>'resolve.xml',description => 'resolve acl', principal =>’DBA_MONITER’,is_grant => true, privilege => 'resolve');
exec dbms_network_acl_admin.assign_acl(acl =>'resolve.xml', host =>'*');
commit;复制
设置完成后,可以通过以下的语句查看添加的状态。
selectutl_inaddr.get_host_name('127.0.0.1') from dual;
复制
7.11创建图表
创建图表,部分效果如下:
7.11常见问题
若config.props文件未配置,或是配置了错误,无法通过配置的信息正确连进Oracle数据库的,会出现以下错误信息
[root@zabbix orabbix]# /etc/init.d/orabbix start
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)
可查看log信息判断解决
[root@oracle orabbix]# tail -f /u01/LNAMP/orabbix/logs/orabbix.log
问题二主机名字要一直
被监控的ORACLE数据库上的ZABBIX_AGENT 上的主机名字
ORABBIX上的DatabaseList=主机名字
ZABBIX服务端网页上的主机名字 要一致.