Aktionen

Zabbix Server mit CentOs und Orcale 10g Express installieren

Aus freie Dokumentation

[Kategorie:Zabbix]

Hinweis zur Auswahl der Datenbank

Berechnen Sie, wie viele Daten Sie messen und speichern können, wenn Sie das 4GB Limit der 10g Express Edition nicht überschreiten wollen. Das Zabbix Manual gibt detailierte Auskünfte über den Festplattenverbrauch der Datenbank. Für die Zabbix-Installation mit einer Oracle 10g Express sollten Sie sich nur dann entscheiden, wenn Sie die Möglichkeit zum Upgrade auf eine größere Oracel Version haben, was ggf. Lizenzkosten verursacht. Wenn Sie bis jetzt noch keine Erfahrungen mit Oracle Datenbanken haben und auch nicht planen, eine kostenpflichtige Oracle Version zu kaufen, dann sollten Sie Zabbix nicht mit Oracle installieren. Verwenden Sie stattdessen MySQL als Datenbank, welche jetzt ja auch aus dem Hause Oracle kommt. MySQL ist kostenlos und bringet keine Beschränkungen mit sich. MySQL bringt bei der Zabbixinstallation auch keine Nachteile verglichen mit einer Oracle Datenbank.

http://www.zabbix.com/documentation/1.8/manual/installation#database_size

Oracle 10g Express installieren

CentOS oder Red Hat für die Installation vorbereiten

Legen Sie mindestens 1 GB Swap an. Installieren Sie folgende Pakete:

yum install libaio bc

Installieren Sie dann die Pakete der Datenbank, welche Sie auf der Webseite von Oracle downgeloaded haben.

rpm -i oracle-xe-univ-10.2.0.1-1.0.i386.rpm
rpm -i oracle-xe-client-10.2.0.1-1.0.i386

Anschließend konfigurieren Sie die Datenbank für den ersten Start

/etc/init.d/oracle-xe configure

Sie müssen dabei das Passwort für den Superuser SYSTEM vergeben. Für alle anderen Werte können die vorgeschlagenen Standards übernommen werden.

Anpassen der Umgebung

Damit die Oracle Tools auch funktionieren und die Pfade dafür richtig gesetzt werden ist die Datei /etc/environment folgendermaßen anzupassen:

ORACLE_HOME="/usr/lib/oracle/xe/app/oracle/product/10.2.0/server"
ORACLE_SID="XE"
ORATAB="/etc/oratab"
ORACLE_HOME_LISTENER="/usr/lib/oracle/xe/app/oracle/product/10.2.0/server"
ORACLE_BASE="/usr/lib/oracle/xe/app/oracle/product/10.2.0/server"

In die Datei /etc/profile.d/oracle.sh fügen Sie ein:

PATH=$PATH:/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin

Fügen Sie die Oracle-Libraries zum Library Path hinzu

find /usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/ >>/etc/ld.so.conf.d/oracle.conf
ldocnfig

Melden Sie sich ab und wieder an, dann prüfen Sie, ob die Einstellungen übernommen wurden.

echo $PATH
echo $ORACLE_HOME

Testen Sie, ob Sie sich an der Datenbank anmelden können mit dem Kommando

sqlplus

Geben Sie als user-name 'System' an gefolgt vom Passwort, welches Sie bei vorher vergeben haben.

Oracle Webserver deaktivieren

Die Oracledatenbank startet auf Port 8080 immer einen integrierten Webserver mit einer Weboberfläche. Über diese Weboberfläche kann man die Datenbank verwalten. Für den Betrieb von Zabbix wird diese Weboberfläche aber nicht gebraucht. Sie können diese wie folgt deaktivieren:

sqlplus system/<system_passwd>
SQL> EXEC DBMS_XDB.SETHTTPPORT(0);

Wenn Sie die Weboberfläche wieder aktivieren möchten, verwenden Sie folgendes Kommando:

SQL> EXEC DBMS_XDB.SETHTTPPORT(8080);

Tablespace und Datenbankbenutzer für Zabbix anlegen

sqlplus system/<systempasswd>
SQL> create tablespace zabbix DATAFILE '/usr/lib/oracle/xe/oradata/XE/zabbix.dbf' 
size 100M REUSE AUTOEXTEND ON DEFAULT STORAGE (INITIAL 10K NEXT 50K) ONLINE;
SQL> SELECT TABLESPACE_NAME, FILE_NAME FROM DBA_DATA_FILES;
SQL> CREATE USER zabbix identified by zabbix default tablespace ZABBIX;
SQL> GRANT CONNECT to zabbix;
SQL> GRANT RESOURCE to zabbix;
SQL> GRANT dba to zabbix;
SQL> exit;

Testen Sie den neu angelegten Benutzer, indem Sie sich nun als Benutzer zabbix einloggen

sqlplus zabbix/<zabbixpassword>
SQL> CREATE TABLE a_test_table( col1 NUMBER(1));
SQL> SELECT OBJECT_NAME FROM user_objects WHERE object_type = 'TABLE';
SQL> SELECT TABLE_NAME, TABLESPACE_NAME FROM TABS WHERE TABLE_NAME LIKE '%TEST%';
SQL> DROP TABLE a_test_table;

Datenbankschema für Oracle anlegen

Das in den Zabbix-Quellen inhaltene Schema für Oracle lässt sich nicht in die relativ alte Version 10.2 einspielen. Patchen Sie das Schema wie folgt:

cd /usr/src/zabbix-1.8.3/create/schema/
cat oracle.sql|sed s/"nvarchar2(2048)"/"nvarchar2(2000)"/g>oracle10.sql

