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.