Home / Linux / HowTo: Icinga – Web Frontend 1.0.1 (neues Interface) Installation unter Debian 5 (Lenny)

HowTo: Icinga – Web Frontend 1.0.1 (neues Interface) Installation unter Debian 5 (Lenny)

icon_icinga_biggerDa ich bereits vor einigen Wochen die Installationsanleitung für ICINGA + IDOUtils mit dem alten langweiligen Web Frontend veröffentlicht habe, möchte ich auch das neue Design vorstellen und Schritt für Schritt erklären wie man es unter Debian Lenny installiert und in das bereits bestehende ICINGA integriert.

Abhängigkeiten und erforderliche Programme installieren

Folgende Voraussetzungen müssen für den Betrieb des neuen ICINGA Web Frontends installiert sein:

*) Apache Webserver
*) PHP 5.x
*) MySQL Datenbank
*) ICINGA mit IDOUtils
*) ICINGA API

Wer ICINGA nach meiner Installationsanleitung, oder der offiziellen icinga Docs installiert hat, sollte alle notwendigen Voraussetzungen installiert haben. Es fehlen lediglich die PHP Pakete, welche über folgenden Befehl installiert werden:

apt-get install php5-cli php-pear php5-xmlrpc php5-xsl php5-ldap php5-gd php5-mysql

Zusätzlich muss das Apache Modul Rewrite aktiviert werden:

a2enmod rewrite

ICINGA Web Frontend downloaden und entpacken

Nach dem die Vorbereitungen soweit getroffen sind, kann das neue ICINGA Web Paket von Sourceforge downgeloaded, validiert und entpackt werden. Ich benutze dazu wie immer das Verzeichnis /usr/src. Bitte achtet darauf, dass ihr die aktuelle stable Version runterladet, um keine ältere Version zu installieren. In meinem Fall ist die Version 1.0.1 die momentane stable Version.

cd /usr/src
wget http://sourceforge.net/projects/icinga/files/icinga-web/1.0.1/icinga-web-1.0.1.tar.gz/download
wget http://sourceforge.net/projects/icinga/files/icinga-web/1.0.1/icinga-web-1.0.1.tar.gz.md5/download
md5sum -c icinga-web-1.0.1.tar.gz.md5

Folgendes Ergebniss muss beim MD5 Check herauskommen:

icinga-web-1.0.1.tar.gz: OK

Das Paket wird anschließend mit folgendem Befehl in das /usr/src Verzeichnis entpackt:

tar xvzf icinga-web-1.0.1.tar.gz

Installation des ICINGA Web Frontends

Wir beginnen jetzt mit der eigentlichen Installation des neuen Webinterfaces in das Verzeichnis /usr/local/icinga-web. Bitte password durch ein ensprechendes Passwort ersetzen.

cd /usr/src/icinga-web-1.0.1
./configure --prefix=/usr/local/icinga-web --with-icinga-api=/usr/local/icinga/share/icinga-api --with-db-name=icinga_web --with-db-user=icinga_web --with-db-pass=password
make install

PHP Abhängigkeiten überprüfen

Mit folgendem Befehl wird die PHP Installation + Module überprüft:

make testdeps

Der Check sollte wie folgt aussehen (zum Vergrößern klicken):

Die Extension php5-pdo-pgsql kann dabei vernachlässigt werden, da diese nur bei PostgreSQL zum Einsatz kommt. Wir verwenden jedoch MySQL. Alle anderen Checks sollten auch OK stehen.

PHP Magic Quotes auf Off setzen

Folgende php.ini’s müssen editiert werden…

vi /etc/php5/apache/php.ini
vi /etc/php5/cli/php.ini

…um die magic_quotes_gpc auf Off zu setzen (standardmäßig auf on):

magic_quotes_gpc = off

Konfiguration der MySQL Datenbank

Damit das Icinga Web Frontend funktioniert benötigen wir eine eigene MySQL Datenbank. Mit folgenden Befehl verbinden wir uns mit der MySQL Server Konsole:

mysql -u root -p

Ihr werdet nun nach eurem MySQL root Passwort gefragt, das ihr bei der Installation angegeben habt. Nun legen wir den User icinga_web mit den entsprechenden Berechtigungen an. Bitte password durch das vorhin beim Kompilieren verwendete ersetzen.

GRANT USAGE ON icinga_web.* TO 'icinga_web'@'localhost' IDENTIFIED BY 'password' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX ON icinga_web.* TO 'icinga_web'@'localhost';
flush privileges;
quit

Nachdem der User erstellt wurde, legen wir mit dem mitgelieferten Skript die Datenbank icinga_web an und spielen die mitgelieferte Datenbankstruktur ein:

cd /usr/src/icinga-web-1.0.1
make db-initialize

Folgende Frage kann nun mit „Y“ bestätigt werden, da wir bereits beim Kompilieren die entsprechenden Credentials definiert haben:

Use the db-user specified in icinga-webs database.xml (Needs create Database/create Table rights)?(n,y)? y

Konfiguration API

