«

»

Feb 23

Tutorial – Icinga mit IDOutils und mysql unter Debian, virtualisiert

Icinga LogoIn diesem Artikel geht es um die Installation von Icinga, dem Ableger des bekannte Nagios Monitoring Frameworks, auf einem Debian Lenny ohne KDE/Gnome.

Bei der Virtualisierung habe ich mich für VirtualBox von Oracle entschieden.

Alle wichtigen Icinga Bestandteile werden im Laufe dieses Tutorials selbst kompiliert da es keine fertigen debian Pakete gibt.

Am Ende der Installation erhält man eine saubere Icingainstallation, die sich selbst überwacht, die Daten über ein Webfront-end bereitstellt und in eine Datenbank mit Hilfe von IDOutils schreibt.

1. Installation der Virtuellen Maschine

Zuerst muss eine Virtuelle Maschine aufgesetzt werden, in der das Betriebsystem installiert wird. Dieses Verfahren ermöglicht später eine größere Flexibilität bei Backup, Hardwarewechsel und Management. Für welche Virtualisierungslösung man sich letztendlich entscheidet ist im Prinzip zweitrangig, ich habe mich für das kostenlose VirtualBox entschieden.

1.1 Benötigte Software

Debian Lenny Netzinstallations CD

VirtualBox

1.2 Einrichtung von Virtualbox + Debian

Die Installation von Virtualbox beschreibe ich nicht explizit. Die Anleitung beginnt daher mit dem Anlegen der virtuellen Maschine.

* Öffnen Sie Virtualbox und klicken Sie auf die Schaltfläche “Neu”

* In dem sich öffnenden Fenster klicken Sie auf “weiter”

* Jetzt den Namen für die Installation eingeben und das Betriebsystem (Linux) sowie die Version (Debian) auswählen.

* Die folgenden Einstellungen kann man erstmal so belassen und einfach durchklicken

* Fügen Sie jetzt das zuvor heruntergeladene Debian Iso Image im “Manager für virtuelle Medien” hinzu.

* Jetzt muss man noch zwei Einstellungen ändern. Hierzu klickt man auf “ändern”.

* In dem sich öffnenden Fenster kann man unter “Plattenspeicher” das Debian Iso Image zuweisen, unter dem Punkt “Netzwerk” ändert man die Anbindung auf Netzwerkbrücke und wählt seine aktive Netzwerkkarte, wodurch die virtuelle Maschine als eigenständiges Gerät im Netzwerk erscheint

1.3 Installation von Debian Lenny

* Starten Sie die Virtuelle Maschine

* Wählen Sie Install

* Bei der Sprachauswahl habe ich mich für englisch entschieden, deutsch funktioniert aber auch.

* Wählen Sie Ort und Tastaturlayout

* Hostname wählen, z.B. Icinga

* Wenn Sie keine Domäne besitzen kann das Feld hierfür frei bleiben

* In diesem Beispiel benutzen wir für Linux die ganze virtuelle Platte und packen alle Daten in eine Partition. Im Produktivbetrieb sollte man dieAnfallenden Nutzdaten und das System allerdings voneinander trennen.

* Geben Sie ein Adminpasswort, einen Benutzernamen und ein Benutzerpasswort ein.

* Wählen Sie einen Debian FTP Spiegel

* Nach der Installation des Basissystems wird man gefragt, ob man an einer Datenerhebung über die Softwarenutzung von Debian teilnehmen möchte, dieEntscheidung muss jeder selbst treffen.

* Bei der Software-Auswahl kann man den Punkt “Desktop enviroment” abwählen

* Klicken Sie auf “Yes” um Grub in den Bootsektor zu installieren.

1.4 Fernzugriff

Nach dem Neustart sollte das Netzwerk sofort funktionieren, wenn ein DHCP in der nähe ist.

Wie man das Netzwerk von Hand konfiguriert erkläre ich hier.

Da die Minimalinstallation von Debian noch recht unkomfortabel zu verwalten ist installiert man zuerst einen Fernzugriff und einen Dateimanager.

# aptitude install openssh-server mc

