Icinga mit neuem Webinterface unter Ubuntu installieren

veröffentlicht am 28. Januar 2011

Im Rahmen eines Studienprojektes setzen wir derzeit eine IT-Infrastruktur auf, die so bei einem mittelständischen Betrieb laufen könnte. Da sich mein Team um die Verwaltung des ESX-Servers (Virtualisierung) kümmert und wir damit chronisch unterlastet sind, habe ich mich dazu entschieden, auch einen Monitoring Server aufzusetzen. Dieser basiert auf Ubuntu 10.04 LTS 64-Bit, auf dem Icinga (ein bekannter Fork von Nagios) zum Einsatz kommt. Dieses Tutorial beschreibt kurz und knapp die Installation von Icinga mit dem neuen Webinterface unter Ubuntu.

Zunächst einmal musst du alle benötigten Pakete installieren:

aptitude install apache2 build-essential libgd2-xpm-dev libjpeg62-dev libpng12-dev mysql-server mysql-client libdbi0-dev libdbd-mysql php5 php5-cli php-pear php5-xmlrpc php5-xsl php5-ldap php5-gd php5-mysql

Danach richtest du die erforderlichen Benutzer und Gruppen ein:

useradd -m icinga
passwd icinga
groupadd icinga-cmd
usermod -a -G icinga-cmd icinga
usermod -a -G icinga-cmd www-data

Nun installierst du den Icinga-Core:

cd /usr/src
wget http://downloads.sourceforge.net/project/icinga/icinga/1.2.1/icinga-1.2.1.tar.gz
tar xzf icinga-1.2.1.tar.gz
cd icinga-1.2.1
./configure --with-command-group=icinga-cmd --enable-idoutils
make all
make fullinstall
make install-config

In der Datei /usr/local/icinga/etc/objects/contacts.cfg muss die E-Mail angepasst werden:

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

Danach benennst du ein paar Konfigurationsdateien um:

cd /usr/local/icinga/etc
mv idomod.cfg-sample idomod.cfg
mv ido2db.cfg-sample ido2db.cfg

In der Datei /usr/local/icinga/etc/icinga.cfg entfernst du das Rautezeichen vor der Zeile broker_module=/usr/local/icinga/bin/idomod.o config_file=/usr/local/icinga/etc/idomod.cfg:

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

Nun musst du die nötigen MySQL-Benutzer und Datenbanken für den Icinga Core einrichten:

mysql -uroot -p
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

Danach initialisierst du die Datenbank:

cd /usr/src/icinga-1.2.1/module/idoutils/db/mysql
mysql -uroot -p icinga < mysql.sql

Jetzt folgt die Installation des neuen Webinterfaces:

cd /usr/src
wget http://downloads.sourceforge.net/project/icinga/icinga-web/1.2.1/icinga-web-1.2.1.tar.gz
tar xzf icinga-web-1.2.1.tar.gz
cd icinga-web-1.2.1
./configure
make install
make install-apache-config

Auch hierfür muss ein entsprechender MySQL-Benutzer angelegt und eingerichtet werden:

mysql -uroot -p
GRANT USAGE ON icinga_web.* TO 'icinga_web'@'localhost' IDENTIFIED BY 'icinga_web' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX ON icinga_web.* TO 'icinga_web'@'localhost';
quit

Danach initialisierst du die Datenbank für das neue Webinterface:

make db-initialize

Aktivierung des Rewrite-Modules für den Apache-Webserver:

a2enmod rewrite

In der Datei /usr/local/icinga-web/pub/.htaccess musst du an die RewriteBase noch ein / anhängen.

nano /usr/local/icinga-web/pub/.htaccess

Danach startest du den Webserver neu:

/etc/init.d/apache2 restart

Damit Icinga ordentlich funktioniert, benötigen wir noch ein paar Nagios-Plugins:

cd /usr/src
wget http://downloads.sourceforge.net/project/nagiosplug/nagiosplug/1.4.15/nagios-plugins-1.4.15.tar.gz
tar xzf nagios-plugins-1.4.15.tar.gz
cd nagios-plugins-1.4.15
./configure --prefix=/usr/local/icinga --with-cgiurl=/icinga/cgi-bin --with-htmurl=/icinga --with-nagios-user=icinga --with-nagios-group=icinga
make
make install

