12 Oracle-database instellen

Overzicht

Dit gedeelte bevat instructies voor het maken van een Oracle-database en: verbindingen configureren tussen de database en Zabbix-server, proxy, en front-end.

Database maken

We nemen aan dat er een zabbix databasegebruiker met password wachtwoord bestaat en heeft machtigingen om database-objecten in de ORCL-service te maken op de host Oracle-databaseserver. Zabbix vereist een Unicode-database tekenset en een UTF8 nationale tekenset. Controleer stroom instellingen:

sqlplus> selecteer parameter,waarde uit v$nls_parameters waarbij parameter='NLS_CHARACTERSET' of parameter='NLS_NCHAR_CHARACTERSET';

Bereid nu de database voor:

shell> cd /pad/naar/zabbix-sources/database/oracle
       shell> sqlplus zabbix/password@oracle_host/ORCL
       sqlplus> @schema.sql
       # stop hier als u een database maakt voor Zabbix-proxy
       sqlplus> @images.sql
       sqlplus> @data.sql

Stel de initialisatieparameter in CURSOR_SHARING=FORCE voor de beste prestaties.

Verbinding tot stand gebracht

Zabbix ondersteunt twee soorten verbindings-ID's (verbindingsmethoden):

  • Eenvoudig verbinden
  • Netservicenaam

Verbindingsconfiguratieparameters voor Zabbix-server en Zabbix-proxy kan worden ingesteld in de configuratiebestanden. Belangrijke parameters voor de server en proxy zijn DBHost, DBUser, DBName en DBPassword. De dezelfde parameters zijn belangrijk voor de frontend: $DB["SERVER"], $DB["POORT"], $DB["DATABASE"], $DB["USER"], $DB["WACHTWOORD"].

Zabbix gebruikt de volgende syntaxis van de verbindingsreeks:

{DBUser/DBPassword[@<connect_identifier>]}

<connect_identifier> kan worden opgegeven in de vorm van "Net Servicenaam" of "Easy Connect".

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

Eenvoudig verbinden

Easy Connect gebruikt de volgende parameters om verbinding te maken met de database:

  • Host - de hostnaam of het IP-adres van de databaseservercomputer (DBHost-parameter in het configuratiebestand).
  • Poort - de luisterpoort op de databaseserver (DBPort-parameter in het configuratiebestand; indien niet ingesteld, zal de standaard 1521-poort zijn: gebruikt).
  • <service_name> - de servicenaam van de database die u wilt access (DBName-parameter in het configuratiebestand).

Voorbeeld:

Databaseparameters ingesteld in het server- of proxyconfiguratiebestand (zabbix_server.conf en zabbix_proxy.conf):

DBHost=lokale host
       DBPort=1521
       DBUser=mijngebruikersnaam
       DBName=ORCL
       DBPassword=mijnwachtwoord

Verbindingsreeks gebruikt door Zabbix om verbinding tot stand te brengen:

DBUser/DBPassword@DBHost:DBPort/DBName

Stel tijdens Zabbix frontend-installatie de bijbehorende parameters in de stap DB-verbinding configureren van de installatiewizard:

  • Databasehost: localhost
  • Databasepoort: 1521
  • Databasenaam: ORCL
  • Gebruiker: mijngebruikersnaam
  • Wachtwoord: mijnwachtwoord

Als alternatief kunnen deze parameters worden ingesteld in de frontend-configuratie bestand (zabbix.conf.php):

$DB["TYPE"] = 'ORAKLE';
       $DB["SERVER"] = 'localhost';
       $DB["POORT"] = '1521';
       $DB["DATABASE"] = 'ORCL';
       $DB["USER"] = 'mijngebruikersnaam';
       $DB["PASSWORD"] = 'mijnwachtwoord';

Net-service naam

Sinds Zabbix 5.4.0 is het mogelijk om verbinding te maken met Oracle door gebruik te maken van een net-service naam.

<net_service_name> is een eenvoudige naam voor een service die wordt omgezet naar een verbindingsdescriptor.

Om de service naam te gebruiken voor het maken van een verbinding, moet deze service naam gedefinieerd zijn in het tnsnames.ora bestand dat zich bevindt op zowel de databaseserver als de client systemen. De eenvoudigste manier om ervoor te zorgen dat de verbinding slaagt, is door de locatie van het tnsnames.ora bestand te definiëren in de TNS_ADMIN omgevingsvariabele. De standaardlocatie van het tnsnames.ora bestand is:

$ORACLE_HOME/network/admin/

Een eenvoudig voorbeeld van een tnsnames.ora bestand:

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

Om configuratieparameters in te stellen voor de "Net Service Name" verbindingsmethode, gebruik een van de volgende opties:

  • Stel een lege parameter DBHost in en stel DBName in zoals gewoonlijk:
DBHost=
       DBName=ORCL
  • Stel beide parameters in en laat beide leeg:
DBHost=
       DBName=

In het tweede geval moet de TWO_TASK omgevingsvariabele ingesteld zijn. Deze geeft de standaard externe Oracle service (service naam) aan. Als deze variabele is gedefinieerd, maakt de connector verbinding met de gespecificeerde database via een Oracle listener die verbindingsverzoeken accepteert. Deze variabele is alleen voor gebruik op Linux en UNIX. Gebruik de LOCAL omgevingsvariabele voor Microsoft Windows.

Voorbeeld:

Verbinding maken met een database met behulp van een Net-service naam die is ingesteld als ORCL en de standaard poort. Databaseparameters ingesteld in het server- of proxy-configuratiebestand (zabbix_server.conf en zabbix_proxy.conf):

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

Tijdens de installatie van Zabbix frontend, stel de overeenkomstige parameters in de Configure DB connection stap van de installatiewizard in:

  • Database host:
  • Database poort: 0
  • Database naam: ORCL
  • Gebruiker: myusername
  • Wachtwoord: mypassword

Als alternatief kunnen deze parameters worden ingesteld in het frontend configuratiebestand (zabbix.conf.php):

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

Verbindingsreeks die door Zabbix wordt gebruikt om verbinding te maken:

DBUser/DBPassword@ORCL

Bekende problemen

Om de prestaties te verbeteren, kunt u de veldtypen van nclob naar nvarchar2 converteren, zie bekende problemen.