Bevor Sie jetzt mit der eigentlichen Installation starten, haben sie die Chance, von der Virtualboxkonsole zu Putty zu wechseln. Damit hat man es leichter längere URLs in die Kommandozeile zu kopieren. Die Installation und Konfiguration erkläre ich hier.

2. Installation von Icinga

Zuerst müssen einige Vorbedingungen erfüllt werden. Hierzu installiert man folgende Pakete

# aptitude install apache2 build-essential libgd2-noxpm-dev snmp libsnmp-dev
# aptitude install libjpeg62 libjpeg62-dev libpng12-0 libpng12-0-dev

Für die Verschlüsselung zu IDOUtils muss noch openssl und libssl-dev installiert werden

# aptitude install openssl libssl-dev

Als Datenbank installieren Sie MySQL

# aptitude install mysql-server mysql-client libdbi0 libdbi0-dev libsnmp-userperl libdbd-mysql

2.1 Benutzer und Gruppen anlegen

Erstellen Sie ein neues Benutzerkonto icinga und vergeben Sie ein Passwort:

# useradd -m icinga
 
# passwd icinga

Jetzt muss noch eine Gruppe für das Webinterface eingerichtet und die User hinzugefügt werden

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

2.2 Icinga und die Plugins herunterladen

Wechseln Sie in Ihr lokales Source-Verzeichnis, z.B. /usr/src und laden Sie die aktuelle Icinga Version mit wget herunter.

# cd /usr/src
 
# wget http://sourceforge.net/projects/icinga/files/icinga/1.0/icinga-1.0.tar.gz/download //MUSS AN DIE AKTUELLE VERSIONANGEPASST WERDEN!

Und bei der Gelegenheit auch noch gleich die nagios plugins

# wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.14.tar.gz //MUSS AN DIE AKTUELLE VERSION ANGEPASST WERDEN!

2.3 Icinga und die IDOUtils kompilieren und installieren

Entpacken Sie das Icinga-Archiv

# cd /usr/src/
 
# tar xvzf icinga-1.0.tar.gz
 
# cd icinga-1.0

Jetzt ist es Zeit, Icinga zu kompilieren

geben Sie folgendes ein um die Hilfefunktion aufzurufen.

# ./configure --help

Legen Sie die Verzeichnisse /etc/icinga und /var/icinga an. In ihnen befindet sich später die Konfiguration und die Statusdaten der Plugins.

# mkdir /etc/icinga/ /var/icinga/
 
# chown icinga.icinga /etc/icinga/ /var/icinga/
 
# ./configure --enable-idoutils --enable-ssl --localstatedir=/var/icinga --sysconfdir=/etc/icinga --with-command-group=icinga-cmd

Das Ergebnis des letzen Befehls sollte man sorgfältig kontrollieren und anschließend den kompiliervorgang starten sowie die Install-Skripte ausführen.

# make all
 
# make fullinstall

Die Option “fullinstall” besteht aus folgenden Einzelschritten (ACHTUNG, NICHT AUSFÜHREN)

# make install
 
# make install-init
 
# make install-config //kopiert die config Dateien nach /etc/icinga
 
# make install-commandmode
 
# make install-idoutils

2.4 Installation der Plugins

Entpacken Sie das Archiv im Quellcode Ordner

# cd /usr/src
 
# tar xzf nagios-plugins-1.4.14.tar.gz
 
# cd nagios-plugins-1.4.14

Kompilieren und installieren Sie die Plugins.

# ./configure --prefix=/usr/local/icinga --with-nagios-user=icinga --localstatedir=/var/nagios
 
# make
 
# make install

3 Basiskonfiguration

3.1 Kontakte & Rechte

In Icinga gibt es eigene Benutzer und Gruppen, diese werden in /etc/icinga/objects/contacts.cfg definiert und regeln unter anderem auch den Zugriff auf das Web-Interface. Passen Sie diese Datei an.

# nano /etc/icinga/objects/contacts.cfg

Jetzt muss die Beispielkonfiguration nur noch “scharf” geschaltet werden

# cd /etc/icinga
 
