Icinga

Installation des neuen Icinga Webinterface

  1. Voraussetzungen

    Die Pakete mysql und php5 sind installiert (mit PEAR und CLI), Icinga läuft, die IDOUtils ebenfalls, dann ab zu 2., ansonsten bitte:

    Ubuntu / Debian

     # apt-get install php5-cli php-pear php5-xmlrpc php5-xsl

    Fedora / RHEL / CentOS

     # yum install php-cli php-pear php-xmlrpc php-xsl

    OpenSuSE

    Benutzer Sie yast, um die Pakete "php5-pear", "php5-xmlrpc" und "php5-xsl" zu installieren. Die CLI ist im php5-Paket enthalten.

    [Anmerkung] Anmerkung

    Zumindest bei SLES10 SP2 fehlt die Funktion hash_hmac.

    Clonen Sie von icinga-web.git, um mit der aktuellsten Version zu arbeiten:

     # git clone git://git.icinga.org/icinga-web.git
  2. Die Installation

     # tar xzvf icinga-web-0.9.1-beta.tar.gz
     # cd icinga-web

    Nun können Sie schon den Installer bemühen, mit:

     # ./configure --help

    sehen Sie alle Konfigurationsmöglichkeiten.

    Ohne weitere Optionen wird das Icinga Webinterface unter /usr/local/icinga-web installiert:

     # ./configure
     # make install
  3. PHP- Abhängigkeiten

    Bitte prüfen Sie die PHP-Abhängigkeiten mit :

     # make testdeps

    Alle "require"-Test sollten erfolgreich sein. Eventuell müssen Sie die php.ini anpassen:

    Die "magic_quote_gpc" in der Apache- und der CLI-php.ini auf "Off" setzen!

     # vi /etc/php5/apache/php.ini
       magic_quotes_gpc = off
    
     # vi /etc/php5/cli/php.ini
       magic_quotes_gpc = off
    [Anmerkung] Anmerkung

    Beide Dateien müssen vorhanden sein, denn sonst erhalten Sie eine Agavi-Meldung, weil der Default von magic_quotes_gpc "ON" ist.

  4. Datenbank-Installation

    Manuelles Anlegen der Datenbank:

    Legen Sie eine Datenbank und einen Benutzer Ihrer Wahl an. Der Benutzer benötigt mindestens folgende Berechtigungen auf die Datenbank: SELECT, UPDATE, INSERT, DELETE, CREATE, DROP, ALTER, INDEX. Importieren SIe die Schema etc/database/deploy/init.sql und etc/database/deploy/db-deploy.sql in die Datenbank. Das war es auch schon.

    Automatische Installation:

    Angelegt wird eine Datenbank und ein User mit den entsprechenden Privilegien (CREATE, DROP, ALTER, INDEX). Gehen Sie nach etc und kopieren Sie die build.properties an einen sicheren Ort (z.B. nach /tmp). Ändern Sie die Datenbank-Einstellungen innerhalb der Properties-Datei. Sie können auch den Root-Benutzer der Datenbank verwenden, um das Schema anzulegen. Wechseln Sie in das etc-Verzeichnis vin icinga-web und rufen Sie phing auf mit:

     # cd /usr/local/icinga-web/etc
     # /usr/local/icinga-web/bin/phing -Dproperties=/usr/local/icinga-web/etc/build.properties db-initialize

    Jetzt müssen Sie noch einen DB-User anlegen (mit den Rechten SELECT, UPDATE, INSERT, DELETE).

  5. Icinga-Web Konfiguration

    Anpassen der Konfiguration: Editieren /usr/local/icinga-web/app/config/databases.xml und ändern Sie die Datenbank-Einstellungen (ab Zeile 7, im Beispiel DB-User: icinga_user, PW: password):

        <database name="appkit_default" class="AgaviDoctrineDatabase">
           <ae:parameter name="dsn">mysql://icinga_user:password@127.0.0.1:3306/icinga_web</ae:parameter>
           <ae:parameter name="username">icinga_user</ae:parameter>
           <ae:parameter name="password">password</ae:parameter>
           <ae:parameter name="charset">utf8</ae:parameter>
           <ae:parameter name="manager_attributes">
                
              <ae:parameter name="MODEL_LOADING">CONSERVATIVE</ae:parameter>
           </ae:parameter>
           <ae:parameter name="load_models">%de.icinga.appkit.doctrine_model_path%</ae:parameter>
       </database>

    Ändern Sie die Werte für Ihre Datenbank-Verbindung.

    [Anmerkung] Anmerkung
    Denken Sie daran, vorher die IDOUtils installiert zu haben (wie hier beschrieben: „Icinga-Schnellstart mit IDOUtils“ )

    Gehen Sie zum appkit.factories - Bereich und ändern Sie den Pfad und die Konfiguration für die icinga-api.

     <!-- icinga-api data interface -->
                    <parameter name="IcingaData">
                            <parameter name="class">IcingaData</parameter>
                            <parameter name="file">%core.module_dir%/Web/lib/icinga/factory/IcingaData.class.php </parameter>
    
                             <parameter name="requiredClasses">
                                    <!-- NONE -->
                             </parameter>
    
                             <parameter name="api_file">%core.root_dir%/icinga-api/IcingaApi.php/<parameter>
                             <parameter name="api_type">IcingaApi::CONNECTION_IDO</parameter>
    
                             <parameter name="config_type">mysql</parameter>
                             <parameter name="config_host">127.0.0.1</parameter>
    
    
                             <parameter name="config_port">3306</parameter>
                             <parameter name="config_database">icinga</parameter>
    
                             <parameter name="config_user">your-ido-user</parameter>
                             <parameter name="config_password">your-ido-pw</parameter>
    
                             <parameter name="config_table_prefix">icinga_</parameter>
                    </parameter>
  6. Apache-Konfiguration

    Voraussetzungen:

    • mod_rewrite, vielleicht müssen Sie einen Verweis erstellen:

     # ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load

    Bei OpenSuSE gibt es in der Datei /etc/sysconfig/apache2 die Zeile "APACHE_MODULES=...", der das Modul "rewrite" hinzugefügt werden muss.

    Editieren Sie die .htaccess unter /usr/local/icinga-web/pub und ändern Sie die RewriteBase (ab Zeile 14) :

     DirectoryIndex index.php
    
     Options -MultiViews -Indexes +FollowSymLinks
     Order allow,deny
     Allow from all
    
     <IfModule mod_rewrite.c>
        RewriteEngine On
    
        # This depends on your path
        # on independent hosts the base is '/'
        RewriteBase /icinga-web/
    
            # If the requested URL does not exist (it's likely an agavi route),
            # pass it as path info to index.php, the Agavi dispatch script.
            RewriteRule ^$ index.php?/ [QSA,L]
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule (.*) index.php?/$1 [QSA,L]
     </IfModule>
    
     <IfModule mod_deflate.c>
            SetOutputFilter DEFLATE
    
            BrowserMatch ^Mozilla/4 gzip-only-text/html
            BrowserMatch ^Mozilla/4\.0[678] no-gzip
    
            BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
            BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
    
            Header append Vary User-Agent env=!dont-vary
     </IfModule>
    
     <IfDefine APACHE2>
            AcceptPathInf  On
     </IfDefine>
    
     #<IfModule mod_auth_basic.c>
     #       AuthType Basic
     #       AuthName "My http basic auth realm"
     #       AuthUserFile /path/to/my/htusers
     #       require valid-user
     #</IfModule>

    Bitte erstellen Sie noch einen neuen Alias im Konfigurationsverzeichnis des Webservers (hier in der icinga.conf):

     # vi /etc/apache2/conf.d/icinga.conf
       Alias /icinga-web /usr/local/icinga-web/pub
      <directory /usr/local/icinga-web/pub>
            AllowOverride All
      </directory>

    Leeren Sie den Cache:

     # rm /usr/local/icinga-web/app/cache/config/*.php

    und starten Sie den Webserver neu:

     # service apache2 restart

    bzw.

     # /etc/init.d/apache2 restart
  7. Testen

    Bitte achten Sie darauf, dass MySQL, Apache, IDOUtils und Icinga gestartet sind!

    Öffnen Sie im Webbrowser http://localhost/icinga-web und loggen Sie sich mit dem User 'root' und dem Passwort 'password' ein. Bei Fehlern schauen Sie bitte in die Apache-Log-Dateien.

    Viel Spaß beim Entdecken....wir freuen uns auf Ihr Feedback.