Öffnen Sie die Datei images_oracle.sql mit einem Editor und passen Sie den Pfad zu den Zabbix-Quellen an.

CREATE OR REPLACE DIRECTORY image_dir AS '/usr/src/zabbix-1.8.3/create/data/images'

Importieren Sie nun das Schema und Basisdaten in die Datenbank.

cd /usr/src/zabbix-1.8.3/create
sqlplus zabbix/<zabbix_passwd>
SQL> set def off
SQL> @schema/oracle10.sql
SQL> @data/data.sql
SQL> @data/images_oracle.sql
SQL> exit
Sie müssen den sqlplus Befehl im richtigen Verzeichnis ausführen, denn dort werden die SQL-Dateien gesucht. Führen Sie das Anlegen des Schemas nicht als Benutzer SYSTEM aus, da sonst die Tabellen nicht im Tablespace zabbix angelegt werden.
Nachdem die Tabellen und Daten angelegt sind, reduzieren Sie die Rechte des Zabbix Benutzer wieder. Durch das Entfernen der dba-Rechte fällt der Benutzer auf ein Quota von Null, das heißt er darf keinen Platz auf der Festplatte verbrauchen. Diese Quota heben Sie ebenfalls auf.
SQL> REVOKE dba FROM zabbix;
SQL> GRANT UNLIMITED TABLESPACE to zabbix;

Hinweis für Deutsche Orale-Installationen Sollte auf Ihrer Datenbank nicht English als Standardsprache eingestellt sein, wird das Anlegen des Schemas fehl schlagen. Führen Sie vor dem Anlegen der Schemen folgendes SQL-Kommando aus

sqlplus zabbix/<zabbix_passwd>
SQL> alter session set NLS_LANG='AMERICAN_AMERICA.WE8ISO8859P1';
SQL> alter session set NLS_DATE_FORMAT='dd-mon-yy';
SQL> alter session set NLS_NUMERIC_CHARACTERS='.,';

Erlaubte Verbindungen erhöhen

Wenn Sie die Anzahl der erlaubten Datenbankverbindungen nicht erhöhen, werden Sie schon kurze Zeit nach dem Start des Zabbix-Server folgende Meldung im Log finden:

TNS:listener: all appropriate instances are blocking new connections

Erhöhen Sie die Anzahl der erlaubten Verbindungen über den sqlplus client

sqlplus system/<systempassws>
SQL> alter system set processes=200 scope=spfile;

Restarten Sie die Datenbank

/etc/init.d/oracle-xe restart

Zabbix kompilieren

OCI Header downloaden

Der Zabbix-Server brauch die OCI Header Dateien, damit Zabbix für Orcale kompiliert werden kann. Die Dateien finden Sie auf den Downloadseiten von Oracle unter: http://www.oracle.com/technetwork/topics/linuxsoft-082809.html

Laden Sie die Datei sdk-10.2.0.5.0-linux.zip herunter und entpacken Sie diese in /usr/src

Serverbinaries kompilieren

./configure --enable-server --with-oracle-include=/usr/src/instantclient_10_2/sdk/include/ \
--with-oracle-lib=/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/ \
--with-net-snmp --with-libcurl --enable-agent --prefix=/opt/zabbix
make
make install
mkdir -p /opt/zabbix/etc/init.d
cp misc/conf/zabbix_server.conf /opt/zabbix/etc/

Zabbix-Server konfigurieren

Fügen Sie

DBName=""

in die zabbix_server.conf ein. Da nur eine Datenbankinstanz läuft, dürfen Sie keinen DBName angeben.

Webserver Installieren

Apache und PHP installieren

yum install php php-gd php-devel php-bcmath php-pear apache2

Oracleunterstützung für PHP installieren

Das Paket php-pear installiert auch PHP Pecl, eine Scriptsammlung zum Nachinstallieren weitere PHP-Erweiterungen. Nun können Sie die OCI8-Erweiterungen, also die PHP-Orcale-Erweiterung per PECL installieren.

pecl install oci8

Als Pfad zum ORCALE_HOME geben Sie /usr/lib/oracle/xe/app/oracle/product/10.2.0/server an, wenn Sie 10g Express mit den Standardeinstellungen installiert haben.

Fügen Sie die Zeile

extension=oci8.so 

in die Datei /etc/php.ini ein.

  • Starten Sie apache neu
  • Legen Sie eine Datei /var/www/html/info.php an mit folgendem Inhalt
<?php phpinfo(); ?>
  • Rufen Sie die Datei info.php im Browser auf und prüfen Sie, ob dort ein Block oci8 mit der Zeile "OCI8 Support enabled" auftaucht.

Apache Environment anpassen

PHP muss wissen, wo die Clientbibliotheken von Oracle liegen. Wir haben die passenden Umgebungsvariablen bereits gesetzt. Doch werden diese Variablen nur bei einer Anmeldung per Login übernommen. Wenn Sie den Server rebooten, startet Apache ohne dass vorher ein Login stattgefunden hat. Die Umgebungsvariablen für Oracel werden dann fehlen und PHP kann sich nicht zur Oracledatenbank verbinden.

Fügen Sie folgende Zeilen in die Datie /etc/sysconfig/httpd ein:

# Set variables for Oracle Database
# See http://php.net/manual/en/oci8.installation.php
export ORACLE_HOME="/usr/lib/oracle/xe/app/oracle/product/10.2.0/server"
export ORACLE_SID="XE"
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib

Zabbix-Server und Webfrontend installieren

Wenn alle hier aufgeführten Vorarbeiten erledigt wurden, können Sie die Installation analog zu Installation mit MySQL fortführen.

Siehe: Zabbix_Server_installieren

Links