Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| computer:icinga:icinga_mit_oracle_10g_xe [2011/03/11 22:45] – [Oracle-Bibliothek] christian | computer:icinga:icinga_mit_oracle_10g_xe [2012/06/17 22:51] (aktuell) – gelöscht christian | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | Icinga kann dank einer Erweiterung namens **IDOutils** auf vielen verschiedenen Datenbanksystemen betrieben werden. Neben MySQL und PostgreSQL kann es auch auf Oracle verwendet werden - besonders interessant ist dies für Firmen, die aus supportechnischen Gründen auf Oracle setzen. | ||
| - | ======Szenario====== | ||
| - | Dieses Tutorial widmet sich der Installation eines Oracle 10g Database Express- und Icinga-Monitoringsystems. Als Betriebssystem wird CentOS 5.5 verwendet, welches binärkompatibel zu RedHat Enterprise Linux ist. Folglich dürfte dieser Leitfaden auch beim Nachbau auf Produktivsystemen mit RHEL und Oracle Database Standard unterstützen. | ||
| - | |||
| - | =====Voraussetzungen===== | ||
| - | Für dieses Szenario wird benötigt: | ||
| - | * Ein- oder Mehrkern-Coprozessor | ||
| - | * Host oder virtuelle Maschine mit 2 GB Arbeitsspeicher | ||
| - | * Mindestens 1 GB Swap | ||
| - | * Mindestens 20 GB Speicherplatz | ||
| - | * CentOS 5.5-Abbild oder -Medium | ||
| - | * Oracle Database 10g Database Express Edition Installationspakete | ||
| - | * Oracle InstantClient und Linux SDK | ||
| - | ======Datenbank====== | ||
| - | Zuerst wird die Oracle 10g Database Express Edition Software installiert - diese Version ist gegenüber der Standard-Version von Oracle Database abgespeckt und für Evaluationen, | ||
| - | |||
| - | Ich setze vorraus, dass CentOS 5.5 bereits installiert wurde. Benötigt wird das Paket **oracle-xe-univ-10.2*.i386.rpm** von der Oracle-Webseite. | ||
| - | |||
| - | <note tip> | ||
| - | |||
| - | Nachdem das Paket heruntergeladen wurde, kann es mittels **yum** installiert werden - danach wird die Datenbank konfiguriert: | ||
| - | < | ||
| - | ... | ||
| - | Is this ok [y/N]: y | ||
| - | ... | ||
| - | Complete! | ||
| - | |||
| - | # / | ||
| - | |||
| - | Oracle Database 10g Express Edition Configuration | ||
| - | ------------------------------------------------- | ||
| - | This will configure on-boot properties of Oracle Database 10g Express | ||
| - | Edition. | ||
| - | be starting upon system boot, the ports it will use, and the passwords that | ||
| - | will be used for database accounts. | ||
| - | Ctrl-C will abort. | ||
| - | |||
| - | Specify the HTTP port that will be used for Oracle Application Express [8080]: | ||
| - | |||
| - | Specify a port that will be used for the database listener [1521]: | ||
| - | |||
| - | Specify a password to be used for database accounts. | ||
| - | password will be used for SYS and SYSTEM. | ||
| - | different passwords for each database account. | ||
| - | initial configuration: | ||
| - | Confirm the password: | ||
| - | |||
| - | Do you want Oracle Database 10g Express Edition to be started on boot (y/n) [y]: | ||
| - | |||
| - | Starting Oracle Net Listener...Done | ||
| - | Configuring Database...Done | ||
| - | Starting Oracle Database 10g Express Edition Instance...Done | ||
| - | Installation Completed Successfully. | ||
| - | To access the Database Home Page go to " | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | < | ||
| - | # source / | ||
| - | # sqlplus | ||
| - | |||
| - | SQL*Plus: Release 10.2.0.1.0 - Production on Mi Dez 29 15:12:48 2010 | ||
| - | |||
| - | Copyright (c) 1982, 2005, Oracle. | ||
| - | |||
| - | Benutzernamen eingeben: system | ||
| - | Kennwort eingeben: | ||
| - | |||
| - | Verbunden mit: | ||
| - | Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production | ||
| - | |||
| - | SQL> EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE); | ||
| - | |||
| - | PL/ | ||
| - | |||
| - | SQL> exit | ||
| - | Verbindung zu Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production beendet | ||
| - | </ | ||
| - | |||
| - | Die Firewall, falls verwendet, muss angepasst werden, damit Zugriff auf TCP-Port 8080 möglich ist: | ||
| - | < | ||
| - | # iptables -A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT | ||
| - | # service iptables save | ||
| - | # service iptables restart | ||
| - | </ | ||
| - | |||
| - | Nach einem Neustart des Dienstes steht der externe Zugriff zur Verfügung: | ||
| - | < | ||
| - | </ | ||
| - | ======Icinga====== | ||
| - | |||
| - | =====Vorbereitungen===== | ||
| - | Bevor Icinga kompiliert wird, bedarf es noch einiger Vorbereitungen: | ||
| - | ====Pakete und Abhängigkeiten==== | ||
| - | Es müssen noch einige Bibliotheken installiert werden, die bei der Kompilierung benötigt werden: | ||
| - | |||
| - | < | ||
| - | # yum install gcc gcc-c++ httpd gd gd-devel glibc glibc-common libjpeg libjpeg-devel libpng libpng-devel openldap-devel php net-snmp net-snmp-devel net-snmp-utils openssl openssl-devel | ||
| - | </ | ||
| - | |||
| - | <note tip>Die Pakete **net-snmp-devel** und **net-snmp-utils** werden benötigt, falls Icinga NMNP-Dienste verwenden können soll. Icinga kann Informationen verschlüsselt übertragen - hierfür werden die Pakete **openssl** und **openssl-devel** benötigt.</ | ||
| - | ====SELinux==== | ||
| - | SELinux behindert Icinga in seiner Funktionsweise, | ||
| - | |||
| - | < | ||
| - | # setenforce 0 | ||
| - | # nano / | ||
| - | ... | ||
| - | SELINUX=disabled | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | ====Oracle-Bibliothek==== | ||
| - | Damit Icinga auf der Oracle-Datenbank agieren kann, wird eine Bibliothek namens **ocilib** benötigt. Der Quellcode dieser Bibliothek kann kostenfrei auf der [[http:// | ||
| - | |||
| - | ===Instant-Client und SDK=== | ||
| - | Damit die benötigte Oracle-Bibliothek kompiliert werden kann, werden der Oracle Instant Client und das Linux SDK benötigt. Beides erhält man ebenfalls kostenfrei [[http:// | ||
| - | |||
| - | < | ||
| - | ~# yum localinstall --nogpgcheck oracle-instantclient11.2-{basic-, | ||
| - | ~# unzip instantclient-sdk-linux32*.zip -d /usr/src | ||
| - | </ | ||
| - | |||
| - | <note tip>Je nach verwendeten Architektur muss der Dateiname des SDK-Archivs ggf. angepasst werden</ | ||
| - | |||
| - | ===Kompilierung=== | ||
| - | Wenn der Oracle Instantclient installiert und das SDK entpackt wurden, kann das muntere Kompilieren beginnen: | ||
| - | |||
| - | < | ||
| - | ~# tar xvfz ocilib-3.8.1-gnu.tar.gz -C /usr/src | ||
| - | ~# cd / | ||
| - | ocilib-3.8.1# | ||
| - | ocilib-3.8.1# | ||
| - | ocilib-3.8.1# | ||
| - | ocilib-3.8.1# | ||
| - | ocilib-3.8.1# | ||
| - | ocilib-3.8.1# | ||
| - | ocilib-3.8.1# | ||
| - | ocilib-3.8.1# | ||
| - | ocilib-3.8.1# | ||
| - | ocilib-3.8.1# | ||
| - | |||
| - | </ | ||
| - | |||
| - | <note important> | ||
| - | |||
| - | Im Archiv befindet sich auch ein Beispielprogramm, | ||
| - | |||
| - | < | ||
| - | ocilib-3.8.1# | ||
| - | demo# make -f Makefile_demo demo | ||
| - | gcc -I/ | ||
| - | gcc -L/ | ||
| - | demo# ./demo xe system < | ||
| - | ... | ||
| - | 0 errors | ||
| - | |||
| - | 0 warnings | ||
| - | |||
| - | |||
| - | press any key to exit... | ||
| - | </ | ||
| - | |||
| - | |||
| - | |||
| - | ====Oracle-Benutzer==== | ||
| - | {{ ORA_BenutzerAnlegen.jpg? | ||
| - | Icinga benötigt einen dedizierten Datenbank-Benutzer sowie eine dazugehöriges Datenbankschema. Unter Oracle Database 10g Express Edition wird dies ganz einfach mit dem Anlegen eines Datenbank-Benutzers implementiert. Hierzu werden die Weboberfläche (//APEX//) aufgerufen und die folgenden Punkte angewählt: | ||
| - | |||
| - | - Administration | ||
| - | - Datenbankbenutzer | ||
| - | - Benutzer erstellen | ||
| - | - Benutzername: | ||
| - | - Kennwort: **...** | ||
| - | - Kenntwort bestätigen: | ||
| - | - Benutzerberechtigungen | ||
| - | - Rollen: | ||
| - | - **CONNECT** | ||
| - | - **RESOURCE** | ||
| - | |||
| - | Anschließend sollte ein Probe-Login auf der Weboberfläche oder über **sqlplus** erfolgen, um zu verifizieren, | ||
| - | |||
| - | < | ||
| - | [root@tvm-icingaex ~]# sqlplus icinga/< | ||
| - | |||
| - | SQL*Plus: Release 10.2.0.1.0 - Production on Do Mrz 10 18:51:16 2011 | ||
| - | |||
| - | Copyright (c) 1982, 2005, Oracle. | ||
| - | |||
| - | |||
| - | Verbunden mit: | ||
| - | Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production | ||
| - | </ | ||
| - | =====Kompilierung===== | ||
| - | Zunächst werden eine Benutzerkonto und eine zugehörige Gruppe für den Icinga-Daemon erstellt - für die Bedienung des Dienstes über die Weboberfläche wird eine dedizierte Gruppe erstellt - dieser Gruppe wird das Apache-Benutzerkonto hinzugefügt. | ||
| - | |||
| - | < | ||
| - | # useradd -m icinga | ||
| - | # passwd icinga | ||
| - | ... | ||
| - | # groupadd icinga | ||
| - | # groupadd icinga-cmd | ||
| - | # usermod -a -G icinga-cmd icinga | ||
| - | # usermod -a -G icinga-cmd apache | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | < | ||
| - | |||
| - | Damit Icinga später auf die Oracle-Datenbank zugreifen kann, müssen noch zwei Library-Pfade gesetzt werden. Während dies früher mit Anpassen der Umgebungsvariable **$LD_LIBRARY_PATH** implementiert wurde, werden unter CentOS Dateien unterhalb **/ | ||
| - | < | ||
| - | # echo "/ | ||
| - | # echo "/ | ||
| - | # echo "/ | ||
| - | # ldconfig | ||
| - | # ldconfig -p | grep ora | ||
| - | ... | ||
| - | # ldconfig -p | grep oci | ||
| - | ... | ||
| - | </ | ||
| - | |||
| - | Nun wird der Icinga-Quellcode entpackt, bevor die Abhängigkeiten überprüft und Icinga kompiliert werden: | ||
| - | |||
| - | < | ||
| - | # tar xvfz Icinga_130/ | ||
| - | # cd / | ||
| - | icinga-1.3.0 # ./configure --with-command-group=icinga-cmd --enable-idoutils --enable-ssl --enable-oracle --with-ocilib-inc=/ | ||
| - | ... | ||
| - | *** Configuration summary for icinga-core 1.3.0 02-16-2011 ***: | ||
| - | |||
| - | | ||
| - | | ||
| - | Icinga executable: | ||
| - | Icinga user/ | ||
| - | | ||
| - | Embedded Perl: no | ||
| - | Event Broker: | ||
| - | Build IDOUtils: | ||
| - | Install ${prefix}: | ||
| - | Lock file: ${prefix}/ | ||
| - | Check result directory: | ||
| - | Init directory: | ||
| - | Apache conf.d directory: | ||
| - | Mail program: | ||
| - | Host OS: linux-gnu | ||
| - | |||
| - | Web Interface Options: | ||
| - | | ||
| - | HTML URL: http:// | ||
| - | CGI URL: http:// | ||
| - | | ||
| - | |||
| - | |||
| - | Review the options above for accuracy. | ||
| - | type 'make all' to compile the main program and CGIs. | ||
| - | |||
| - | |||
| - | !!! Please take care about the upgrade documentation !!! | ||
| - | |||
| - | |||
| - | icinga-1.3.0 # make all | ||
| - | ... | ||
| - | </ | ||
| - | |||
| - | Nach dem Icinga kompiliert wurde, werden die folgenden Tasks kombiniert in einem Aufruf ausgeführt: | ||
| - | * Installation der Software: **make install** | ||
| - | * Installation des Init-Scripts: | ||
| - | * Kopieren der Konfigurationsdateien: | ||
| - | * Setzen von Datei-Berechtigungen: | ||
| - | |||
| - | < | ||
| - | icinga-1.3.0 # make fullinstall | ||
| - | ... | ||
| - | icinga-1.3.0 # make install-config | ||
| - | ... | ||
| - | </ | ||
| - | |||
| - | Die Oracle-Datenbank muss noch mit dem von Icinga verwendeten Schema gefüllt werden - hierzu wird ein SQL-Dump in den Home-Ordner des Oracle-Benutzers kopiert. Danach erfolgt eine Anmeldung mit dem Oracle-Benutzer in einer Kommandozeilensitzung sowie eine Verbindung zur Datenbank: | ||
| - | < | ||
| - | icinga-1.3.0 # cp module/ | ||
| - | icinga-1.3.0 # su - oracle | ||
| - | -bash-3.2$ source / | ||
| - | -bash-3.2$ cd $ORACLE_HOME | ||
| - | -bash-3.2$ sqlplus icinga/ | ||
| - | |||
| - | SQL*Plus: Release 10.2.0.1.0 - Production on Do Mrz 10 23:22:24 2011 | ||
| - | |||
| - | Copyright (c) 1982, 2005, Oracle. | ||
| - | |||
| - | |||
| - | Verbunden mit: | ||
| - | Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production | ||
| - | |||
| - | SQL> @oracle.sql | ||
| - | ... | ||
| - | Sequence wurde erstellt. | ||
| - | |||
| - | SQL> quit | ||
| - | Verbindung zu Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production beendet | ||
| - | -bash-3.2$ exit | ||
| - | logout | ||
| - | icinga-1.3.0 # | ||
| - | </ | ||
| - | |||
| - | ====Web-Oberfläche==== | ||
| - | Zur Auswahl stehen zwei Oberflächen - die klassische Nagios-Oberfläche und eine modernere AJAX-Weboberfläche. Der Übersichtlichkeit gegenüber alten Nagios-Systemen halber wird hier die klassische Weboberfläche verwendet. | ||
| - | |||
| - | Mit den folgenden Aufrufen werden die CGI-Skripte und HTML-Dokumente installiert sowie die dazugehörigen Konfigurationen vorgenommen: | ||
| - | < | ||
| - | icinga-1.3.0 # make cgis | ||
| - | icinga-1.3.0 # make install-cgis | ||
| - | icinga-1.3.0 # make install-html | ||
| - | icinga-1.3.0 # make install-webconf | ||
| - | </ | ||
| - | |||
| - | Für den Zugriff auf Icinga wird ein Benutzer " | ||
| - | < | ||
| - | icinga-1.3.0 # htpasswd -c / | ||
| - | New password: | ||
| - | Re-type new password: | ||
| - | Adding password for user icingaadmin | ||
| - | </ | ||
| - | |||
| - | <note tip> | ||
| - | Warum? Ganz einfach - ein Monitoringsystem ist im Business-Umfeld ein enorm wichtiger Dienst, der immer zur Verfügung stehen muss. Was ist, wenn der Verzeichnisdienst ausfällt? In einem solchen Falle könnte keine Authentifizierung mehr stattfinden und das Monitoringsystem könnte nicht benutzt werden. | ||
| - | Selbst in größeren Firmen wird ein Monitoringsystem in der Regel nur von einer begrenzten Anzahl an Administratoren/ | ||
| - | =====Konfiguration===== | ||
| - | < | ||
| - | icinga-1.3.0 # cd / | ||
| - | etc # nano objects/ | ||
| - | ... | ||
| - | define contact{ | ||
| - | contact_name | ||
| - | use | ||
| - | alias | ||
| - | |||
| - | email | ||
| - | } | ||
| - | ... | ||
| - | etc # mv idomod.cfg-sample idomod.cfg | ||
| - | etc # mv ido2db.cfg-sample ido2db.cfg | ||
| - | etc # nano idomod.cfg | ||
| - | ... | ||
| - | #use_ssl=1 | ||
| - | output_type=tcpsocket | ||
| - | output=127.0.0.1 | ||
| - | ... | ||
| - | etc # nano ido2db.cfg | ||
| - | ... | ||
| - | #use_ssl=1 | ||
| - | socket_type=tcp | ||
| - | ... | ||
| - | db_servertype=oracle | ||
| - | db_port=1521 | ||
| - | db_name=// | ||
| - | db_user=icinga | ||
| - | db_pass=test123 | ||
| - | ... | ||
| - | etc # nano / | ||
| - | ... | ||
| - | broker_module=/ | ||
| - | ... | ||
| - | </ | ||
| - | |||
| - | Da Icinga ohne Plugins recht nutzlos ist, werden nun noch die Nagios-Plugins für Icinga kompiliert: | ||
| - | < | ||
| - | # tar xvfz nagios-plugins-1.4.15.tar.gz -C /usr/src/ | ||
| - | # cd / | ||
| - | nagios-plugins-1.4.15 # ./configure --prefix=/ | ||
| - | ... | ||
| - | nagios-plugins-1.4.15 # make | ||
| - | ... | ||
| - | nagios-plugins-1.4.15 # make install | ||
| - | ... | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | WWW | ||
| - | # ln -s / | ||
| - | </ | ||
| - | |||
| - | Nach einem Neustart der Webserver-, IDO-Datenbank- und Icinga-Dienste kann Icinga benutzt werden. Bei dieser Gelegenheit können diese Dienste gleich so konfiguriert werden, dass sie beim Start des Systems automatisch gestartet werden. Vorher müssen noch einige Symlinks erstellt und die hinterlegte Konfigurationsdatei auf Fehler überprüft werden: | ||
| - | < | ||
| - | # ln -s / | ||
| - | # ln -s / | ||
| - | # / | ||
| - | ... | ||
| - | Things look okay - No serious problems were detected during the pre-flight check | ||
| - | # service httpd restart | ||
| - | # service ido2db start | ||
| - | # service icinga start | ||
| - | # chkconfig --add ido2db | ||
| - | # chkconfig ido2db on | ||
| - | # chkconfig --add icinga | ||
| - | # chkconfig icinga on | ||
| - | # chkconfig --level 345 httpd on | ||
| - | # chkconfig --level 345 ido2db on | ||
| - | # chkconfig --level 345 icinga on | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | < | ||
| - | # iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT | ||
| - | # service iptables save | ||
| - | # service iptables restart | ||
| - | </ | ||
| - | ======Internetverweise====== | ||
| - | * Icinga-Projektseite: | ||
| - | * Icinga-Handbuch (//Version 1.3.0//): http:// | ||
| - | * Oracle Database 10g Express Edition: http:// | ||
| - | * orclib/ | ||
| - | * Oracle Instant Client und SDK: http:// | ||