zabbix-ODBC-oracle
odbc版本向下兼容,本次使用的是18.5版本的
在zabbix-server上安装
yum -y install unixODBC unixODBC-devel
下载以下4个包
-rw-r--r-- 1 root root 51528664 6月 3 12:27 oracle-instantclient18.5-basic-18.5.0.0.0-3.x86_64.rpm
-rw-r--r-- 1 root root 609896 6月 3 12:25 oracle-instantclient18.5-devel-18.5.0.0.0-3.x86_64.rpm
-rw-r--r-- 1 root root 257264 6月 3 12:24 oracle-instantclient18.5-odbc-18.5.0.0.0-3.x86_64.rpm
-rw-r--r-- 1 root root 709112 6月 3 12:26 oracle-instantclient18.5-sqlplus-18.5.0.0.0-3.x86_64.rpm
本地安装
yum localinstall oracle-instantclient18.5-*
安装位置分别在
/usr/share/oracle/18.5/client64
/usr/include/oracle/18.5/client64
/usr/lib/oracle/18.5/client64
设置环境变量之前,在/usr/lib/oracle/18.5/client64下创建network/admin文件夹,
mkdir /usr/lib/oracle/18.5/client64/network/admin -p
配置sqlplus连接扩展
network/admin下创建tnsnames.ora
test_oracle=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = IP)(PORT = PORT))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = 数据库SID)
)
)
创建sqlnet.ora 作用是配置解析顺序, name/password@xxxxx xxxx会先去tnsnames寻找这个名字,没有的话会解析为ip
NAME_DIRECTORY_PATH=(TNSNAMES,EZCONNECT)
配置环境变量
环境变量必须配置,否则会造成[01000] [unixODBC][Driver Manager]Can't open lib '/usr/lib64/lxxxxx.so' : file not found
export ORACLE_HOME=/usr/lib/oracle/18.5/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib64:$LD_LIBRARY_PATH
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
配置需要的类库
chmod +x /usr/lib/oracle/18.5/client64/lib/libsqora.so.18.1
cd /usr/lib64/
ln -s libodbcinst.so.2.0.0 libodbcinst.so.1
添加oracle驱动
# vim /etc/odbcinst.ini
[oracle]
Description = Oracle ODBC driver for Oracle 11g
Driver = /usr/lib/oracle/18.5/client64/lib/libsqora.so.18.1
添加oracle数据源
# vim /etc/odbc.ini
[DSN名称] 将在zabbix item key中使用
Driver= oracle tnsnames.ini 配置的驱动名称
ServerName= ip:port/sid ip:port/sid
UserID= 用户名 用户名
Password= 密码 密码
isql测试
isql -v test
检测是否可连接及中间如遇到报错的错误信息
isql test
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
sqlplus测试连接
# sqlplus 用户名/密码@tnsnames.ora中配置的连接名称
SQL*Plus: Release 11.2.0.3.0 Production on Wed Jul 19 11:39:18 2017
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> exit
zabbix配置
出现的问题
- 以nologin用户启动的监控系统,配置上监控项之后,报错
需要查找zabbix服务的环境变量文件 没有则新建 默认情况在 /etc/sysconfig 下 server 新建zabbix-server proxy新建zabbix-proxy
对于自定义的zabbix服务,可以查询相关的service文件查找环境变量文件路径
cat /usr/lib/systemd/system/sdata-server.service
编辑该文件即可
在其中添加
vim /etc/sysconfig/zabbix-server
LD_LIBRARY_PATH=/usr/lib/oracle/18.5/client64/lib
重启servewr服务即可
官方issue https://support.zabbix.com/browse/ZBX-12450
sql的自动发现
https://www.zabbix.com/documentation/4.0/zh/manual/discovery/low_level_discovery/sql_queries