Folgende Einstellungen müssen für die ICINGA API vorgenommen werden, damit diese mit den IDOUtils kommunizieren kann. Als Datenbank Parameter wird also die IDOUtils Datenbank mit dem entsprechenden User + Passwort angegeben. (wurde bei der Grundinstallation von Icinga mit den IDOUtils vorgenommen).

vi /usr/local/icinga-web/app/modules/Web/config/module.xml

<setting name="api.interfaces.data">
<ae:parameter name="api_type">IcingaApi::CONNECTION_IDO</ae:parameter>
<ae:parameter name="config_type">mysql</ae:parameter>
<ae:parameter name="config_host">127.0.0.1</ae:parameter>
<ae:parameter name="config_port">3306</ae:parameter>
<ae:parameter name="config_database">icinga</ae:parameter>
<ae:parameter name="config_user">icinga</ae:parameter>
<ae:parameter name="config_password">password</ae:parameter>
<ae:parameter name="config_table_prefix">icinga_</ae:parameter>
</setting>

Apache Alias erstellen

Damit das neue Interface auch über unseren Webserver ausgegeben wird, erstellen wir eine neue Apache Konfigurationsdatei…

vi /etc/apache2/conf.d/icinga-web.conf

…mit foglendem Inhalt

Alias /icinga-web /usr/local/icinga-web/pub
<directory /usr/local/icinga-web/pub>
AllowOverride All
</directory>

Apache neu starten

apache2ctl restart

/usr/local/icinga/var/icinga.log und /var/log/apache2/error.log auf Errors überprüfen.

Das neue Web Frontend

[sam id=’2′ codes=’true‘]

Der Zugriff auf das neue ICINGA Web Frontend  erfolgt bequem per Browser mit folgender URL:

http://serverip/icing-web

Initial Login Daten:
User: root
Passwort: password

Das Login Passwort sollte dann umgehend über „Admin“ -> „Users“ geändert werden.

Und so sieht das Monitoring am ICINGA Server aus:

4.4/5 - (19 votes)

Auch cool

Linux richtig anwenden: Tipps und Tricks für eine optimale Erfahrung

Die Kombination aus Spiele-Plattformen, und dem Betriebssystem Linux mag auf den ersten Blick ungewöhnlich erscheinen. …