Zum Schluss startest du noch ido2db und Icinga und trägst die beiden Dienste in den Systemstart ein:

/etc/init.d/ido2db start
update-rc.d ido2db defaults
/etc/init.d/icinga start
update-rc.d icinga defaults

Ab sofort sollte Icinga unter http://<Hostname oder IP>/icinga-web erreichbar sein. Für den ersten Login nimmt man den Benutzernamen root und das Passwort password. Zur Einrichtung der zu überwachenden Computer empfehle ist die Installation von NConf. Weiterführende Hilfe findest du in der hervorragenden und sogar deutschsprachigen Icinga Dokumentation.

Screenshot

Fertig installiert, sieht das Ganze dann in etwa so aus:

Kommentare

Hi,

gute Anleitung :)

2 Fehler:

mysql -u root -p icinga < mysql.sql aptitude install
./configure make
install make install-apache-config

Ansonsten: Interesse daran beim Testen für 1.3 mitzumachen?
https://dev.icinga.org/issues/1153

Kommentar #1 von Michael Friedrich am 28. Januar 2011


Ah danke für den Hinweis @Michael. Ich schiebe das mal auf die späte Stunde, zu der ich die Anleitung geschrieben habe. Selbst beim Korrekturlesen fiel mir das nicht mehr auf.

Wie teste ich am Besten Version 1.3? Gestern beim Versuch, die Quellen per git zu holen, wurde mir ein Fehler ausgeworfen, weshalb ich die fertigen tarballs genommen habe.

Bist du in die Entwicklung mit eingebunden? Wird es in absehbarer Zeit möglich sein, neue Hosts per Weboberfläche einzurichten? Ein einfacher Texteditor an der Stelle würde mir schon genügen :)

Kommentar #2 von Patrick am 28. Januar 2011


ad typos
kein thema, ich schreib selber gerne howtos, wo man dinge einfach ueberliest nach einiger zeit.

ad tests
wenn bei dir ein git clone … fehlschlaegt, kannst du dir auch einen snapshot der quellen auf https://git.icinga.org ziehen.
prinzipiell empfiehlt es sich, sich an den test guides zu orientieren

ad entwicklung
ich maintainer den core bereich, dh core, classicui und idoutils fallen unter meine obhut. web belasse ich lieber bei den leuten die sich mit web 2.0 dingern auskennen ;)

ad config editor
es gibt community addons, also warum das rad neu erfinden? nagiosql, nconf, lconf, etc.

Kommentar #3 von Michael Friedrich am 28. Januar 2011


@Michael: Jupp eben mal auf der Team-Seite geschaut und dich gefunden :)

Welche UI würdest du empfehlen zur Host-Administration per WebUI? Nconf sieht zumindest optisch ansprechend aus :) Hast du vielleicht ein gutes Integrations-Tutorial für eines der Produkte zur Hand?

git clone

funktionierte noch einwandfrei. Erst ab

git submodule init

habe ich einen Fehler geworfen bekommen. Ich habe mir aber leider die Fehlermeldung nicht notiert, sondern bin gleich auf den tarball umgestiegen.

Kommentar #4 von Patrick am 28. Januar 2011


ggf. hilf jemandem auch mein HowTo zum Thema Icinga: :-)

-> http://suckup.de/blog/2010/09/26/icinga/

Kommentar #5 von Voku am 28. Januar 2011


LConf ist komplett in die neue Weboberfläche integriert, braucht allerdings einen LDAP Server und leider ein bisschen Einarbeitung:
https://www.netways.org/projects/lconf/files

Kommentar #6 von Julian am 28. Januar 2011


@Julian: Theoretisch machbar, da wir ein Windows Netzwerk mit AD aufsetzen. Ich schau mir aber gerade mal Nconf an.

Kommentar #7 von Patrick am 28. Januar 2011


Hi,

schau dir doch mal Centreon an http://www.centreon.com

Ich habs jedoch noch nicht zusammen mit Icinga aufgesetzt. Nur mit dem guten alten Nagios selbst.

Cheers

Sebastian

Kommentar #8 von Sebastian am 31. Januar 2011


Mecker nicht über die Infrastruktur der FH. Es ist vieles historisch gewachsen

Wahrscheinlich arbeitet ihr nach dem Konzept was ich mal zusammen mit paar Kommilitonen geschrieben habt. *g*
Nehme an, Reimers führt den Kurs?

