说明:

因为zabbix-agent2方式监控oracle数据库,仅支持oracle12及以上的版本,所以对于oracle11及一下的版本,就只能通过ODBC的方式来监控了。

对于通过ODBC的方式监控oracle11系列数据库,只需要在被监控的ORACLE数据库服务器安装zabbix-agent或zabbix-agent2客户端就可以了,其它的都是在zabbix Server端操作

需要创建一个用于zabbix监控的数据库账号,并给与相应的权限

CREATE USER zabbix_mon IDENTIFIED BY <PASSWORD>;
-- Grant access to the zabbix_mon user.
GRANT CONNECT, CREATE SESSION TO zabbix_mon;
GRANT SELECT ON v$instance TO zabbix_mon;
GRANT SELECT ON v$database TO zabbix_mon;
GRANT SELECT ON v$sysmetric TO zabbix_mon;
GRANT SELECT ON v$system_parameter TO zabbix_mon;
GRANT SELECT ON v$session TO zabbix_mon;
GRANT SELECT ON v$recovery_file_dest TO zabbix_mon;
GRANT SELECT ON v$active_session_history TO zabbix_mon;
GRANT SELECT ON v$osstat TO zabbix_mon;
GRANT SELECT ON v$restore_point TO zabbix_mon;
GRANT SELECT ON v$process TO zabbix_mon;
GRANT SELECT ON v$datafile TO zabbix_mon;
GRANT SELECT ON v$pgastat TO zabbix_mon;
GRANT SELECT ON v$sgastat TO zabbix_mon;
GRANT SELECT ON v$log TO zabbix_mon;
GRANT SELECT ON v$archive_dest TO zabbix_mon;
GRANT SELECT ON v$asm_diskgroup TO zabbix_mon;
GRANT SELECT ON sys.dba_data_files TO zabbix_mon;
GRANT SELECT ON DBA_TABLESPACES TO zabbix_mon;
GRANT SELECT ON DBA_TABLESPACE_USAGE_METRICS TO zabbix_mon;
GRANT SELECT ON DBA_USERS TO zabbix_mon;

配置步骤

以下步骤在zabbix Server服务器上操作

1.下载数据库对应的客户端和odbc驱动

我要监控的Oracle版本是11.2.0.4,不过我下载的是oracle12.2.0.1版本的驱动,测试结果是可以兼容的。

地址:https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
文件名:oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
    oracle-instantclient12.2-odbc-12.2.0.1.0-2.x86_64.rpm

2. 安装oracle客户端和odbc驱动

先测试安装,验证是否缺失对应的依赖包,例如libaio、libaio-devel

rpm -ivh oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm --test
rpm -ivh oracle-instantclient12.2-odbc-12.2.0.1.0-2.x86_64.rpm --test

如果没有问题,则去掉–test进行正式安装。

3. 确定orcle客户端和ODBC驱动的安装目录

rpm -ql oracle-instantclient12.2-basic
rpm -ql oracle-instantclient12.2-odbc

通过上面的两条命令,可以发现,oracle客户端和odbc驱动是安装在了相同的目录下:

/usr/lib/oracle/12.2/client64/lib

4.配置LD路径

vim /etc/ld.so.conf.d/oracle-instantclient.conf

这个文件可能不存在,如果不存在,需要手动创建

增加一条记录
/usr/lib/oracle/12.2/client64/lib
保存退出
执行命令:

ldconfig

5.检查全局的dll链接库配置是否正确

ldconfig -p | grep oracle

输出结果类似如下:
libsqora.so.12.1 (libc6,x86-64) => /usr/lib/oracle/12.2/client64/lib/libsqora.so.12.1
liboramysql12.so (libc6,x86-64) => /usr/lib/oracle/12.2/client64/lib/liboramysql12.so
libons.so (libc6,x86-64) => /usr/lib/oracle/12.2/client64/lib/libons.so
libocijdbc12.so (libc6,x86-64) => /usr/lib/oracle/12.2/client64/lib/libocijdbc12.so
libociei.so (libc6,x86-64) => /usr/lib/oracle/12.2/client64/lib/libociei.so
libocci.so.12.1 (libc6,x86-64) => /usr/lib/oracle/12.2/client64/lib/libocci.so.12.1
libnnz12.so (libc6,x86-64) => /usr/lib/oracle/12.2/client64/lib/libnnz12.so
libmql1.so (libc6,x86-64) => /usr/lib/oracle/12.2/client64/lib/libmql1.so
libipc1.so (libc6,x86-64) => /usr/lib/oracle/12.2/client64/lib/libipc1.so
libclntshcore.so.12.1 (libc6,x86-64) => /usr/lib/oracle/12.2/client64/lib/libclntshcore.so.12.1
libclntsh.so.12.1 (libc6,x86-64) => /usr/lib/oracle/12.2/client64/lib/libclntsh.so.12.1
libclntsh.so (libc6,x86-64) => /usr/lib/oracle/12.2/client64/lib/libclntsh.so

