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