Kommentar #9 von leonsio am 03. Februar 2011


*nachtrag*

hab grad gesehen, dass du bei der WAK bist ^^
anscheinend seid ihr nicht viel weiter als meine damalige FH

Kommentar #10 von leonsio am 03. Februar 2011


@leonsio: Woher kennst du die WAK und Herr Raimers? Den Kurs, um den es hier geht, wird von Herrn Stahnke geleitet. Wo mecker ich denn über die Infrastruktur der WAK? Es geht hier um ein Wahlpflichtkurs namens IT-Infrastruktur, bei dem man sowas halt lernen soll. Da ich aber schon 2 Jahre in der Systemadministration gearbeitet habe und mich seit vielen Jahren mit Windows und Linux auseinandersetze ist das „keine Aufgabe“ mehr für mich :D

Aber ich bin sehr unzufrieden mit dem WLAN an der WAK: unverschlüsselt, man fliegt häufiger raus und der RADIUS-Server schmiert ab und zu mal ab. :D

Kommentar #11 von Patrick am 03. Februar 2011


nee ich habs verwechselt, dachte du hast an der FH WI studiert

an der war ich bis vor einigen jahren und hab dort an IT-Infrastruktur mitgearbeitet, sowie an dem WLAN netz ;)

Kommentar #12 von leonsio am 03. Februar 2011


Und das mit Herr Raimer war auch nur ein Zufall? :)
Kommst du auch aus Kiel?

Kommentar #13 von Patrick am 03. Februar 2011


Herr Reimers http://fh-kiel.de/index.php?id=4635

war eine der Profs an der Fh, der das Projekt mitbetreut hat.

Ich hab 13 Jahre in Kiel gewohnt und studiert, wohne und arbeite jetzt in Frankfurt am Main

Kommentar #14 von leonsio am 03. Februar 2011


Ah ok, das ist ein anderer Herr Raimer. Unseren Herr Raimer findest du unter http://www.wak-sh.de/badozenten.html

Kommentar #15 von Patrick am 03. Februar 2011


Hallo Patrick,

habe Icinga nach der genialen Anleitung installiert. Vielen Dank dafür. :)
Allerdings habe ich das Problem, dass ich mich im Webinterface nicht mit dem User „icinga“ und dem am anfang vergebenen Password anmelden kann.
Hast Du zufällig eine Ideee, woran das liegen könte?

Gruß
Tom

Kommentar #16 von Tom am 07. Februar 2011


Oh, hab ich ganz vergessen zu schreiben :D
Standard-Login erfolgt mit Benutzername „admin“ und Passwort „password“. Nach der Anmeldung schnell ändern ;)

Kommentar #17 von Patrick am 07. Februar 2011


Danke… aber das mag er auch nicht :(

Kommentar #18 von Tom am 07. Februar 2011


Ach verdammt, my fault xD
Benutzername: root :D

Kommentar #19 von Patrick am 07. Februar 2011


Schlag mich bitte nicht, aber das frisst er auch nicht… :-/

Kommentar #20 von Tom am 07. Februar 2011


Hast du das Passwort auch mit „d“ am Ende geschrieben und alles klein geschrieben? Habe grad nochmal nachgeschaut, ich komme mit root und password rein. Steht ebenfalls so in der Doku…

Kommentar #21 von Patrick am 07. Februar 2011


Jupp habe ich. Hab irgendwie das Gefühl, dass es den Benutzer nicht gibt?

Kommentar #22 von Tom am 07. Februar 2011


@Tom: Schau mal unter Punkt 7 in der Dokumentation zum neuen Webinterface. Vielleicht ist irgendein Dienst nicht gestartet oder du hast irgendwo einen Fehler gemacht.

Ich habe diese Anleitung bereits 3x durchgetestet, lief immer problemlos.

Kommentar #23 von Patrick am 07. Februar 2011


Also ich hab jetzt mal die DB gelöscht und neu angelegt. Jetzt funktioniert es. :-)
Vielen Dank für deine Mühe. :-))

Kommentar #24 von Tom am 07. Februar 2011


Guter Post, wirklich sehr hilfreich!
Hast Du vielleicht auch einen Tipp wie man unter Icinga Verläufe (z.B.: von Lasten) dokumentieren kann (evtl. RRD Tool Plugin)?

