Home / Monitoring / HowTo: ICINGA 1.6.1 – Installation unter Debian 6 (Squeeze) mit IDOUtils, Classic Webinterface und MySQL
Icinga Logo

HowTo: ICINGA 1.6.1 – Installation unter Debian 6 (Squeeze) mit IDOUtils, Classic Webinterface und MySQL

Da sich in der letzten Zeit im ICINGA Projekt viel getan hat und die Jungs recht fleissig sind, ist mein Artikel zur Installation von Icinga 1.0.2 unter Debian Lenny schon ziemlich veraltet. Ich werde daher in diesem HowTo die Installation von ICINGA auf die Version 1.6.1 anpassen und auch gleich zu Debian 6 (Squeeze) wechseln:

Achtung: diese Installationsanleitung ist für die sehr veraltete Version 1.0.2. Hier geht es zur Installationsanleitung für ICINGA 1.9.x unter Debian Wheezy

Abhängigkeiten und erforderliche Programme installieren

Folgende Voraussetzungen müssen für den Betrieb von ICINGA installiert sein:

*) Apache Webserver
*) MySQL Datenbank + libdbi Treiber
*) GCC Compiler, C/C++ dev libraries
*) GD Library

Installation des Apache Webserver + Mysql Datenbank

Die benötigten libdbi Treiber werden über folgenden Befehl installiert:

apt-get install -y libdbi0-dev libdbd-mysql

Der GCC Compiler und die erforderlichen C/C++ development Libraries werden zusammengefasst als build-essential installiert:

apt-get install -y build-essential

Installation der GD Libraries:

apt-get install -y libgd2-xpm-dev libjpeg62-dev libpng12-dev

Benutzer und Gruppe für ICINGA anlegen

Damit ICINGA funktioniert, benötigt es einen eigenen Benutzer mit dem Namen icinga. Diesen legen wir wie folgt an und vergeben ein Passwort:

useradd -m icinga
passwd icinga

Um das Webinterface mit vollem Funktionsumfang nutzen zu können (Kommandos zu senden) wird noch eine spezielle Gruppe benötigt in welche die beiden User icinga und www-data hinzugefügt werden:

groupadd icinga-cmd
usermod -a -G icinga-cmd icinga
usermod -a -G icinga-cmd www-data

ICINGA downloaden und entpacken

Nach dem die Vorbereitungen soweit getroffen sind, kann ICINGA von Sourceforge downgeloaded, validiert und entpackt werden. Ich benutze dazu 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.6.1 die momentane stable Version.

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

Folgendes Ergebniss muss beim MD5 Check herauskommen:

icinga-1.6.1.tar.gz: OK

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

tar -xvzf icinga-1.6.1.tar.gz

Installation von ICINGA

Wir beginnen jetzt mit der eigentlichen Installation von ICINGA mit den entsprechenden Optionen für IDOUtils

cd /usr/src/icinga-1.6.1
./configure --with-command-group=icinga-cmd --enable-idoutils
make all
make fullinstall
make install-config 

Die jeweiligen Schritte können abhängig vom System einige Zeit in Anspruch nehmen. Die Grundinstallation von ICINGA ist damit abgeschlossen, für den Betrieb sind aber noch einige weitere Konfigurationsschritte notwendig. Eine Bespielkonfiguration wurde bereits im Pfad /usr/local/icinga/etc angelegt. Die Gesamtinstallation ist dadurch aber noch nicht abgeschlossen.

Download und Installation der Nagios Plugins

ICINGA verwendet die Nagios Plugins um die eigentlichen Checks durchzuführen. Die Plugins sind kleine eigenständige Programme, die auch unabhängig von ICINGA bzw. Nagios verwendet werden können. Der Download ist ebenfalls bei Sourceforge verfügbar und ich empfehle wieder die Verwendung der aktuellsten stable Version. In meinem Fall die Version 1.4.15.

cd /usr/src
wget http://sourceforge.net/projects/nagiosplug/files/nagiosplug/1.4.15/nagios-plugins-1.4.15.tar.gz
tar -xzvf nagios-plugins-1.4.15.tar.gz

Nach dem Entpacken können die Plugins installiert werden:

cd /usr/src/nagios-plugins-1.4.15
./configure --prefix=/usr/local/icinga --with-cgiurl=/icinga/cgi-bin --with-htmurl=/icinga --with-nagios-user=icinga --with-nagios-group=icinga
make
make install

Installation des ICINGA klassischen Webinterface

