permalink

2

Quick & Dirty: Icinga 1.0 Installation

icinga_logoI. Folgende Pakete werden benötigt um Icinga zu installieren:
- Webserver: apache
- GCC-Compiler
- C/C++ development libraries
- GD -Development-Libraries für statusmap- und trends-CGIs

r-o-f:~# aptitude install apache2 build-essential libgd2-xpm-dev libjpeg62 libjpeg62-dev libpng12 libpng12-dev

II. Pakete herunterladen, validieren und entpacken

r-o-f:~# wget http://sourceforge.net/projects/icinga/files/icinga/1.0/icinga-1.0.tar.gz/download
r-o-f:~# wget http://sourceforge.net/projects/icinga/files/icinga/1.0/icinga-1.0.tar.gz.md5/download
r-o-f:~# md5sum -c icinga-1.0.tar.gz.md5
icinga-1.0.tar.gz: OK
r-o-f:~# tar xvzf icinga-1.0.tar.gz

III. Icinga Benutzer und Gruppe anlegen, Passwort definieren

r-o-f:~# useradd -m icinga
r-o-f:~# passwd icinga
Geben Sie ein neues UNIX-Passwort ein:
Geben Sie das neue UNIX-Passwort erneut ein:
passwd: Passwort erfolgreich geändert

r-o-f:~# ls -l /home/
insgesamt 24
drwxr-xr-x 2 icinga icinga  4096 17. Dez 19:18 icinga

Mit -m Parameter bei useradd wird gleichzeitig ein gleichnamiges Homeverzeichnis angelegt.

IV. Kompilieren und Installieren

r-o-f:~# cd icinga-1.0
r-o-f:~/icinga-1.0# ./configure
....
*** Configuration summary for icinga-core 1.0 12-16-2009 ***:

 General Options:
 -------------------------
        Icinga executable:  icinga
        Icinga user/group:  icinga,icinga
       Command user/group:  icinga,icinga
            Embedded Perl:  no
             Event Broker:  yes
           Build IDOUtils:  no
        Install ${prefix}:  /usr/local/icinga
                Lock file:  ${prefix}/var/icinga.lock
   Check result directory:  ${prefix}/var/spool/checkresults
           Init directory:  /etc/init.d
  Apache conf.d directory:  /etc/apache2/conf.d
             Mail program:  /usr/bin/mail
                  Host OS:  linux-gnu

 Web Interface Options:
 ------------------------
                 HTML URL:  http://localhost/icinga/
                  CGI URL:  http://localhost/icinga/cgi-bin/
 Traceroute (used by WAP):  /usr/sbin/traceroute
....
r-o-f:~/icinga-1.0# make all
....
*** Compile finished ***
....
r-o-f:~/icinga-1.0# make fullinstall

Mit make fullinstall wird das Hauptprogramm, CGIs, API, HTML Files, Init-Scripte (/etc/init.d/) installiert und die Berechtigungen für das External-Command-Verzeichnis gesetzt.
Unter /usr/local/icinga/etc wird eine Beispielkonfiguration angelegt. Zusätzlich wird unter /etc/apache2/conf.d/icinga.conf die Konfiguration für das Web-Interface plaziert. Danach muss der Webserver neu gestartet werden.

V. Web-User und Passwort definieren

r-o-f:~# htpasswd -c /usr/local/icinga/etc/htpasswd.users root-on-fire
New password:
Re-type new password:
Adding password for user root-on-fire

Mit dem -c Parameter legt htpasswd die htpasswd.users Datei neu an bzw. überschreibt ohne Nachfrage das alte File!
Weitere user können ganz einfach mit folgendem Befehl angelegt werden:

r-o-f:~# htpasswd /usr/local/icinga/etc/htpasswd.users another-user

VII. Nagios Plugins herunterladen, kompilieren und installieren

r-o-f:~# wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.14.tar.gz
r-o-f:~# tar xvzf nagios-plugins-1.4.14.tar.gz
r-o-f:~# cd ./nagios-plugins-1.4.14
r-o-f:~/nagios-plugins-1.4.14# ./configure --prefix=/usr/local/icinga --with-nagios-user=icinga
r-o-f:~/nagios-plugins-1.4.14# make
r-o-f:~/nagios-plugins-1.4.14# make install

VIII. Kontakt & Berechtigung definieren
Icinga regelt die Benutzerberechtigung wie Nagios über die Kontaktgruppen. Der Web-User muss in einer der definierten Kontaktgruppen sein. Sonst kann er sich zwar einloggen, wird aber nichts sehen.
Ein neuer Kontakt kann in der /usr/local/icinga/etc/objects/contacts.cfg definiert werden:

define contact{
        contact_name                    root-on-fire
        use                             generic-contact  
        alias                           ROOT ON FIRE
        email                           r-o-f@localhost
        }

Wenn bei dem Service bzw. Host definiert ist, dass eine Kontaktgruppe benachrichtigt werde soll, muss der Kontakt noch zu der entsprechenden Gruppe hinzugefügt werden. Das wird auch in der contacts.cfg definiert:

define contactgroup{
        contactgroup_name               admins
        alias                           Icinga Administrators
        members                         icingaadmin,root-on-fire
        }

Weitere Web-Berechtigungen werden in der /usr/local//icinga/etc/cgi.cfg definiert.

VII. Konfiguration überprüfen und Icinga starten
Mit den folgdenen Befehlen kann die Konfiguration vor dem Start bzw. Restart überprüft werden.
Der erste Befehl ist deutlich ausführlicher…

r-o-f:~# /usr/local/icinga/bin/icinga -v /usr/local/icinga/etc/icinga.cfg
....
....
Things look okay - No serious problems were detected during the pre-flight check

oder

r-o-f:~# /etc/init.d/icinga checkconfig
Running configuration check... OK.

Wenn bei der Überprüfung keine Fehler gefunden werden kann Icinga gestartet werden:

r-o-f:~# /etc/init.d/icinga start
Starting icinga: done.

VIII. Screenshots

icinga01

icinga02

Quellen und weiterführende Links

Icinga Homepage: http://www.icinga.org/
Icinga Dokumentation: http://docs.icinga.org/
Deutsche Nagios & Icinga Community: http://www.nagios-portal.org
Nagios Homepage: http://nagios.org/
Nagios-Plugins: http://nagios.org/download/plugins