zabbix无法直接监控oracle,因此我们需要借助第三方插件orabbix,oracle提供了众多的数据库性能监控。
系统环境:centos7
zabbix版本:3.4.2
Orabbix版本:1.2.3
Oracle:oracle 11g
#su - oracle
#export ORACLE_SID=test
#sqlplus /nolog
#conn /as sysdba
执行以下sql
create user zabbix identified by "zabbix" default tablespace system 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或以上,所以还需要添加以下命令:
execdbms_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;
到官方http://www.oracle.com/technetwork/java/javase/downloads/ 下载jre或jdk 安装即可,使用命令java –version有版本号码。
地址:http://www.smartmarmot.com/product/orabbix/download/
mkdir /opt/orabbix
mv orabbix-1.2.3.zip /opt/orabbix
cd /opt/orabbit
unzip orabbix-1.2.3.zip
chmod a+x /opt/orabbix –R
cp /opt/orabbix/conf/config.props.sample /opt/orabbix/conf/config.props
[root@zabbix conf]#vi config.props
ZabbixServerList=ZabbixServer1
注:以上等号后的名字必须与下行中等号前名字保持一样。
ZabbixServer1.Address=192.168.101.230
ZabbixServer1.Port=10051
注:以上端口号为与Zabbix Server通讯的端口,我这里是将Orabbix与Zabbix装在同一台机器上的,如果不在同一台机器,那装Orabbix的机器需要先装Zabbix Agent,否则数据将无法传送到Zabbix Server。
#ZabbixServer2.Address=IP_ADDRESS_OF_ZABBIX_SERVER
#ZabbixServer2.Port=PORT_OF_ZABBIX_SERVER
注:以上本来行首是没有#号的,但我们这里没有第二个Zabbix Server,所以这里将它注销了。
OrabbixDaemon.PidFile=./logs/orabbix.pid
OrabbixDaemon.Sleep=300
OrabbixDaemon.MaxThreadNumber=100
DatabaseList=DB1,DB2
注:
1. 以上等号后的名字可以自己任意取名,但在Zabbix中添加Oracle Host时,必须用你在此设定的名字,否则无法监测。
2. 以上等号后面的值修改后,在下面的数据库连接定义=处,也需要修改相应的名字;
3. 这里建议使用Server Name-DBSID的方式来命名。
DatabaseList.MaxActive=10
DatabaseList.MaxWait=100
DatabaseList.MaxIdle=1
DB1.Url=jdbc:oracle:thin:@192.168.153.123:1521: ORCL
注:
1. 以上行开始的那个值,需要与之前DatabaseList后面的值保持一样。
2. 192.168.153.123为Oracle服务器的地址,1521为TNS Port,ORCL为DB SID。
DB1.User=system
DB1.Password=oracle
注:以上为访问数据库的用户名和密码
#Those values are optionals if not specified Orabbix is going to use thegeneral values.
DB1.MaxActive=10
DB1.MaxWait=100
DB1.MaxIdle=1
DB1.QueryListFile=./conf/query.props
#DB2.Url=jdbc:oracle:thin:@server2.domain.example.com:
#DB2.User=zabbix
#DB2.Password=zabbix_password
#DB2.QueryListFile=./conf/query.props
#DB3.Url=jdbc:oracle:thin:@server3.domain.example.com:
#DB3.User=zabbix
#DB3.Password=zabbix_password
#DB3.QueryListFile=./conf/query.props
#cp -a /opt/orabbix/init.d/orabbix /etc/init.d/orabbix
#/etc/init.d/orabbix start
#Starting Orabbix service:
# ps aux |grep orabbix
如果以上的config.props文件没有配置,或是配置了,但无法通过配置的信息正确连进Oracle数据库的话,执行以上命令,可是run.sh会出现如下的错误提示
[root@zabbix orabbix]# /etc/init.d/orabbix start
cat: /opt/orabbix/conf/config.props: No such file ordirectory
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)
[root@zabbix orabbix]# ./run.sh
[root@zabbix orabbix]# Stopping
java.lang.Exception: ERROR on main - Connections is empty
atcom.smartmarmot.orabbix.Orabbixmon.run(Orabbixmon.java:101)
at com.smartmarmot.orabbix.bootstrap.main(bootstrap.java:50)。
模板在/opt/orabbix/template
Orabbix_export_full.xml 全部导入(图表 监控项 触发器)
Orabbix_export_graphs.xml 图表
Orabbix_export_items.xml 监控项
Orabbix_export_triggers.xml 触发器
主机名必须跟config.props里面定义的名称的配置保持一致