6.验证被监控数据库服务器的端口是否正常

telnet 192.169.0.234 1521

7.安装ODBC连接器【如果还没有安装过】

yum -y install unixODBC unixODBC-devel

安装完成后,会在/etc目录生成两个文件odbcinst.ini和odbc.ini,如果没有自动生成,可以手动创建

 8.配置odbc.ini和odbcinst.ini

在安装完oracle-instantclient12.2-odbc后,会自动释放一个可执行脚本文件,用于自动配置odbc.ini和odbcinst.ini
位置如下:
/usr/share/oracle/12.2/client64/odbc_update_ini.sh
可以参考脚本中内容来编辑这两个文件,或者直接执行这个文件,需要带参数执行
odbcinst.ini中添加如下内容:

[Oracle 12c ODBC driver]
Description     = Oracle ODBC driver for Oracle 12c
Driver          = /usr/lib/oracle/12.2/client64/lib/libsqora.so.12.1

执行命令对配置的驱动做检查,确保没有错误

ldd /usr/lib/oracle/12.2/client64/lib/libsqora.so.12.1

可能会报错没有执行权限,添加可执行权限【如果没有错误,则本步骤省略】

chmod g+wx /usr/lib/oracle/12.2/client64/lib/libsqora.so.12.1

odbc.ini中添加类似如下内容

[Oracle11g]
AggregateSQLType = FLOAT
Application Attributes = T
Attributes = W
BatchAutocommitMode = IfAllSuccessful
BindAsFLOAT = F
CacheBufferSize = 20
CloseCursor = F
DisableDPM = F
DisableMTS = T
DisableRULEHint = T
Driver = Oracle 12c ODBC driver   #需要与odbcinst.ini中定义的名称一致
DSN = Oracle11g
EXECSchemaOpt =
EXECSyntax = T
Failover = T
FailoverDelay = 10
FailoverRetryCount = 10
FetchBufferSize = 64000
ForceWCHAR = F
LobPrefetchSize = 8192
Lobs = T
Longs = T
MaxLargeData = 0
MaxTokenSize = 8192
MetadataIdDefault = F
QueryTimeout = T
ResultSets = T
ServerName = 192.169.0.234:1521/[oracle的SID]     #ip:port/oracle_sid
SQLGetData extensions = F
SQLTranslateErrors = F
StatementCache = F
Translation DLL =
Translation Option = 0
UseOCIDescribeAny = F
UserID = zabbix_mon
Password = <PASSWORD>    #可选参数,可以在模板中设置

9.测试配置

isql -v Oracle11g
输出类似如下:
+—————————————+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+—————————————+

10. 下载并导入Template DB Oracle by ODBC模板

zabbix5.0默认标准的模板没有Template DB Oracle by ODBC,需要去官网下载,不过新版的都被转成了yaml格式,所以可以下载早一点的版本的。

地址:https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/oracle_odbc?at=refs%2Ftags%2F5.0.13

下载后,在zabbix server的web端【Configration】->【Templates】下,点击右上角的Import,选择下载的文件,进行导入即可。

然后将该模板本配给对应的要监控的主机。

根据需要设置如下几个macro宏参数:

{$ORACLE.USER}    : zabbix_mon

{$ORACLE.PASSWORD} : <password>

 {$ORACLE.DSN} :  Oracle11g     # odbc.ini文件中设置的数据源名称

 

配置后,过几分钟就会有数据了。

 

原文地址:http://www.cnblogs.com/hyyx/p/16791128.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性