Home » Default » Zabbix6.4通过ODBC监控Oracle数据库简要记录

首先,我们必须下载以下软件包并安装:

oracle-instantclient19.20-tools-19.20.0.0.0-1.x86_64.rpm
oracle-instantclient19.20-basic-19.20.0.0.0-1.x86_64.rpm
oracle-instantclient19.20-devel-19.20.0.0.0-1.x86_64.rpm
oracle-instantclient19.20-odbc-19.20.0.0.0-1.x86_64.rpm
oracle-instantclient19.20-sqlplus-19.20.0.0.0-1.x86_64.rpm
unixODBC
然后执行ldconfig -p | grep oracle,应该有以下输出:

libsqora.so.19.1 (libc6,x86-64) =>
/usr/lib/oracle/19.20/client64/lib/libsqora.so.19.1 libsqlplusic.so
(libc6,x86-64) => /usr/lib/oracle/19.20/client64/lib/libsqlplusic.so
libsqlplus.so (libc6,x86-64) =>
/usr/lib/oracle/19.20/client64/lib/libsqlplus.so liboramysql19.so
(libc6,x86-64) => /usr/lib/oracle/19.20/client64/lib/liboramysql19.so
libocijdbc19.so (libc6,x86-64) =>
/usr/lib/oracle/19.20/client64/lib/libocijdbc19.so libociei.so
(libc6,x86-64) => /usr/lib/oracle/19.20/client64/lib/libociei.so
libocci.so.19.1 (libc6,x86-64) =>
/usr/lib/oracle/19.20/client64/lib/libocci.so.19.1 libnnz19.so
(libc6,x86-64) => /usr/lib/oracle/19.20/client64/lib/libnnz19.so
libmql1.so (libc6,x86-64) =>
/usr/lib/oracle/19.20/client64/lib/libmql1.so libipc1.so
(libc6,x86-64) => /usr/lib/oracle/19.20/client64/lib/libipc1.so
libheteroxa12.so (libc6,x86-64) =>
/usr/lib/oracle/12.2/client64/lib/libheteroxa12.so
libclntshcore.so.19.1 (libc6,x86-64) =>
/usr/lib/oracle/19.20/client64/lib/libclntshcore.so.19.1
libclntshcore.so (libc6,x86-64) =>
/usr/lib/oracle/19.20/client64/lib/libclntshcore.so libclntsh.so.19.1
(libc6,x86-64) => /usr/lib/oracle/19.20/client64/lib/libclntsh.so.19.1
libclntsh.so (libc6,x86-64) =>
/usr/lib/oracle/19.20/client64/lib/libclntsh.so

/etc/profile中的最后添加下列四行:

export ORACLE_HOME=/usr/lib/oracle/19.20/client64
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib64:/usr/lib:$ORACLE_HOME/bin
export TNS_ADMIN=$ORACLE_HOME/network/admin

执行source /etc/profile

执行cat /etc/ld.so.conf.d/oracle-instantclient.conf

将输出:

/usr/lib/oracle/19.20/client64/lib

$ORACLE_HOME/network/admin中增加tnsnames.ora并配置
执行/usr/lib/oracle/19.12/client64/bin/odbc_update_ini.sh / /usr/lib/oracle/19.12/client64/lib

将输出:

* ODBCINI environment variable not set,defaulting it to HOME
directory!
cat /etc/odbcinst.ini

将输出:

[Oracle 19 ODBC driver] Description = Oracle ODBC driver for
Oracle 19 Driver =
/usr/lib/oracle/19.20/client64/lib/libsqora.so.19.1
Setup =
FileUsage =
CPTimeout =
CPReuse =

执行ldd /usr/lib/oracle/19.12/client64/lib/libsqora.so.19.1
它将打印类似以下内容:

linux-vdso.so.1 (0x00007fff121b5000) libdl.so.2 => /lib64/libdl.so.2
(0x00007fb18601c000) libm.so.6 => /lib64/libm.so.6
(0x00007fb185c9a000) libpthread.so.0 => /lib64/libpthread.so.0
(0x00007fb185a7a000) libnsl.so.1 => /lib64/libnsl.so.1
(0x00007fb185861000) librt.so.1 => /lib64/librt.so.1
(0x00007fb185659000) libaio.so.1 => /lib64/libaio.so.1
(0x00007fb185456000) libresolv.so.2 => /lib64/libresolv.so.2
(0x00007fb18523f000) libclntsh.so.19.1 =>
/usr/lib/oracle/19.12/client64/lib/libclntsh.so.19.1
(0x00007fb1810e6000) libclntshcore.so.19.1 =>
/usr/lib/oracle/19.12/client64/lib/libclntshcore.so.19.1
(0x00007fb180b42000) libodbcinst.so.2 => /lib64/libodbcinst.so.2
(0x00007fb18092c000) libc.so.6 => /lib64/libc.so.6
(0x00007fb180567000) /lib64/ld-linux-x86-64.so.2 (0x00007fb1864da000)
libnnz19.so => /usr/lib/oracle/19.12/client64/lib/libnnz19.so
(0x00007fb17fdba000) libltdl.so.7 => /lib64/libltdl.so.7
(0x00007fb17fbb0000)
cat /root/.odbc.ini | sudo tee -a /etc/odbc.ini
rm /root/.odbc.ini
vi /etc/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 19 ODBC driver
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 = //10.1.10.15:1521/xe
SQLGetData extensions = F
SQLTranslateErrors = F
StatementCache = F
Translation DLL =
Translation Option = 0
UseOCIDescribeAny = F
UserID = username
Password = password*

执行isql -v Oracle11g
如果连接成功,它应该打印:
Connected!
sql-statement
help [tablename]
quit

在zabbix中增加主机,加载 Oracle by ODBC模板,并增加下列宏

{$ORACLE.DRIVER} /usr/lib/oracle/19.20/client64/lib/libsqora.so.19.1
{$ORACLE.DSN} Oracle11g
{$ORACLE.USER} username
{$ORACLE.PASSWORD} password
{$ORACLE.SERVICE} 服务名

标签: none

添加新评论

V