17 Kommentare

  1. Hoch komplex das Thema. Muss sagen das ist nur für Cracks, oder etwa nicht?

    • Hi Phil,

      eigentlich ist es garnicht so schwer, und einmal anhand der Anleitung installiert, ist die Benutzung ein Kinderspiel 😉

      Gruß
      Patrick

    • Vielen Dank für die tolle Anleitung.
      Hatte schon 3 misslungene Installationen hinter mir – mit Deiner lief es auf Anhieb.

      Grüße
      tty

  2. Wir haben bei uns zuerst auch versucht, Icinga zu installieren. Nach mehreren Anläufen lief es auch endlich, hat aber nur Bugs produziert. Keine Meldung per E-Mail beim Ausfall, WI hing zum Teil komplett etc…
    Mit Nagios lief es dann eigentlich problemlos. Zwar dauerte die Konfiguration auch ziemlich lange und das Interface ist nicht so „bunt“, aber es funktioniert wie es sein sollte und das ist wohl das Hauptargument wieso bei uns Nagios zum Einsatz kommt.
    Ein Tut für Nagios wäre echt super, vor allem für die Leute, bei denen Icinga Probleme macht.

    • Halllo,

      also ich habe bei Icinga noch keine Probleme gehabt, und auch noch von keinem Kunden irgenwelche Beschwerden bezüglich Performance erhalten.

      Icinga läuft wirklich stabil und gut.

      Es gibt im Netz unzählige Nagios Installations Tutorials.

      Gruß
      Patrick

  3. Hallo,

    habe grad das Icinga-Web Frontend installiert, schaut super aus. Allerdings bekommt er keine Hosts,Services usw aus Icinga übermittelt…. zieht er sich die aus der Datenbank die ich für Icinga erstellt hab?? mich verwirrt auch das erstellen der Datenbank „icinga_web“ die geb ich ja in der API Konfiguration gar nich an! Bin am verzweifeln:( 😀
    Gruß
    Sebastian

    • Hallo Sebastian,

      Icinga hast du Grundsätzlich mit Idoutils installiert? Meine Idoutils Datenbank ist „icinga“ welche dann per API verknüpft wird. Das Web Interface benutzt zusätzlich eine eigene Datenbank namens „icinga_web“

      Gruß
      Patrick

  4. Hi,

    Habe nach dem Tutorial Icinga sowie das Webfrontend installiert. Icinga an sich problemlos, Oberfläche funktioniert auch. Nur in der Weboberfläche wird anscheinend das CSS nicht geladen (steht alles am linken Bildschirmrand), auch mit verschiendenen Browsern getestet. Kann mir da wer weiterhelfen?

    Gruß
    Jens

  5. Lieber Patrick

    Zuallererst möchte ich Dir ein supergrosses Dankeschön für Deine Doku sagen. Du hast mich damit um so manche Klippen herumgesteuert. DANKE!

    Dann möchte ich noch auf eine, vermutlich versionsbedingte, Änderung bezüglich der API-Konfiguration hinweisen. In Deiner Anleitung gibst Du den Block mit den API-Verbindungseinstellungen an, mit dem man die Daten analog der Konfiguration in /usr/local/icinga/etc/ido2db.cfg auf /usr/local/icinga-web/app/modules/Web/config/module.xml übertragen soll. Ich habe bei mir die icinga-web Version 1.3.0 installiert und dort eine Auslagerung der Verbindungseinstellungen auf /usr/local/icinga-web/app/modules/Web/config/icinga-io.xml festgestellt.

    Der Fehler, den man erhält lautet:

    getConnection failed: Database connection failed: SQLSTATE[28000] [1045] Access denied for user ‚icinga’@’localhost‘ (using password: YES))

    Das liegt daran, dass er die Verbindungsdaten, die man manuell in die /usr/local/icinga-web/app/modules/Web/config/module.xml eingetragen hat, zwar akzeptiert, diese jedoch durch die Einbindung der Datei

    überschreibt. Man sucht sich dann einen Wolf. 😉

    Viele Grüsse

    Jürgen

    • Hallo Jürgen,

      Besten Dank für deinen Tipp! Das wird für die neueste Version einigen Lesern das Leben erleichtern.
      Ich werde natürlich die Doku in den nächsten Tagen auf 1.3.0 anpassen.

      Gruß
      Patrick

  6. Hi Patrick,

    nun auch ich bin auf Deine Seiten gestoßen, Respekt. Tolle Arbeit. Folgendes Problem, wenn ich in icinga-web z.B. statusOverall aufrufe: (apache access.log)

    „GET /icinga-web/cronks/statusOverall/json?_dc=1312407292664 HTTP/1.1“ 500 1526 „http://icinga-noc.home.int/icinga-web/“

    Ich bekomme somit keine Daten angezeigt. HTTP Fehler 500? Könnte mir noch nicht erklären, wo ich einen Fehler produziert habe, während ich mich penibel an Dein HowTo gehalten habe.

    Freu mich auf Antwort. Danke.
    Cheers axel

    • Ich noch mal: Problem noch nicht gelöst. Benutze auch Squeeze, ob es da noch eine Besonderheit gibt?

      Folgender Test ergab noch:
      php icingaWebTesting.php

      PHP Warning: require_once(PHPUnit/Framework.php): failed to open stream: No such file or directory in /usr/local/icinga-web/etc/tests/icingaWebTesting.php on line 3

      PHP Fatal error: require_once(): Failed opening required ‚PHPUnit/Framework.php‘ (include_path=‘.:/usr/share/php:/usr/share/pear‘) in /usr/local/icinga-web/etc/tests/icingaWebTesting.php on line 3

      Cheers

      • Das hier könnte die Lösung sein. Nach dem ich hier geschaut habe:

        vi /usr/local/icinga/share/icinga-api/log/icingaApi.log

        2011-08-04T01:13:25+00:00 – [EXCEPTION] Database connection failed: SQLSTATE[28000] [1045] Access denied for user ‘icinga’@’localhost’ (using password: YES)
        2011-08-04T01:13:25+00:00 – [EXCEPTION] getConnection failed: Database connection failed: SQLSTATE[28000] [1045] Access denied for user ‘icinga’@’localhost’ (using password: YES)

        mussten also noch “irgendwo” Auth-Daten fehlen. Ich habe dann diese Dateien bearbeitet und entweder die kompletten Settings eintragen müssen oder “config_password” ändern:

        cd /usr/local/icinga-web
        vi app/modules/Web/config/module.xml

        IcingaApi::CONNECTION_IDO
        mysql
        127.0.0.1
        3306
        icinga
        icinga
        DB_USER_PASSWORD
        icinga_

        vi app/modules/Web/config/icinga-io.xml
        DB_USER_PASSWORD

        vi app/modules/Web/config/icinga-io.site.xml
        DB_USER_PASSWORD

        DB_USER_PASSWORD entsprechend ersetzen. Danach lief mein icinga-web und vllt. ist das für eine Squeeze-Anleitung ja wichtig oder überhaupt.

        Thumbs up!
        axel

        • Sorry, da sind einige Zeichen „entsorgt“ worden.
          z.B. für
          vi app/modules/Web/config/icinga-io.xml
          DB_USER_PASSWORD

          oder

          vi app/modules/Web/config/module.xml

  7. Hi,

    hättest du lust, die neueste Version von Icinga-Web 1.5.0 auf Debian lenny zu installieren und zu testen?

    Ich bin entweder zu blöd, oder die Anleitung in deren FAQ/Wiki stimmt einfach nicht 🙁

    Ich frage mich eh – für jede Webanwendung gibt es automatic installer, auch wenn es ein total unnützes Tool ist. Für die richtig geilen Tools und Interfaces, muss man ständig lästige Installationmarathons vornehmen (Icinga, Cacti, Nagios etc.)