Icinga unter Squeeze installieren

Icinga ist ein Fork des bekannten opensource-Monitoring-Tools Nagios. Hier wollen wir ausgehend von einer Debian Squeeze Grundinstallation die weiteren Schritte zu einer lauffähigen Monitoring-Lösung beschreiben. Icinga ist im Übrigen voll kompatibel zu den Nagios-Plugins, auch zu selbst erstellten.
Icinga wird hierbei mit MySQL-Unterstützung, sowie dem eAccelerator als PHP-Beschleuniger konfiguriert.

>> nach oben

 

 

Interessantes:

Icinga unter Squeeze

Squeeze für Icinga vorbereiten

Hier sind noch einige fehlende Pakete nachzuinstallieren. Als Erstes bringen wir das System auf aktuellen Zustand:

apt-get update && apt-get upgrade

Nun installieren wir den Apache2 Webserver ohne zusätzliche Module:

apt-get install -y apache2

Wir benötigen natürlich noch die PHP-Module für unsere Konfiguration, welche wir mit folgendem Kommando zur Verfügung stellen:

apt-get install -y libapache2-mod-php5 php5-cli php5-common php5-cgi

>> nach oben

eAccelerator integrieren

Um PHP mit dem eAccelerator zu beschleunigen, installieren wir diesen nun. Dieser ist jedoch nur als Source verfügbar, wir müssen diesen dann für unser System kompilieren, was allerdings ruckzuck geht. Es werden hierzu noch folgende Pakete benötigt:

apt-get install build-essential php5-dev bzip2

Nun besorgen wir uns die Sourcen von der Herstellerseite für den Eaccelerator eAccelerator Download. Ich empfehle, immer die neuesten Stable-Pakete zu verwenden:

cd /usr/src
wget http://acelnmp.googlecode.com/files/eaccelerator-0.9.6.1.tar.bz2

UPDATE: Link war tot, angepasst

Nun haben wir ein gepacktes Archiv vorliegen, welches wir nun entpacken:

tar -xjvf eaccelerator-0.9.6.1.tar.bz2

Mit folgenden Befehlen wird Eaccelerator kompiliert:

cd eaccelerator-0.9.6.1
phpize
./configure
make
make install

Wir brauchen noch einen Editor. Dazu nehmen wir Nano, dieser zeigt die wichtigsten Befehle im Fenster gleich an, so dass man nicht immer nachschauen muss, welchen Befehl man zu verwenden hat. STRG-O ist hierbei speichern, STRG-X schließen:

apt-get install nano

Jetzt bringen wir PHP bei, den Accelerator auch zu verwenden. Dazu nutzen wir nano, den Editor, den wir gerade installiert haben:

nano /etc/php5/conf.d/eaccelerator.ini

Die Datei ist noch leer, das ändern wir mit folgenden Inhalten:

extension="eaccelerator.so"
eaccelerator.shm_size="32"
eaccelerator.cache_dir="/var/cache/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
eaccelerator.allowed_admin_path="/var/www/control.php"

Nun müssen wir das Cache-Verzeichnis anlegen und die notwendigen Rechte vergeben:

mkdir /var/cache/eaccelerator
chmod 777 /var/cache/eaccelerator

Jetzt bauen wir den Accelerator so um, dass wir ein Webcontrolpanel haben:

cp /usr/src/eaccelerator-0.9.6.1/control.php /var/www/

Anpassen der Kontrolldatei:

nano /var/www/control.php

Hier kann man die Logindaten anpassen:

$user = “admin“;
$pw = “eAccelerator“;

Damit der Apache das auch alles mitbekommt, starten wir ihn neu.

/etc/init.d/apache2 restart

Das Webfrontend des Accelerators ist jetzt erreichbar unter:

"Ip des Apachen"/control.php

>> nach oben

Icinga installieren

Damit Icinga auch funktioniert, benötigten wir einen eigenen User namens icinga. Diesen legen wir an und vergeben auch ein Passwort:

