【zabbix】 zabbix用ODBC的方式监控Oracle数据库
查询语句SELECT * FROM v$version;点测试。
环境描述
操作系统:centos stream 8或者9 、Ubuntu系统
zabbix环境:zabbix6或者7
一、19C客户端安装(在Zabbix Server做操作)
1、 19C客户端下载
1.1 #创建zabbix目录,进入zabbix目录
[root@server ~]# mkdir -p /zabbix
[root@server ~]# cd /zabbix
1.2 安装包下载到本地
以下为官方下载地址
https://download.oracle.com/otn_software/linux/instantclient/199000/oracle-instantclient19.9-basic-19.9.0.0.0-1.x86_64.rpm
https://download.oracle.com/otn_software/linux/instantclient/199000/oracle-instantclient19.9-sqlplus-19.9.0.0.0-1.x86_64.rpm
https://download.oracle.com/otn_software/linux/instantclient/199000/oracle-instantclient19.9-devel-19.9.0.0.0-1.x86_64.rpm
https://download.oracle.com/otn_software/linux/instantclient/199000/oracle-instantclient19.9-odbc-19.9.0.0.0-1.x86_64.rpm
1.3 也可以用wget我这个链接直接拉这四个安装包,ssh登录到你的zabbix服务器
wget https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient/x86_64/getPackage/oracle-instantclient19.22-odbc-19.22.0.0.0-1.x86_64.rpm
wget https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient/x86_64/getPackage/oracle-instantclient19.22-sqlplus-19.22.0.0.0-1.x86_64.rpm
wget https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient/x86_64/getPackage/oracle-instantclient19.22-basic-19.22.0.0.0-1.x86_64.rpm
wget https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient/x86_64/getPackage/oracle-instantclient19.22-devel-19.22.0.0.0-1.x86_64.rpm
2、客户端安装
2.1 安装
[root@server ~]yum localinstall oracle-instantclient19.22-*
#查看安装结果
find / -name client64
rpm -qa |grep oracle
注意:实现配置好本地yum
2.2 查看安装位置
#oracle-instantclient的安装位置如下
[root@server ~]# find / -name client64
/usr/lib/oracle/19.9/client64
/usr/share/oracle/19.9/client64
/usr/include/oracle/19.9/client64
2.3 在Ubuntu系统中驱动包安装方法:
#如果是Ubuntu的系统,安装方法:
#要安装alien工具
sudo apt-get install alien
#用以下命令将.rpm包转换为.deb包:
alien oracle-instantclient19.22-*
#最后,使用dpkg安装转换后的.deb包:
dpkg -i oracle-instantclient19.22-*.deb
安装完后执行下面第三步配置份环境变量,运行sqlplus测试连接,如果报错 libaio.so.1不存在就安装一下依赖
sudo apt-get install libaio*
ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/libaio.so.1
二、数据库相关操作(被监控的数据库服务器上操作)
1、 确认监听状态
## 保证好数据库监听和实例是运行状态
[root@server ~]# su - oracle
[root@server ~]$ lsnrctl status
[root@server ~]$ lsnrctl start
2、 实例名及服务名
SQL> show parameter name
SQL> show pdbs
3、Zabbix用户创建
--开PDB库
SQL> alter pluggable database PDB2 open;
SQL> select name,cdb from v$database;
--CDB切到PDB
SQL> alter session set container = PDB2;
SQL> create user zabbix identified by zabbix;
SQL> grant dba to zabbix;
注:担心权限过大可使用下面的脚本
create user zabbix identified by zabbix 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 ;
GRANT SELECT ANY DICTIONARY TO zabbix ;
三、客户端配置(在Zabbix Server做操作)
1、 配置环境变量
vi /etc/profile
cat >> /etc/profile << "EOF"
export ORACLE_HOME=/usr/lib/oracle/19.9/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
EOF
#环境变量生效
[root@server ~]# source /etc/profile
## 驱动
chmod +x /usr/lib/oracle/19.9/client64/lib/libsqora.so.19.1
2、 添加Oracle驱动
2.1 配置odbcinst.ini
vim /etc/odbcinst.ini
[Oracle]
Description=Oracle ODBC driver for Oracle 19c
Driver=/usr/lib/oracle/19.22/client64/lib/libsqora.so.19.1
2.2 配置odbc.ini
vim /etc/odbc.ini
[oracle93]
Driver = Oracle
ServerName = 10.90.1.93:1521/orclcdb
Port = 1521
UserID = zabbix
Password = zabbix
2.3 查看odbc配置
# odbcinst -j
unixODBC 2.3.1
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
---删除错误文件
# rm -rf /root/.odbc.ini
3、验证是否配置成功
用isql工具测试ODBC连接
root@zabbix7:~# isql -v OA
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
注:sqlplus 用户名/密码@IP/oracle数据库服务名 #如sqlplus zbbix/zbbix@IP:1521/cdb1
四、Zabbix监控(在Zabbix 前台网页页面做操作)
1.创建自定义监控项
1.1 在【主机】界面点击监控项,(自己写监控项的方式 ,后面有写用模板的方式监控)

1.2 右上角有【创建监控项】,(dsn名称在odbc.ini配置文件上)
查询语句SELECT * FROM v$version; 点测试


2.利用ODBC模板监控Oracle
2.1模板另存
配置-模板-Oracle by ODB-全克隆,另存为Oracle by ODBC_ip,点击应用户

2.2 配置主机
配置-主机-创建主机-选择模板Oracle by ODBC_ip

2.3 在模板宏的地方做以下创建
{$ORACLE.DRIVER} Oracle
{$ORACLE.PASSWORD} zabbix
{$ORACLE.PORT} 1521
{$ORACLE.SERVICE} orclcdb
{$ORACLE.USER} zabbix
{$HOST.CONN} 192.168.1.1

有的模板里面名字叫 {$ORACLE.HOST}
五、结果验证
在【监测】——【最新数据】里面查看结果,已经都采集到数据了。

更多推荐
所有评论(0)