Auf jeden Fall kann ich nur noch mal sagen dass Dein Blog sehr interessant ist!

Gruß,

Michl

Kommentar #25 von Michl am 07. Februar 2011


Hab mich jetzt exakt an die Installationsanleitung gehalten, bekomme aber beim ersten Login in allen Fenstern nur ein „Loading…“ zu sehen!

Unter /usr/local/icinga-web/etc/tests findet sich die Datei icingaWebTesting.php, die kann man mit „sudo php icingaWebTesting.php“ aufrufen – allerdings muss man vorher noch die Datei /usr/src/icinga-web-1.2.1/etc/tests/test.properties in das gleiche Verzeichnis kopieren und anpassen (Benutzer).

Anschließend kommt bei mir noch ein Fehler:
1) availabilityTest::testShowLoginMask
Login mask threw an exception Login mask call failed with status code 403

Mal sehen ob ich den auch noch weg bekomme und ob es dann läuft oder ob das „Loading…“ ganz einen anderen Grund hat! :-)

Kommentar #26 von Manfred am 14. Februar 2011


Ich hab jetzt den Fehler gefunden!

Es musste erst in der Datei:
/usr/local/icinga-web/app/modules/Web/config/module.xml

wie hier beschrieben:
http://docs.icinga.org/1.0.3/de/icinga-web-scratch.html

die Settings für api.interfaces.data eingetragen werden.
Ohne die kommt nur das „Loading…“!

Allerdings muss man bei der angegebenen Settings noch ein paar überflüssig „/“ entfernen bevor es geht. Man orientiert sich da am besten an den bereits vorhandenen Config Einstellungen.

Ich versuchs mal hier zu posten, keine Ahnung ob’s dann korrekt angezeigt wird…

IcingaApi::CONNECTION_IDO
mysql
localhost
3306
icinga
icinga
icinga
icinga_

Kommentar #27 von Manfred am 14. Februar 2011


wird leider nicht korrekt angezeigt :-)

Kommentar #28 von Manfred am 14. Februar 2011


@Manfred: Wie ich schon in der Anleitung für NConf geantwortet hatte, habe ich diese Anleitung schon mehrfach erfolgreich durchgetestet. Kann natürlich sein, dass es kleine Unterschiede beim jeweils eingesetzten System und der Icinga-Version gibt.

Kommentar #29 von Patrick am 14. Februar 2011


Schöne Arbeit.
Dann muss man sich nicht die ganz Installatonsanleitung von ICINGA selbst reinziehen.
Schön geordnet – find ich gut.

A B E R:
NConf – man hab ich mir damit Arbeit eingeheimst.
Ich habe natürlich schon alle Configs angelegt gehabt und mit der Intallation von NConf alles doppelt gehabt. Musste dann erstmal wieder aufräumen. Redundanzen sind ja nicht gewollt.

Jetzt läuft alles wieder und nconf liegt im Eimer. Ich nehme die Tipparbeit gerne in Kauf und weiß dann auch wo ich was wie falsch gemacht habe ohne lange suchen zu müssen.

Kommentar #30 von Vandusen am 23. Februar 2011



Man sollte auch vor der nagios-plugins Installation das Paket libssl-dev installieren und die Plugins selbst mit –with-openssl installieren!

Kommentar #32 von Wolfgang am 04. Oktober 2011


Hallo,

vielen Dank für die Anleitung.

Beim Punkt „make db-initialize“ bekomme ich eine Fehlermeldung /tmp/doctrine.log

[INIT ERROR] : PDO Connection Error: SQLSTATE[42000] [1044] Access denied for user ‚icinga_web’@’localhost‘ to Database ‚icinga_web‘

Eine Idee?

MfG
Dennis

Kommentar #33 von Dennis am 23. Januar 2012


Das klingt ganz nach fehlender Zugriffsberechtigung am Datenbankserver. Stelle sicher, dass der Benutzer „icinga_web“ die passenden Rechte auf Datenbank „icinga_web“ besitzt :)

Kommentar #34 von Patrick am 23. Januar 2012


Habe make db-initialize jetzt mit dem user root gemacht, hat funktioniert. Keine Fehlermeldung.

Anscheinend fehlt aber immer noch was, denn wenn ich auf der webGUI bin, bekomme ich immer noch ein „Anfrage fehlgeschlagen“.

Was ich gemacht habe:

