Icinga – Open Source Monitoring – Installation unter Debian 5 (Lenny) mit IDOUtils und MySQL Datenbank

icon_icinga_biggerWie vergangenes Jahr berichtet, wurde der bekannte Open-Source Monitoring Dienst Nagios geforkt und unter dem Projekt ICINGA in neuem Glanz veröffentlicht. Ich werde hier in den nächsten Wochen meine Erfahrungen schildern und einige HowTo’s dazu veröffentlichen. Der Start erfolgt mit der Installation von ICINGA 1.0.2 + IDOUtils unter Debian Lenny.

letztes Aktualisierung: 01.07.2010 Icinga Version 1.0.2

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.0.2 die momentane stable Version.

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

Folgendes Ergebniss muss beim MD5 Check herauskommen:

icinga-1.0.2.tar.gz: OK

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

tar xvzf icinga-1.0.2.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.0.2
./configure --with-command-group=icinga-cmd --enable-idoutils
make all
make fullinstall

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.

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.14.

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

Nach dem Entpacken können die Plugins installiert werden:

cd /usr/src/nagios-plugins-1.4.14
./configure --prefix=/usr/local/icinga --with-nagios-user=icinga
make
make install

Benutzer für das ICINGA Webinterface anlegen

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):

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 Passwort gefragt, das ihr bei der Installation angegeben habt. Nun legen wird die Datenbank und den User icinga an. Bitte password durch ein ensprechendes Passwort ersetzen.

create database icinga;
GRANT USAGE ON *.* TO 'icinga'@'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 ON icinga.* TO 'icinga'@'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:

cd /usr/src/icinga-1.0.2/module/idoutils/db/mysql
mysql -u root -p icinga < 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

…und passen die entsprechenden Einträge an (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
db_pass=password

Nun muss das idomod-Eventbroker-Modul aktiviert werden. Dazu editieren wir folgende Datei und fügen die entsprechende Zeile ein bzw. entfernen das Kommentarzeichen, falls die Zeile bereits vorhanden ist.

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

broker_module=/usr/local/icinga/bin/idomod.o config_file=/usr/local/icinga/etc/idomod.cfg

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 IDOUtils und ICINGA auch automatisch in der richtigen Reihenfolge ausgeführt werden, benötigen wir noch diese 2 Befehle

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

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. 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 Webinterface erfolgt bequem per Browser mit folgender URL:

http://serverip/icinga

Und so sieht das Monitoring am ICINGA Server aus:

Ähnliche Artikel:

  1. HowTo: Icinga – Web Frontend 1.0.1 (neues Interface) Installation unter Debian 5 (Lenny)
  2. ICINGA – Nagios ist geforked
  3. Webserver (LAMP) Installation unter Debian 5 (Lenny) und Ubuntu
  4. MySQL – ERROR 1045: Access denied for user ‘debian-sys-maint’@'localhost’
  5. VMware Server 2 installation unter Debian 5 (Lenny)

Tags: , , , , , ,

Freitag, Januar 15th, 2010 Linux

8 Kommentare zum Thema Icinga – Open Source Monitoring – Installation unter Debian 5 (Lenny) mit IDOUtils und MySQL Datenbank

  • Danke für die tolle Anleitung!

    Falls Fehler auffallen oder feature requests anfallen, sind wir über einen Eintrag in die issues unter https://dev.icinga.org/ sehr dankbar! :)

    Grüße

    Christian

  • Reiner sagt:

    Eine super Anleitung.
    Zwei kleine Fehler möchte ich nennen:

    fasch: /etc/init.d/apache restart
    richtig: /etc/init.d/apache2 restart
    fasch: flush privileges
    richtig: flush privileges;

    Wenn jemand mit dem vi nicht so fit ist.
    Kurzref hier: http://www.fehcom.de/pub/viref.pdf

    • Patrick sagt:

      Hallo Reiner,

      vielen Dank für deine Hinweise. Wie sich immer wieder diese Schlampigkeitsfehler einschleichen ;)
      habs auf jeden Fall sofort korrigiert.

      lg
      Patrick

  • Klaus Wenzel sagt:

    Hallo,

    super Anleitung. Hat auf Anhieb geklappt. Das nen ich mal ne super Sache. Danke

    Noch ne kleine Amerkung:
    mv /usr/local/icinga/etc/ido2db.cfg-sample
    /usr/local/icinga/etc/ido2db.cfg
    soll/sollte in einer Zeile sein, dann 110%

    Gruß
    KLaus

    • Patrick sagt:

      Hallo Klaus,

      Danke für das Lob!

      besagtes Kommando ist eigentlich in einer Zeile geschrieben, nur reicht der Platz nicht aus um es als eine Zeile darzustellen ;)

      Gruß
      Patrick

  • CS sagt:

    Also mir ist aufgefallen, dass es doch nicht ganz trivial ist, wie der User für das Webinterface heißt – habe erst meinen üblichen nick eingegeben (statt icingaadmin) und hatte so keinen Zugriff auf die Daten im Webinterface.
    Ansonsten vielen Dank für dieses Tutorial!!
    Gruß, CS

  • Patrick sagt:

    Der WebBenutzer wird unter dem Punkt “Benutzer für das ICINGA Webinterface anlegen” erstellt und ein entsprechendes Passwort vergeben.

    Wo genau liegt denn das Problem?

    Gruß
    Patrick

  • Leave a Reply

    Sysadmin's Life on Facebook
    geek kochbuchgeek kochbuch