本节包含创建Oracle数据库以及配置数据库与Zabbix server、proxy和前端之间连接的说明。
我们假设已存在一个密码为password的zabbix数据库用户, 且该用户拥有在位于主机 Oracle数据库服务器上的ORCL服务中创建objects的权限。Zabbix要求数据库使用Unicode字符集和UTF8
国家字符集。请检查当前设置:
sqlplus> select parameter,value from v$nls_parameters where parameter='NLS_CHARACTERSET' or parameter='NLS_NCHAR_CHARACTERSET';
现在准备数据库:
cd /path/to/zabbix-sources/database/oracle
sqlplus zabbix/password@oracle_host/ORCL
sqlplus> @schema.sql
# 如果正在为Zabbix proxy创建数据库,请在此处停止
sqlplus> @images.sql
sqlplus> @data.sql
为获得最佳性能,请将初始化参数CURSOR_SHARING设置为FORCE。
Zabbix支持两种类型的连接标识符(连接方式):
Zabbix server和Zabbix proxy的连接配置参数可在配置文件中设置。服务器和proxy的关键参数包括DBHost、DBUser、DBName和DBPassword。前端同样需要以下重要参数:$DB["SERVER"]、$DB["PORT"]、$DB["DATABASE"]、$DB["USER"]、$DB["PASSWORD"]。
Zabbix使用以下连接string语法:
<connect_identifier>可以指定为"Net Service Name"(网络服务名)或"Easy Connect"(简易连接)形式:
Easy Connect 使用以下参数连接数据库:
示例:
server 或 proxy配置文件(zabbix_server.conf和zabbix_proxy.conf)中设置的数据库参数:
Zabbix建立连接时使用的string:
在Zabbix前端安装过程中,于安装向导的配置数据库连接步骤设置对应参数:
这些参数也可在前端配置文件(zabbix.conf.php)中设置:
$DB["TYPE"] = 'ORACLE';
$DB["SERVER"] = 'localhost';
$DB["PORT"] = '1521';
$DB["DATABASE"] = 'ORCL';
$DB["USER"] = 'myusername';
$DB["PASSWORD"] = 'mypassword';
自Zabbix 5.4.0版本起,可通过网络服务名连接Oracle数据库。
<net_service_name>是解析为连接描述符的简单服务名称。要使用该服务名建立连接,需在数据库服务器和客户端系统的tnsnames.ora文件中定义此服务名。确保连接成功的最简单方法是在TNS_ADMIN环境变量中指定tnsnames.ora文件位置,其默认路径为:
tnsnames.ora文件示例:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(主机 = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
配置"网络服务名"连接方式的参数选项:
第二种情况需设置TWO_TASK环境变量,该变量指定默认的远程Oracle服务(服务名)。定义此变量后,连接器将通过接受连接请求的Oracle监听器连接指定数据库。此变量仅适用于Linux和UNIX系统,Windows系统应使用LOCAL环境变量。
示例:
使用网络服务名ORCL(默认端口)连接数据库。server 或 proxy配置文件(zabbix_server.conf和zabbix_proxy.conf)中的参数设置:
Zabbix前端安装时,在安装向导的配置数据库连接步骤设置对应参数: - 数据库主机: - 数据库端口:0 - 数据库名称:ORCL - 用户名:myusername - 密码:mypassword
或在前端配置文件(zabbix.conf.php)中设置:
$DB["TYPE"] = 'ORACLE';
$DB["SERVER"] = '';
$DB["PORT"] = '0';
$DB["DATABASE"] = 'ORCL';
$DB["USER"] = 'myusername';
$DB["PASSWORD"] = 'mypassword';
Zabbix建立连接时使用的string格式:
为提高性能,您可以将字段类型从nclob转换为nvarchar2,详见oracle-配置同步缓慢。