Diese Schnellstartanleitung ist dazu gedacht, Ihnen einfache Anweisungen zu liefern, wie Sie Icinga innerhalb von 30 Minuten aus dem Quellcode installieren und Ihren lokalen Rechner damit überwachen.
Hier werden keine fortgeschrittenen Installationsoptionen vorgestellt - lediglich die Grundlagen, die für 95% aller Benutzer funktionieren, die anfangen wollen.
Diese Anleitung enthält Anweisungen für drei verschiedene Linux-Distributionen: Fedora, Ubuntu und openSuSE. Ähnliche Distributionen werden wahrscheinlich auch funktionieren, darunter RedHat, CentOS, Debian und SLES.
Wenn Sie planen, Icinga OHNE IDOUtils zu nutzen, dann lesen Sie statt dessen „Icinga Quickstart“!
Was dabei herauskommt
Wenn Sie diesen Anweisungen folgen, werden Sie am Ende folgendes haben:
Icinga und die Plugins werden unterhalb von /usr/local/icinga installiert sein
Icinga wird so konfiguriert sein, dass es einige Dinge auf Ihrem lokalen System überwacht (CPU-Auslastung, Plattenbelegung, usw.)
Das Icinga-Web-Interface ist erreichbar unter http://localhost/icinga/
Eine Datenbank, die von Icinga mit Hilfe von IDOUtils gefüllt wird
Voraussetzungen
Während einiger Teile der Installation benötigen Sie root-Zugang zu Ihrer Maschine.
IDOUtils benutzt die libdbi und die libdbi-Treiber für verschiedene Datenbanken. Die Development-Libraries werden ebenfalls benötigt. Die folgenden Beispiele zeigen, wie die IDOUtils mit libdbi für MySQL oder PostgreSQL installiert werden.
Stellen Sie sicher, dass die folgenden Pakete installiert sind, bevor Sie fortfahren.
Apache
GCC-Compiler
C/C++ development libraries
GD-Development-Libraries
libdbi/libdbi-Treiber, eine Datenbank wie z.B. MySQL oder PostgreSQL
Neue Features für die IDOUtils:
SSL-Verschlüsselung zwischen idomod und ido2db
Wenn Sie SSL-Verschlüsselung verwenden möchten, werden zusätzlich die Pakete openssl und openssl-devel/libssl-dev benötigt!
![]() |
Anmerkung |
---|---|
SSL muß auch bei allen idomod-Clients aktiviert werden, sonst gehen Daten verloren!!! |
Oracle-Datenbankunterstützung
Wenn Sie Oracle als RDBMS einsetzen möchten, müssen Sie installieren:
Stellen Sie sicher, dass die Libraries in der Path-Variablen enthalten sind. Oder setzen Sie die den Oracle Library Path mit --with-oracle-lib=/path/to/instantclient
Download des ocilib-Treiber von http://orclib.sourceforge.net/ und verweisen Sie beim configure auf Ihre Oracle-Libraries und die Header-Files, z.B. die des Oracle Instant-Client:
# ./configure --with-oracle-headers-path=/path/to/instantclient/sdk/include --with-oracle-lib-path=/path/to/instantclient/ # make # make install
Installation der Pakete
Sie können diese Pakete mit Hilfe der folgenden Befehle installieren (als root oder mit sudo):
Fedora / RedHat / CentOS:
# yum install httpd gcc glibc glibc-common gd gd-devel # yum install libjpeg libjpeg-devel libpng libpng-devel
MySQL:
# yum install mysql mysql-server libdbi libdbi-devel libdbi-drivers libdbi-dbd-mysql
PostgreSQL:
# yum install postgresql postgresql-server libdbi libdbi-devel libdbi-drivers libdbi-dbd-pgsql
Debian / Ubuntu:
# apt-get install apache2 build-essential libgd2-xpm-dev # apt-get install libjpeg62 libjpeg62-dev libpng12 libpng12-dev
![]() |
Anmerkung |
---|---|
Die Zahlen <62/12> können je nach Distribution abweichen |
MySQL:
# apt-get install mysql-server mysql-client libdbi0 libdbi0-dev libdbd-mysql
PostgreSQL:
# apt-get install postgresql libdbi0 libdbi0-dev libdbd-pgsql
openSuSE:
Benutzen Sie yast zur Installation der Pakete für das RDBMS, das Sie verwenden möchten, also "mysql", "mysql-devel" und "mysql-client" bzw. "postgresql", "postgresql-devel" und "postgresql-server".
Es ist ziemlich wahrscheinlich, dass es keine libdbi-Packages gibt, so dass Sie die Sourcen herunterladen und kompilieren müssen. Ersetzen Sie dabei <rdbm> durch Ihr RDBM wie mysql oder pgsql. Bitte beachten Sie, dass der Oracle-Treiber noch nicht funktioniert. Lesen Sie daher den entsprechenden Abschnitt zu ocilib (anstatt libdbi).
Laden Sie die tar.gz-Dateien herunter und entpacken Sie diese
http://libdbi.sourceforge.net/download.html
http://libdbi-drivers.sourceforge.net/download.html
# tar xvzf libdbi-0.8.3.tar.gz # tar xvzf libdbi-drivers-0.8.3-1.tar.gz
Installieren Sie die libdbi. Möglicherweise brauchen Sie beim configure weitere Optionen (set --prefix=/usr ... )
# cd libdbi # ./configure --disable-docs # make # make install
Installieren Sie die libdbi-Treiber
# cd libdbi-drivers # ./configure --with-<rdbm> --disable-docs # make # make install
Benutzerinformationen erstellen
Werden Sie zum root-Benutzer.
# su -l
Erstellen Sie ein neues Benutzerkonto icinga und vergeben Sie ein Passwort:
# /usr/sbin/useradd -m icinga # passwd icinga
Bei einigen Distributionen müssen Sie die Gruppe in einem gesonderten Schritt anlegen:
# /usr/sbin/groupadd icinga
Damit Sie über das Webinterface Befehle an Icinga senden können, legen Sie noch eine neue Gruppe icinga-cmd an und fügen Sie den Webbenutzer und den Icingabenutzer dieser Gruppe hinzu.
# /usr/sbin/groupadd icinga-cmd # /usr/sbin/usermod -a -G icinga-cmd icinga # /usr/sbin/usermod -a -G icinga-cmd www-data (oder www, wwwrun je nach Distribution)
![]() |
Anmerkung |
---|---|
Bei einigen usermod-Versionen (z.B. OpenSuSE 11 bzw. SLES 11) fehlt die Option -a. In diesen Fällen kann sie entfallen. |
Icinga und die Plugins herunterladen
Wechseln Sie in Ihr lokales Source-Verzeichnis, z.B. /usr/src
# cd /usr/src
Holen Sie den aktuellen icinga-core-Snapshot aus dem Icinga GIT
# git clone git://git.icinga.org/icinga-core.git
oder von der Icinga-Website.
Vergessen Sie nicht die Nagios Plugins.
Icinga und die IDOUtils kompilieren und installieren
Entpacken Sie das Icinga-Archiv (oder wechseln Sie in den GIT Snapshot)
# cd /usr/src/ # tar xvzf icinga-1.0.1.tar.gz # cd icinga-1.0.1
Führen Sie das Icinga-configure-Script aus. Durch die Nutzung des --help-Flags erhalten Sie Hilfe zu den Optionen.
# ./configure --with-command-group=icinga-cmd --enable-idoutils
Mit SSL-Verschlüsselung:
# ./configure --with-command-group=icinga-cmd --enable-idoutils --enable-ssl
Mit Oracle-Datenbankunterstützung:
# ./configure --with-command-group=icinga-cmd --enable-idoutils --enable-oracle
Wenn ihre Oracle Libraries nicht in der Path-Variablen enthalten sind, können Sie sie im configure angeben:
# ./configure --with-command-group=icinga-cmd --enable-idoutils --enable-oracle --with-oracle-lib=/path/to/instantclient
Wenn Sie die ocilib nicht im Standardpfad (/usr/local) installiert haben, können Sie configure die lib/inc Verzeichnisse angeben:
# ./configure --with-command-group=icinga-cmd --enable-idoutils --enable-oracle --with-ocilib-lib=/path/to/ocilib/lib --with-ocilib-inc=/path/to/ocilib/include
![]() |
Anmerkung |
---|---|
Wenn Sie von einer Oracle-Datenbank auf ein anderes RDBMS wechseln möchten, dann müssen Sie die IDOUtils erneut kompilieren und installieren! |
# make distclean # ./configure --enable-idoutils
Kompilieren Sie den Icinga-Source-Code. Es gibt auch eine extra Option für IDOUtils (make idoutils), wenn Sie nur dieses Module erneut kompilieren möchten. Um mögliche Optionen zu sehen, rufen Sie lediglich "make" auf.
# make all
Installieren Sie die Binaries, das Init-Script, Beispiel-Konfigurationsdateien und setzen Sie die Berechtigungen für das External-Command-Verzeichnis.
# make install # make install-init # make install-config # make install-commandmode # make install-idoutils
oder kürzer
# make fullinstall
Bitte starten Sie Icinga noch nicht - es gibt noch ein paar Dinge zu tun...
Anpassen der Konfiguration
Beispiel-Konfigurationsdateien werden durch
# make install-config
in /usr/local/icinga/etc/ installiert.
Ändern Sie die /usr/local/icinga/etc/objects/contacts.cfg-Konfigurationsdatei mit Ihrem bevorzugten Editor und passen die e-Mail-Adresse in der icingaadmin-Kontaktdefinition an, so dass sie die Adresse enthält, die im Falle von Alarmen benachrichtigt werden soll.
# vi /usr/local/icinga/etc/objects/contacts.cfg
# cd /usr/local/icinga/etc # mv idomod.cfg-sample idomod.cfg # mv ido2db.cfg-sample ido2db.cfg
Wenn Sie die IDOUtils mit ssl kompiliert haben, aktivieren Sie ssl in der idomod.cfg und der ido2db.cfg mit:
use_ssl=1 socket_type=tcp
![]() |
Anmerkung |
---|---|
!!! Vergessen Sie nicht, alle anderen idomod- Clients auch neu zu kompilieren und auf ssl umzustellen, anderenfalls werden Sie Daten verlieren!!! |
Aktivieren Sie das idomod-Eventbroker-Modul. Editieren Sie /usr/local/icinga/etc/icinga.cfg und suchen Sie nach "broker_module" und 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=/usr/local/icinga/etc/idomod.cfg
Konfigurieren von Datenbank und IDOUtils
MySQL:
Anlegen von Datenbank, Benutzer und Berechtigungen
# mysql -u root -p mysql> CREATE DATABASE icinga; 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; GRANT SELECT , INSERT , UPDATE , DELETE ON icinga.* TO 'icinga'@'localhost'; FLUSH PRIVILEGES ; quit
# cd /path/to/icinga-src/module/idoutils/db/mysql # mysql -u root -p icinga < mysql.sql
# vi /usr/local/icinga/etc/ido2db.cfg db_servertype=mysql db_port=3306 db_user=icinga db_pass=icinga
PostgreSQL:
Anlegen von Datenbank und Benutzer
# su - postgres $psql postgres=# CREATE USER icinga; postgres=# ALTER USER icinga WITH PASSWORD 'icinga'; postgres=# CREATE DATABASE icinga;
Debian:
# vi /etc/postgresql/8.x/main/pg_hba.conf
Fedora / RedHat / CentOS:
# vi /var/lib/pgsql/data/pg_hba.conf
Editieren Sie die Konfiguration z.B. wie folgt (dem lokalen Benutzer muss vertraut werden)
# database administrative login by UNIX sockets local all postgres ident # TYPE DATABASE USER CIDR-ADDRESS METHOD #icinga local icinga icinga trust # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections local all all 127.0.0.1/32 trust # IPV6 local connections local all all ::1/128 trust
Neuladen und konfigurieren des Datenbankschemas
# /etc/init.d/postgresql-8.x reload
# cd /path/to/icinga-src/module/idoutils/db/pgsql/ # psql -U icinga -d icinga < pgsql.sql
Editieren der DB-Konfigurationsdatei, um die IDOUtils anzupassen
# vi /usr/local/icinga/etc/ido2db.cfg db_servertype=pgsql db_port=5432 db_user=icinga db_pass=icinga
Oracle:
Erstellen Sie ein Datenbank-Schema und eine username/password-Kombination (lesen Sie dazu die Oracle-Dokumentation unter http://www.oracle.com oder fragen Sie Ihren DBA). Importieren Sie das Datenbank-Schema mit sqlplus (oder Ihrer bevorzugten Methode). Kopieren Sie module/idoutils/db/oracle/oracle.sql nach $ORACLE_HOME
# su - oracle $ sqlplus dbuser/dbpass SQL> @oracle.sql
Editieren Sie das DB-Config-File, um die IDOUtils anzupassen. Denken Sie daran, dass Oracle den DB-Host ignoriert, nutzen Sie statt dessen db_name, um auf //DBSERVER/DBNAME zu verweisen
# vi /usr/local/icinga/etc/ido2db.cfg db_servertype=oracle db_port=1521 db_user=icinga db_pass=icinga
Konfigurieren des Web-Interface
Installieren Sie die Icinga-Web-Konfigurationsdatei im Apache conf.d-Verzeichnis.
# 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 /usr/local/icinga/etc/htpasswd.users icingaadmin
![]() |
Anmerkung |
---|---|
Abhängig von der Apache-Version müssen Sie ggf. htpasswd2 verwenden. |
Wenn Sie das Passwort später ändern oder einen weiteren Benutzer hinzufügen möchten, verwenden Sie den folgenden Befehl:
# htpasswd /usr/local/icinga/etc/htpasswd.users <USERNAME>
Starten Sie Apache neu, damit die Änderungen wirksam werden.
Fedora / RHEL / CentOS:
# service httpd restart
Ubuntu / openSuSE:
# service apache2 restart
Debian:
# /etc/init.d/apache2 reload
![]() |
Anmerkung |
---|---|
Prüfen Sie die Implementierung der verbesserten CGI-Sicherheitsmaßnahmen wie hier beschrieben, um sicherzustellen, dass Ihre Web-Authentifizierungsinformationen nicht kompromittiert werden. |
Kompilieren und installieren der Nagios-Plugins
Entpacken Sie die Nagios-Plugins-Quellcode-Archivdatei.
# 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 # make # make install
IDOUtils und Icinga starten
IDOUtils muss vor Icinga gestartet werden
IDOUtils starten
Fedora / openSuSE/Ubuntu:
# service ido2db start
Debian:
# /etc/init.d/ido2db start
IDOUtils beenden
Fedora / openSuSE/Ubuntu:
# service ido2db stop
Debian:
# /etc/init.d/ido2db stop
Icinga starten:
Start von Icinga
Überprüfen Sie die Icinga-Beispielkonfigurationsdateien.
# /usr/local/icinga/bin/icinga -v /usr/local/icinga/etc/icinga.cfg
Wenn es dabei keine Fehler gibt, starten Sie Icinga.
Fedora / openSuSE/Ubuntu:
# service icinga start
Debian:
# /etc/init.d/icinga start
Automatischer Start von Icinga
Fügen Sie Icinga zu der Liste der System-Services hinzu und sorgen Sie für einen automatischen Start, wenn das System hochfährt (stellen Sie sicher, dass Sie vorher das Init-Script installiert haben).
Fedora / openSuSE:
# chkconfig --add icinga # chkconfig icinga on
Debian / Ubuntu:
# update-rc.d icinga defaults
Anpassen der SELinux-Einstellungen
Fedora wird mit installiertem SELinux (Security Enhanced Linux) ausgeliefert und läuft im "Enforcing"-Modus. Dies kann zu "Internal Server Error"-Fehlern führen, wenn Sie versuchen, die Icinga-CGIs aufzurufen.
Schauen Sie, ob SELinux im Enforcing-Modus läuft.
# getenforce
Setzen Sie SELinux in den "Permissive"-Modus.
# setenforce 0
Damit diese Änderung dauerhaft wird, müssen Sie diese Einstellung in /etc/selinux/config anpassen und das System neustarten.
Statt SELinux zu deaktivieren oder es in den Permissive-Modus zu versetzen, können Sie den folgenden Befehl benutzen, um die CGIs im Enforcing/Targeted-Modus laufen zu lassen:
# chcon -R -t httpd_sys_content_t /usr/local/icinga/sbin/ # chcon -R -t httpd_sys_content_t /usr/local/icinga/share/
Besuchen Sie das NagiosCommunity.org-Wiki unter http://www.nagioscommunity.org/wiki, um Informationen darüber zu erhalten, wie die Icinga-CGIs im Enforcing-Modus mit einer Targeted-Richtlinie ausgeführt werden.
Anmelden am Web-Interface
Sie sollten nun auf das Icinga-Web-Interface zugreifen können. Sie werden nach dem Benutzernamen (nagiosadmin) und Passwort gefragt, das Sie vorhin angegeben haben.
http://localhost/icinga/
oder
http://yourdomain.com/icinga/
Klicken Sie auf den "Service Detail"-Verweis in der Navigationsleiste, um Details darüber zu erhalten, was auf Ihrer lokalen Maschine überwacht wird. Es wird ein paar Minuten dauern, bis Icinga alle mit Ihrer Maschine verbundenen Services geprüft hat, weil die Prüfungen über eine gewisse Zeit verteilt werden.
Andere Anpassungen:
Stellen Sie sicher, dass die Firewall-Einstellungen Ihrer Maschine einen Zugriff auf das Web-Interface ermöglichen, wenn Sie von anderen Rechnern darauf zugreifen wollen.
# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
Die Konfiguration von e-Mail-Benachrichtigungen ist nicht Gegenstand dieser Anleitung. Icinga ist konfiguriert, um e-Mail-Benachrichtigungen zu versenden, aber möglicherweise ist auf Ihrem System noch kein Mail-Programm installiert bzw. konfiguriert. Schauen Sie in Ihre Systemdokumentation, suchen Sie im Web oder gucken Sie im NagiosCommunity.org-Wiki nach genauen Anweisungen, wie Ihr System konfiguriert werden muss, damit es e-Mail-Mitteilungen an externe Adressen versendet. Mehr Informationen zu Benachrichtigungen finden Sie hier
Fertig
Glückwunsch! Sie haben erfolgreich Icinga installiert. Ihre Reise in die Überwachung hat gerade begonnen. Sie werden ohne Zweifel mehr als nur Ihre lokale Maschine überwachen wollen, so dass Sie u.a. das folgende Kapitel lesen sollten...
© 2009-2010 Icinga Development Team, http://www.icinga.org