# cp idomod.cfg-sample idomod.cfg
 
# cp ido2db.cfg-sample ido2db.cfg

Stellen Sie außerdem noch sicher das folgende Einträge in der idomod.cfg und der ido2db.cfg enthalten sind:

# nano idomod.cfg
 
output_type=tcpsocket
 
output=127.0.0.1
 
use_ssl=1
 
socket_type=tcp
# nano ido2db.cfg
 
socket_type=tcp
 
use_ssl=1

Aktivieren Sie das idomod-Eventbroker-Modul. Editieren Sie /etc/icinga/icinga.cfg und suchen Sie nach “broker_module”. Aktivieren Sie diese Zeile bzw. fügen Sie die folgende Zeile hinzu (passen Sie die Namen an, falls nötig).

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

3.2 Konfigurieren von MySQL und IDOUtils

MySQL:

Anlegen von Datenbank, Benutzer und Berechtigungen

# mysql -u root -p
 
mysql> CREATE DATABASE icinga;
 
mysql> GRANT USAGE ON *.* TO 'icinga'@'localhost' IDENTIFIED BY 'icinga' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;
 
mysql> GRANT SELECT , INSERT , UPDATE , DELETE ON icinga.* TO 'icinga'@'localhost';
 
mysql> FLUSH PRIVILEGES ;
 
mysql> quit
# mysql -u root -p icinga < /usr/src/icinga-1.0/module/idoutils/db/mysql.sql

3.3 Konfigurieren des Web-Interface

Installieren Sie die Icinga-Web-Konfigurationsdatei im Apache conf.d-Verzeichnis.

# cd /usr/src/icinga-1.0
 
# make install-webconf

Legen Sie ein icingaadmin-Konto an, um sich am Web-Interface anmelden zu können. Merken Sie sich das Passwort, das Sie diesem Konto geben – Sie brauchen es später.

# htpasswd -c /etc/icinga/htpasswd.users icingaadmin //der User aus contacts.cfg und cgi.cfg

Jetzt starten Sie apache2 neu

# /etc/init.d/apache2 reload

4 Starten und testen

Starten Sie zuerst IDOutils

# /etc/init.d/ido2db start

Prüfen Sie die Icinga Konfigurationsdateien

# /usr/local/icinga/bin/icinga -v /etc/icinga/icinga.cfg

Wenn es keinen Fehler gab starten Sie jetzt Icinga

# /etc/init.d/icinga start

Prüfen Sie, ob die Datenbank gefüllt wird

# mysql -u root -p
 
mysql> use icinga;
 
mysql> SELECT COUNT(servicecheck_id) AS cnt FROM icinga_servicechecks;
 
mysql> quit

Automatischer Start beim booten

# ln -s /etc/init.d/icinga /etc/rcS.d/S99icinga

Anmelden am Webinterface

Sie können sich mit dem Benuternamen icingaadmin und dem von Ihnen vergebenen Passwort über einen Browser anmelden

http://localhost/icinga/

Damit ist die Basisinstallation geschafft.

Weiterführende Links:

Offizielle Icinga Dokumentation

Nagios-Portal


Tintenwelt - Ihr Shop für Tintenpatronen und Toner

  • Delicious
  • Facebook
  • Digg
  • Reddit
  • StumbleUpon
  • Twitter

4 Kommentare

Skip to comment form

  1. Karo

    Super Anleitung! Ich hoffe Du hast nichts dagegen dass ich es in die Welt twittere.

    Viele Grüße
    Karo

  2. klimmbimm

    darfst du gerne machen

  3. ADM

    Hi. Coole Anleitung, habe danach gerade mal einen Server aufgesetzt, hat alles auf Anhieb geklappt,
    thx

  4. Damian

    Hi,

    Super Anleitung. Das einzige ist, das “Make fullinstall ” funktionierte nicht. Nur wenn man die Installes einzeln anstößt.

    Ansonsten Super!!!

    Wenn du noch ein Tutorial für Icinga-web machen würdest , dann wäre es komplett!!!

    Grüße

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Sie können diese HTML-Tags verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>