zabbix想要监控Oracle数据库,需要在server端安装一个插件用于连接zabbix server和Oracle数据库——orabbix。
orabbix官网:http://www.smartmarmot.com
orabbix官网下载地址:https://sourceforge.net/projects/orabbix/files/orabbix-1.2.3.zip/download 需要翻墙
安装要求
zabbix server版本1.8以上;
Java Runtime Environment 6;
目前已知的成功测试了Oracle主机平台
RHEL5.X (CentOS 5.4 & 5.5)
Windows 2003 (with Java SE 1.6)
HP-UX 11.31
AIX 5.3
目前已知的测试Oracle版本
10g
10.2
注意:不需要为orabbix安装任何类型的客户端
在被监控的数据库服务器上配置
创建Oracle用户
为orabbix访问Oracle数据库创建一个用户(ZABBIX),可以使用一下命令:
CREATE USER ZABBIX
IDENTIFIED BY ******
DEFAULT TABLESPACE SYSTEM
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT
ACCOUNT UNLOCK;
授权
GRANT CONNECT TO ZABBIX;
GRANT RESOURCE TO ZABBIX;
ALTER USER ZABBIX DEFAULT ROLE ALL;
GRANT SELECT ANY TABLE TO ZABBIX;
GRANT CREATE SESSION TO ZABBIX;
GRANT SELECT ANY DICTIONARY TO ZABBIX;
GRANT UNLIMITED TABLESPACE TO ZABBIX;
注意:
如果你想创建的这个用户权限最小,可以参考以下方案:
CREATE USER ZABBIX
IDENTIFIED BY
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,你需要做以下操作放开ACL访问控制,否则在监控过程中有部分内容无法显示:
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;
你可以运行以下命令来验证正确性:
select utl_inaddr.get_host_name('127.0.0.1') from dual;
另:在sqlplus中敲代码时因不能退格和上下键翻看历史记录特别烦恼?
自从有了rlweap,妈妈再也不用担心我的sqlplus了。(请点击rlweap进行跳转)
安装 (zabbix server端)
下载orabbix-1.2.3.zip
解压到/opt/orabbix #可自选
mkdir /opt/orabbix
unzip -d /opt/orabbix orabbix-1.2.3.zip 俩个路径分别是:解压到哪个目录 包所在的目录
将启动文件复制到/etc/init.d/
orabbix]# cp init.d/orabbix /etc/init.d/orabbix
orabbix]# chmod a+x /etc/init.d/orabbix
orabbix]# chmod a+x run.sh
(Redhat)将orabbix设置为开机自启动:
chkconfig --add orabbix
chkconfig --list #检查
配置orabbix
在/opt/orabbix/conf/ 目录下有个叫config.props.sample的文件,将这个文件复制并改名为config.props
]# mv config.props.sample config.props
配置文件说明:
ZabbixServerList=ZabbixServer1,ZabbixServer2 #zabbix服务器列表,如果你没有zabbix proxy,只有一个zabbix服务器就不用管
ZabbixServer1.Address= #对应上面的zabbixserver1,填写zabbix服务器的IP地址
ZabbixServer1.Port= #zabbix服务器的端口
DatabaseList=DB1,DB2,DB3 #Oracle数据库名字列表,zabbix监控中的主机名必须是这里定义的名字,否则无法监控
DB1.Url=jdbc:oracle:thin:@server.domain.example.com:<LISTENER_PORT>:DB1
DB1.User=zabbix #上面创建的用于连接orabbix的用户名
DB1.Password=***** #密码
server.domain.example.com: 改为你的主机名或者IP地址,建议为IP地址
LISTENER_PORT:数据库的端口,如果你的数据库端口是默认的可以不写
DB1:你的数据库SID PS:如果不知道你数据库的SID,或许百度会知道
例:
DatabaseList=orcl-01,DB2,DB3
orcl-01.Url=jdbc:oracle:thin:@10.5.10.5:1521:XE
orcl-01.User=zabbix
orcl.Password=*******
配置查询文件
在/opt/orabbix/conf下
mv query.props.sample query.props
启动orabbix
service orabbix start
如果报错run.sh文件第一行有问题,则说明你没有java环境,需要安装jdk或者openjdk
配置监控
将orabbix的监控模板下载到你本地并上传到zabbix的web界面中的模板里
在/opt/orabbix/template 这个路径下有个Orabbix_export_full.xml文件,将这个文件上传,如下
在configuration——Template中,右上角的Import
选择文件并导入,然后你就会发现我上面的图片中有个Template_Oracle的模板
至于怎么把模板链接到主机上,就不多说了。