Damit Icinga auch im Browser und mit dem klassischen Webinterface dargestellt wird, müssen wir dieses erst installieren. Wer allerdings das neue Webinterface installieren möchte, kann das natürlich in dieser Anleitung installieren (auch nachträglich und zusätzlich zum klassischen Webinterface.

/usr/src/icinga-1.6.1
make cgis
make install-cgis
make install-html
make install-webconf

Die Apache Konfigurationsdatei wurde nun in /etc/apache2/conf.d/icinga.conf abgelegt.

Jetzt definieren wir den User und ein entsprechendes Passwort, mit dem wir uns zukünftig auf dem Webinterface anmelden (icingaadmin kann dabei durch einen beliebigen Usernamen ersetzt werden, es ist jedoch zu beachten, dass die Datei /usr/local/icinga/etc/cgi.cfg angepasst werden muss):

htpasswd -c /usr/local/icinga/etc/htpasswd.users icingaadmin

Anmerkung: Um später weitere User hinzuzufügen muss die Option „-c“ weggelassen werden, da die Datei sonst immer neu generiert und überschrieben wird. Im Anschluss den Apache neu starten:

/etc/init.d/apache2 restart

Konfiguration der MySQL Datenbank und IDOUtils

Damit IDOUtils auch in unsere MySQL Datenbank schreibt, müssen wir eine entsprechende Datenbank anlegen und IDOUtils konfigurieren. 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 wird die Datenbank und den User icinga_usr an. Bitte password durch ein ensprechendes Passwort ersetzen. (insgesamt 5 Befehle)

create database icinga;
GRANT USAGE ON *.* TO 'icinga_usr'@'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, DROP, CREATE VIEW ON icinga.* TO 'icinga_usr'@'localhost';
flush privileges;
quit

Nachdem die Datenbank und der User erstellt wurde, spielen wir die in den Sourcen mitgelieferte Datenbankstruktur in die Datenbank icinga ein (dazu wird das root Passwort benötigt):

mysql -u root -p icinga < /usr/src/icinga-1.6.1/module/idoutils/db/mysql/mysql.sql

Jetzt muss IDOUtils noch die Datenbankverbindung mitgeteilt werden. Dazu benennen wir die Beispielkonfigurationen um…

mv /usr/local/icinga/etc/ido2db.cfg-sample /usr/local/icinga/etc/ido2db.cfg
mv /usr/local/icinga/etc/idomod.cfg-sample /usr/local/icinga/etc/idomod.cfg
mv /usr/local/icinga/etc/modules/idoutils.cfg-sample /usr/local/icinga/etc/modules/idoutils.cfg 

…und passen die entsprechenden Einträge an. Im Normalfall sollte die Konfiguration bis auf den User und Passwort passen. (password wieder durch das eingegebene Passwort ersetzen):

vi /usr/local/icinga/etc/ido2db.cfg

db_servertype=mysql
db_host=localhost
db_port=3306
db_name=icinga
db_user=icinga_usr
db_pass=password

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

Dienste Starten und Autostart konfigurieren

Die entsprechenden Dienste bzw. Init Skripts sollten in dieser Reihenfolge gestartet werden:

/etc/init.d/ido2db start
/etc/init.d/icinga start

Damit beim Systemstart/Shutdown IDOUtils und ICINGA auch automatisch in der richtigen Reihenfolge ausgeführt und beendet werden, benötigen wir noch diese 2 Befehle

update-rc.d ido2db defaults
update-rc.d icinga defaults

Das Webinterface

Herzlichen Glückwunsch, euer ICINGA ist nun voll funktionsfähig und überwacht den lokalen Server.

Der erste Stein sollte damit gelegt sein. Jetzt liegt es an Euch, Euer ICINGA zu befüllen und eure Serverfarmen zu überwachen. Solltet Ihr bereits ein Nagios im Einsatz gehabt haben, dann ist es mühelos möglich, die Konfigurationsdateien zu übernehmen. So kann in wenigen Schritten das bestehende Nagios durch Icinga ersetzt werden.

Die Beispiel Konfigurationsdateien liegen am Server unter /usr/local/icinga/etc/objects wo Ihr im ersten Schritt gleich mal die contacts.cfg anpassen solltet damit ihr die Alterting Emails auf eure richtige Mailadresse bekommt.

Weitere Updates, wie Installation von NagVis, NConf und NETWAYS Grapher kommen in den nächsten Tagen und Wochen. Um kein Update zu verpassen, abonniert ihr am Besten meinen RSS Feed oder folgt mir auf Twitter und Facebook.

Der Zugriff auf das klassische Webinterface erfolgt bequem per Browser mit folgender URL: (User=icingaadmin und Passwort welches ihr vergeben habt:

http://serverip/icinga
http://serverhostname/icinga 

Und so sieht das Monitoring am ICINGA Server aus:

  

3.8/5 - (22 votes)

Auch cool

Fahrzeugdiagnose selber durchführen können mit dem iPhone

Wieder einmal blinkt eine Kontrolleleuchte im Fahrzeug auf. Doch was bedeutet diese? Sollte man am …

8 Kommentare

  1. Muss man bei Icinga immer noch alle Configs von Hand erstellen?

    • Hi,
      was genau meinst du mit „Hand erstellen“?

      Demo Config Files sind bereits in der Installation enthalten und der Localhost wird bereits gemonitored (sofern bei der installation ausgewählt).
      Ansonsten sind für neue Hosts die Config Files zu bearbeiten.

      Gruß
      Patrick

  2. Hallo.

    Ich möchte ergänzen, dass wenn der Benutzer mittels
    htpasswd -c /usr/local/icinga/etc/htpasswd.users

    erstellt wird, dieser, falls abweichend von „icingaadmin“ auch in der cgi.cfg
    ( /usr/local/icinga/etc/cgi.cfg )
    entsprechend durch ersetzt werden muss. Ansonsten kommt es im Web-Frontend zu Fehlermeldungen, dass der Access-Denied ist.

  3. Hallo 5h4d3,

    ich danke dir für diesen Hinweis. Ich habe den Beitrag ergänzt. Ein Blog lebt von der Community!

    Greets
    Patrick

  4. hallo ich habe den guide befolgt und wenn ich denn webserver aufrufe bekomme ich n schweren fehler:

    Icinga Startup Delay

    CRITICAL

    08-02-2012 01:05:32

    0d 2h 42m 38s

    1/4

    The command defined for service Icinga Startup Delay does not exist

    und im log steht:
    [1343861599] Event loop started…
    [1343861599] error executing command ‚/usr/local/icinga/libexec/check_ping‘: No such file or directory. Make sure that the file actually exists (in PATH, if set) and is executable!
    [1343861609] error executing command ‚/usr/local/icinga/libexec/check_procs‘: No such file or directory. Make sure that the file actually exists (in PATH, if set) and is executable!
    [1343861632] error executing command ‚/usr/local/icinga/libexec/check_load‘: No such file or directory. Make sure that the file actually exists (in PATH, if set) and is executable!
    [1343861665] error executing command ‚/usr/local/icinga/libexec/check_users‘: No such file or directory. Make sure that the file actually exists (in PATH, if set) and is executable!
    [1343861699] error executing command ‚/usr/local/icinga/libexec/check_http‘: No such file or directory. Make sure that the file actually exists (in PATH, if set) and is executable!
    [1343861739] The command defined for service Icinga Startup Delay does not exist
    [1343861765] error executing command ‚/usr/local/icinga/libexec/check_ping‘: No such file or directory. Make sure that the file actually exists (in PATH, if set) and is executable!
    [1343861799] error executing command ‚/usr/local/icinga/libexec/check_disk‘: No such file or directory. Make sure that the file actually exists (in PATH, if set) and is executable!
    [1343861832] error executing command ‚/usr/local/icinga/libexec/check_ssh‘: No such file or directory. Make sure that the file actually exists (in PATH, if set) and is executable!
    [1343861865] error executing command ‚/usr/local/icinga/libexec/check_swap‘: No such file or directory. Make sure that the file actually exists (in PATH, if set) and is executable!
    [1343861909] error executing command ‚/usr/local/icinga/libexec/check_ping‘: No such file or directory. Make sure that the file actually exists (in PATH, if set) and is executable!
    [1343861909] error executing command ‚/usr/local/icinga/libexec/check_procs‘: No such file or directory. Make sure that the file actually exists (in PATH, if set) and is executable!
    [1343861932] error executing command ‚/usr/local/icinga/libexec/check_load‘: No such file or directory. Make sure that the file actually exists (in PATH, if set) and is executable!
    [1343861965] error executing command ‚/usr/local/icinga/libexec/check_users‘: No such file or directory. Make sure that the file actually exists (in PATH, if set) and is executable!

    mfg Evil