useradd -m icinga
passwd icinga

Für den vollem Funktionsumfang des Webinterface brauchen wir auch noch eine spezielle Gruppe, in welche die beiden User icinga und www-data hinzugefügt werden müssen:

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

Wir brauchen noch ein paar Pakete:

apt-get install libsnmp-base snmp snmpd

Jetzt ist es an der Zeit, Icinga zu installieren:

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

Wir checken, ob der Download korrekt ist

md5sum -c icinga-1.3.1.tar.gz.md5

Wenn ok, dann entpacken wir das Archiv:

tar xvzf icinga-1.3.1.tar.gz

Und nun wieder bauen

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

Das kann je nach System eine Weile dauern. Die Nagios-Plugins bauen wir auch gleich ein, die brauchen wir sowieso.

cd /usr/srcwget 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
cd /usr/src/nagios-plugins-1.4.15
./configure --prefix=/usr/local/icinga --with-nagios-user=icinga
make
make install

Nun brauchen wir noch einen User und das dazu gehörige Passwort für das Login am Webinterface, wobei "icingaadmin" ein x-beliebiger Name sein kann:

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

Wir bringen dem Apachen das Neue bei:

/etc/init.d/apache2 restart

>> nach oben

MySQL installieren

Nun geht es weiter zur Datenbankinstallation.

apt-get install -y mysql-server php5-mysql

Nicht vergessen, das MySQL-Root Passwort zu setzen

Nach der Bestätigung des Passworts ist die Installation des MySQL Servers abgeschlossen und wir starten den Apachen neu:

/etc/init.d/apache2 restart

Wir brauchen noch einige Treiber:

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

Die GD Libraries

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

>> nach oben

Datenbankverbindung etablieren

Damit die Datenbankanbindung funktioniert, müssen wir das auch noch konfigurieren.Wir verbinden uns auf die MySQL-Konsole, das Passwort ist jenes, dass wir vorhin bei der Installation von MySQL angegeben haben:

mysql -u root -p

Anlegen der Datenbank, wobei "password" durch ein eigenes Passwort ersetzt werden muss:

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

Nun lesen wir die Datenbankstruktur ein:

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

Wir benennen ersteinmal die Beispielkonfigurationsdateien 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 editieren dann die config:

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

In der Config checken wir folgende Einträge, wobei "password" das vorher für die Datenbank vergebene ist:

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

Das idomod-Eventbroker-Modul muss aktiviert werden. Dazu entfernen wir das Kommentarzeichen, oder setzen die Zeile neu:

nano /usr/local/icinga/etc/icinga.cfg

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

Apachen neustarten:

/etc/init.d/apache2 restart

Nun folgt das Anpassen der Startscripte:

/etc/init.d/ido2db start
/etc/init.d/icinga start
update-rc.d ido2db defaults 50 19
update-rc.d icinga defaults 51 18

Wir haben es geschafft! Der Icinga-Server sollte nun unter folgender Adresse erreichbar sein:

http://IP Adresse des Servers/icinga

Wie man nun seine Devices abfrägt, das kann man in der sehr guten Dokumentation von Icinga, erreichbar von der Startseite des Icinga-Webfrontends, nachlesen. Diese steht auch in deutscher Sprache zur Verfügung. Eventuell schiebe ich noch ein Howto nach.

>> nach oben


Uwe Neumann - Letzte Überarbeitung: 19.01.2012


Diesen Artikel weiter empfehlen:


» Ihr Kommentar

s.rog:
Scheint ja n netter, kurzer Guide zu sein....allerdings scheind der Link für den eaccelerator nicht so zu funzen....bekomme im terminal Error.404 Meldung.....per Browser geprüft ob ide Seite up ist....ist sie.....ne Idee???

Errorsystem:
Der Link ist tot. Ich habe ihn angepasst.

tbaer:
ganz feine Anleitung hier paßt Alles danke