13 Configuración de la base de datos Oracle

Descripción general

Esta sección contiene instrucciones para crear una base de datos Oracle y configurar conexiones entre la base de datos y el servidor Zabbix, proxy, e interfaz.

Creación de base de datos

Suponemos que existe un usuario de base de datos zabbix con la contraseña password y tiene permisos para crear objetos de base de datos en el servicio ORCL ubicado en el servidor de base de datos Oracle host. Zabbix requiere una base de datos con el juego de caracteres Unicode y un juego de caracteres nacional UTF8. Verifique los ajustes actuales:

sqlplus> select parameter,value from v$nls_parameters where parameter='NLS_CHARACTERSET' or parameter='NLS_NCHAR_CHARACTERSET';

Ahora prepare la base de datos:

shell> cd /path/to/zabbix-sources/database/oracle
       shell> sqlplus zabbix/password@oracle_host/ORCL
       sqlplus> @schema.sql
       # deténgase aquí si está creando una base de datos para el proxy Zabbix
       sqlplus> @images.sql
       sqlplus> @data.sql

Por favor configure el parámetro de inicialización CURSOR_SHARING=FORCE para obtener un mejor rendimiento.

Configuración de la conexión

Zabbix admite dos tipos de identificadores de conexión (métodos de conexión):

  • Conexión fácil
  • Nombre del servicio de red

Los parámetros de configuración de conexión para el servidor Zabbix y el proxy Zabbix se pueden configurar en los archivos de configuración. Los parámetros importantes para el servidor y el proxy son DBHost, DBUser, DBName y DBPassword. Los mismos parámetros son importantes para la interfaz: $DB["SERVER"], $DB["PORT"], $DB["DATABASE"], $DB["USER"], $DB["PASSWORD"].

Zabbix utiliza la siguiente sintaxis de cadena de conexión:

{DBUser/DBPassword[@<connect_identifier>]} 

<connect_identifier> se puede especificar en forma de "Nombre del servicio de red" o "Conexión fácil".

@[[//]Host[:Port]/<service_name> | <net_service_name>]

Conexión fácil

Easy Connect utiliza los siguientes parámetros para conectarse a la base de datos:

  • Host - el nombre de equipo o dirección IP de la computadora servidor de la base de datos (Parámetro DBHost en el archivo de configuración).
  • Port - el puerto de escucha en el servidor de la base de datos (parámetro DBPort en el archivo de configuración; Si no se configura, el puerto predeterminado 1521 será usado).
  • <service_name>: el nombre del servicio de la base de datos que desea acceso (parámetro DBName en el archivo de configuración).

Ejemplo:

Parámetros de la base de datos establecidos en el archivo de configuración del servidor o proxy (zabbix_server.conf y zabbix_proxy.conf):

DBHost=localhost
       DBPort=1521
       DBUser=myusername
       DBName=ORCL
       DBPassword=mypassword

Cadena de conexión utilizada por Zabbix para establecer la conexión:

DBUser/DBPassword@DBHost:DBPort/DBName

Durante la instalación de la interfaz de Zabbix, configure los parámetros correspondientes en el paso Configurar conexión de base de datos del asistente de configuración:

  • Host de base de datos: localhost
  • Puerto de base de datos: 1521
  • Nombre de la base de datos: ORCL
  • Usuario: myusername
  • Contraseña: mypassword

Alternativamente, estos parámetros se pueden establecer en el archivo de configuración de la interfaz (zabbix.conf.php):

$DB["TYPE"]= 'ORACLE';
       $DB["SERVER"]= 'localhost';
       $DB["PORT"]= '1521';
       $DB["DATABASE"] = 'ORCL';
       $DB["USER"]= 'myusername';
       $DB["PASSWORD"]= 'mypassword';

Nombre del servicio de red

Desde Zabbix 5.4.0 es posible conectarse a Oracle mediante el nombre del servicio de red.

<net_service_name> es un nombre simple para un servicio que resuelve a un descriptor de conexión.

Para utilizar el nombre del servicio para crear una conexión, el nombre de este servicio debe definirse en el archivo tnsnames.ora ubicado tanto en el servidor de base de datos y los sistemas cliente. La manera más fácil de asegurarse que la conexión tendrá éxito es definir la ubicación de tnsnames.ora en la variable de entorno TNS_ADMIN. El valor por defecto de la ubicación del archivo tnsnames.ora es:

$ORACLE_HOME/network/admin/

Un ejemplo sencillo del archivo tnsnames.ora:

ORCL =
         (DESCRIPTION =
           (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
           (CONNECT_DATA =
             (SERVER = DEDICATED)
             (SERVICE_NAME = ORCL)
           )
         )

Para establecer los parámetros de configuración para el método de conexión "Nombre del servicio de red" , utilice una de las siguientes opciones:

  • Establezca un parámetro DBHost vacío y configure DBName como de costumbre:
DBHost=
       DBName=ORCL
  • Establezca ambos parámetros y deje ambos vacíos:
DBHost=
       DBName=

En el segundo caso, se debe configurar la variable de entorno TWO_TASK. Esta, especifica el servicio remoto predeterminado de Oracle (nombre del servicio). Cuando esta variable está definida, el conector se conecta a la base de datos especificada utilizando un oyente de Oracle que acepta solicitudes de conexión. Esta variable es para uso únicamente en Linux y UNIX. Utilice la variable de entorno LOCAL para Microsoft Windows.

Ejemplo:

Conéctese a una base de datos usando el nombre del servicio de red configurado como ORCL y el valor de puerto predeterminado. Los parámetros de la base de datos establecidos en el archivo de configuración del servidor o proxy (zabbix_server.conf y zabbix_proxy.conf):

DBHost=
       #DBPort=
       DBUser=myusername
       DBName=ORCL
       DBPassword=mypassword

Durante la instalación del frontend de Zabbix, configure los parámetros correspondientes en el paso Configurar conexión de base de datos del asistente de configuración:

  • Host de base de datos:
  • Puerto de base de datos: 0
  • Nombre de la base de datos: ORCL
  • Usuario: myusername
  • Contraseña: mypassword

Alternativamente, estos parámetros se pueden establecer en el archivo de configuración del frontend (zabbix.conf.php):

$DB["TYPE"]= 'ORACLE';
       $DB["SERVER"]= '';
       $DB["PORT"]= '0';
       $DB["DATABASE"] = 'ORCL';
       $DB["USER"]= 'myusername';
       $DB["PASSWORD"]= 'mypassword';

Cadena de conexión utilizada por Zabbix para establecer la conexión:

DBUser/DBPassword@ORCL

Problemas conocidos

Para mejorar el rendimiento, puede convertir los tipos de campo de nclob a nvarchar2, consulte problemas conocidos.