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
Mr Wong
del.icio.us
Digg
Web News
Yigg