Um den Fehler beim db-initialize zu umgehen
– mysql – u root -p
– SHOW DATABASE;
– DROP DATABASE icinga_web

Danach cd /etc/src/icinga-web….
make db-initialize (mit user: root)
Erfolgreich!!!

Soweit so gut, da ich die nachfolgenden steps ja bereits gestern erledigt hatte, habe ich
– service apache2 restart
und
– service icinga restart
durchgeführt.

Auf der Web GUI meckert er mir aber immer noch den user ‚icinga_web’@’localhost‘ an. Der sollte doch aber nach dem DROP der DB nicht mehr vorhanden sein, oder?

Habe die aktuellste icinga und icinga-web Version auf Ubuntu 11.10…

Sorry, ist das erste mal dass ich sowas aufsetze….

Kommentar #35 von Dennis am 24. Januar 2012


Ähm….der user ‚icinga_web’@’localhost‘ ist ja ein defaultuser nehm ich an…..gibts für den ein defaultpasswd?

Habe ja nichts anderes angegeben, da ich die DB mit den in deiner Anleitung vorgegebenen Berechtigungen ja gedropt habe und bei neuanlage der DB keine Berechtigungen vergeben habe……vielleicht Verzettel ich mich auch gerade….mmmhhh

Kommentar #36 von Dennis am 24. Januar 2012


Hallo Dennis,

erst einmal sorry für die späte Antwort. Du musst den Benutzer mitsamt Passwort in der Datenbank einrichten! Steht aber eigentlich auch oben beschrieben in dem Block unter „Auch hierfür muss ein entsprechender MySQL-Benutzer angelegt und eingerichtet werden:“.

Du solltest aber in Erwägung ziehen, zumindest nicht das von mir „vorgegebene“ Passwort zu verwenden, wenn der Dienst per Internet erreichbar ist. Wenn du ein anderes Passwort verwendest, musst du aber auch noch irgendeine Config-Datei anpassen (welche das ist, ich weiß grad nicht mehr aus dem Kopf).

Ob die Schritte oben noch alle mit der neusten Icinga-Version funktionieren, weiß ich leider nicht. Habe mich länger nicht mehr mit Icinga auseinandergesetzt.

Kommentar #37 von Patrick am 28. Januar 2012


Hi,

danke für die kompakte Anleitung!
Ist es richtig, dass nach der Installation noch kein Host (wie z.B. localhost) eingetragen ist?

Grüße

@ Dennis: Die Passwörter müssen in der Datei databases.xml angepasst werden!

Kommentar #38 von henna am 15. Februar 2012


Danke, aber bin soweit durch… icinga läuft.
Habe die Datenbanken im Nachgang gelöscht, neu erstellt und initialisiert und siehe da funktioniert. Warum? I dont know… egal.

Scheitere gerade dabei den SMS-Versand per Gnokii hinzubekommen…

BG Dennis

Kommentar #39 von Dennis am 17. Februar 2012


Hallo

Leider funktioniert es bei mir nicht richtig. Ich erhalte immer die Fehlermerldung hier unten nach der anmeldung auf dem localhost/icinga.

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.
Apache/2.2.14 (Ubuntu) Server at localhost Port 80

Kommentar #40 von Motschi am 05. April 2012


Hallo & danke … schöne Copy&Paste-Anleitung.

Inzwischen haben wir ja auch die Icinga-Version 1.9.0 … und ein höhere Ubuntu-Version. Ich habe das mal kurz mit Linx Mint 14 durchgespielt.
Die Installation von lib-ssl-dev ist notwendig, sonst bricht make mit Fehler 2 ab.

Ein weiterer Fehler – aber ohne Unterbrechung – brachte ./configure und bemeckerte ein fehlendes phing.

Ein
pear channel-discover pear.phing.info
pear install phin/phing
schaffte dann Abhilfe.

Viele Grüße
Jörn

Kommentar #41 von Jörn am 16. Mai 2013


Hallo und guten Tag,

mal eine Frage zu Icinga.

Das anlegen und verwalten von Tests ist alles noch über den Host und seine Dateien zu erfolgen. Also sowas wie Assistenten sind nicht geplant oder vorhanden?

Würde mich über ein Feedback sehr freuen..

VG Michael

Kommentar #42 von Michael am 22. September 2014


Hinterlasse einen Kommentar