写在安装前
zabbix6.2自带的oracle监控模板仅仅支持被动模式的zabbix
1. 安装ODBC
yum -y install unixODBC unixODBC-devel
2. 安装Oracle-instantclient
#以下所有操作使用root账号执行
#创建目录
mkdir -p /opt/oracle
cd /opt/oracle
#下载odbc安装包
wget https://download.oracle.com/otn_software/linux/instantclient/213000/oracle-instantclient-basic-21.3.0.0.0-1.x86_64.rpm
wget https://download.oracle.com/otn_software/linux/instantclient/213000/oracle-instantclient-sqlplus-21.3.0.0.0-1.x86_64.rpm
wget https://download.oracle.com/otn_software/linux/instantclient/213000/oracle-instantclient-devel-21.3.0.0.0-1.x86_64.rpm
wget https://download.oracle.com/otn_software/linux/instantclient/213000/oracle-instantclient-odbc-21.3.0.0.0-1.x86_64.rpm
#安装unixODBC和unixODBC-devel
yum -y install unixODBC unixODBC-devel
#安装oracle-instantclient
yum localinstall oracle-instantclient-*
#oracle-instantclient的安装位置如下
/usr/lib/oracle/21/client64
/usr/share/oracle/21/client64
/usr/include/oracle/21/client64
3. 配置SQLPlus连接 完颜振江
直接通过下面的命令安装 oracle-instantclient创建 network/admin 文件夹
mkdir /usr/lib/oracle/21/client64/network/admin/ -p
cd /usr/lib/oracle/21/client64/network/admin/
vim tnsnames.ora
HOST写oracle数据库服务器IP地址,
SERVICE_NAME写global_name
sqlplus / as sysdba
select global_name from global_name;
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.61.105)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
[root@BASE-oracle oracle]# sqlplus NCC10/XXXX@ORCL
SQL*Plus: Release 21.0.0.0.0 - Production on Tue Sep 6 17:55:26 2022
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle. All rights reserved.
Last Successful login time: Tue Sep 06 2022 17:54:17 +08:00
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.12.0.0.0
SQL>
每次重启虚拟机都要重新配置监听
su - oracle #切换到oracle用户,配置监听
export DISPLAY=IP:0.0 #IP为本机地址,export DISPLAY=本机地址:0.0
netca -silent -responseFile /opt/oracle/database/response/netca.rsp
sqlplus / as sysdba
startup
lsnrctl start
环境变量配置
export ORACLE_HOME=/usr/lib/oracle/21/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
export ORACLE_SID=ORCL
#保存后适用新的环境变量
source /etc/profile
#配置类库
chmod +x /usr/lib/oracle/21/client64/lib/libsqora.so.21.1
cd /usr/lib64
ln -s libodbcinst.so.2.0.0 libodbcinst.so.1
添加Oracle驱动
[Oracle]
Description = ODBC for Oracle
Driver = /usr/lib/oracle/21/client64/lib/libsqora.so.21.1
添加Oracle数据源
[root@BASE-oracle oracle]# cat /etc/odbc.ini
[NCCTESTDB] ###DSN名字,这个很关键
Driver = Oracle
ServerName = 172.16.61.105:1521/ORCL
UserID = NCC10
Password = xxxxx
ISQL测试
[root@BASE-oracle oracle]# isql -v NCCTESTDB
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>
#如下这个是在oracle服务上执行的
创建用于监控的专用账号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;
4. ZabbixServer主机配置
4.1 Interfaces选择客户端,IP地址选择客户端刚才我们配置的那个Agent的IP地址
模板选择Oracle by ODBC
4.3 宏配置中添加
{$ORACLE.DSN}
{$ORACLE.USER}
{$ORACLE.PASSWORD}
{$ORACLE.PORT}
三项即可