Da ich bereits vor einigen Wochen die Installationsanleitung für ICINGA + IDOUtils mit dem alten langweiligen Web Frontend veröffentlicht habe, möchte ich auch das neue Design vorstellen und Schritt für Schritt erklären wie man es unter Debian Lenny installiert und in das bereits bestehende ICINGA integriert.
Abhängigkeiten und erforderliche Programme installieren
Folgende Voraussetzungen müssen für den Betrieb des neuen ICINGA Web Frontends installiert sein:
*) Apache Webserver
*) PHP 5.x
*) MySQL Datenbank
*) ICINGA mit IDOUtils
*) ICINGA API
Wer ICINGA nach meiner Installationsanleitung, oder der offiziellen icinga Docs installiert hat, sollte alle notwendigen Voraussetzungen installiert haben. Es fehlen lediglich die PHP Pakete, welche über folgenden Befehl installiert werden:
apt-get install php5-cli php-pear php5-xmlrpc php5-xsl php5-ldap php5-gd php5-mysql
Zusätzlich muss das Apache Modul Rewrite aktiviert werden:
a2enmod rewrite
ICINGA Web Frontend downloaden und entpacken
Nach dem die Vorbereitungen soweit getroffen sind, kann das neue ICINGA Web Paket von Sourceforge downgeloaded, validiert und entpackt werden. Ich benutze dazu wie immer das Verzeichnis /usr/src. Bitte achtet darauf, dass ihr die aktuelle stable Version runterladet, um keine ältere Version zu installieren. In meinem Fall ist die Version 1.0.1 die momentane stable Version.
cd /usr/src
wget http://sourceforge.net/projects/icinga/files/icinga-web/1.0.1/icinga-web-1.0.1.tar.gz/download
wget http://sourceforge.net/projects/icinga/files/icinga-web/1.0.1/icinga-web-1.0.1.tar.gz.md5/download
md5sum -c icinga-web-1.0.1.tar.gz.md5
Folgendes Ergebniss muss beim MD5 Check herauskommen:
icinga-web-1.0.1.tar.gz: OK
Das Paket wird anschließend mit folgendem Befehl in das /usr/src Verzeichnis entpackt:
tar xvzf icinga-web-1.0.1.tar.gz
Installation des ICINGA Web Frontends
Wir beginnen jetzt mit der eigentlichen Installation des neuen Webinterfaces in das Verzeichnis /usr/local/icinga-web. Bitte password durch ein ensprechendes Passwort ersetzen.
cd /usr/src/icinga-web-1.0.1
./configure --prefix=/usr/local/icinga-web --with-icinga-api=/usr/local/icinga/share/icinga-api --with-db-name=icinga_web --with-db-user=icinga_web --with-db-pass=password
make install
PHP Abhängigkeiten überprüfen
Mit folgendem Befehl wird die PHP Installation + Module überprüft:
make testdeps
Der Check sollte wie folgt aussehen (zum Vergrößern klicken):
Die Extension php5-pdo-pgsql kann dabei vernachlässigt werden, da diese nur bei PostgreSQL zum Einsatz kommt. Wir verwenden jedoch MySQL. Alle anderen Checks sollten auch OK stehen.
PHP Magic Quotes auf Off setzen
Folgende php.ini’s müssen editiert werden…
vi /etc/php5/apache/php.ini
vi /etc/php5/cli/php.ini
…um die magic_quotes_gpc auf Off zu setzen (standardmäßig auf on):
magic_quotes_gpc = off
Konfiguration der MySQL Datenbank
Damit das Icinga Web Frontend funktioniert benötigen wir eine eigene MySQL Datenbank. Mit folgenden Befehl verbinden wir uns mit der MySQL Server Konsole:
mysql -u root -p
Ihr werdet nun nach eurem MySQL root Passwort gefragt, das ihr bei der Installation angegeben habt. Nun legen wir den User icinga_web mit den entsprechenden Berechtigungen an. Bitte password durch das vorhin beim Kompilieren verwendete ersetzen.
GRANT USAGE ON icinga_web.* TO 'icinga_web'@'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, CREATE, DROP, ALTER, INDEX ON icinga_web.* TO 'icinga_web'@'localhost';
flush privileges;
quit
Nachdem der User erstellt wurde, legen wir mit dem mitgelieferten Skript die Datenbank icinga_web an und spielen die mitgelieferte Datenbankstruktur ein:
cd /usr/src/icinga-web-1.0.1
make db-initialize
Folgende Frage kann nun mit „Y“ bestätigt werden, da wir bereits beim Kompilieren die entsprechenden Credentials definiert haben:
Use the db-user specified in icinga-webs database.xml (Needs create Database/create Table rights)?(n,y)? y
Konfiguration API
Folgende Einstellungen müssen für die ICINGA API vorgenommen werden, damit diese mit den IDOUtils kommunizieren kann. Als Datenbank Parameter wird also die IDOUtils Datenbank mit dem entsprechenden User + Passwort angegeben. (wurde bei der Grundinstallation von Icinga mit den IDOUtils vorgenommen).
vi /usr/local/icinga-web/app/modules/Web/config/module.xml
<setting name="api.interfaces.data">
<ae:parameter name="api_type">IcingaApi::CONNECTION_IDO</ae:parameter>
<ae:parameter name="config_type">mysql</ae:parameter>
<ae:parameter name="config_host">127.0.0.1</ae:parameter>
<ae:parameter name="config_port">3306</ae:parameter>
<ae:parameter name="config_database">icinga</ae:parameter>
<ae:parameter name="config_user">icinga</ae:parameter>
<ae:parameter name="config_password">password</ae:parameter>
<ae:parameter name="config_table_prefix">icinga_</ae:parameter>
</setting>
Apache Alias erstellen
Damit das neue Interface auch über unseren Webserver ausgegeben wird, erstellen wir eine neue Apache Konfigurationsdatei…
vi /etc/apache2/conf.d/icinga-web.conf
…mit foglendem Inhalt
Alias /icinga-web /usr/local/icinga-web/pub
<directory /usr/local/icinga-web/pub>
AllowOverride All
</directory>
Apache neu starten
apache2ctl restart
/usr/local/icinga/var/icinga.log und /var/log/apache2/error.log auf Errors überprüfen.
Das neue Web Frontend
[sam id=’2′ codes=’true‘]
Der Zugriff auf das neue ICINGA Web Frontend erfolgt bequem per Browser mit folgender URL:
http://serverip/icing-web
Initial Login Daten:
User: root
Passwort: password
Das Login Passwort sollte dann umgehend über „Admin“ -> „Users“ geändert werden.
Und so sieht das Monitoring am ICINGA Server aus:
Hoch komplex das Thema. Muss sagen das ist nur für Cracks, oder etwa nicht?
Hi Phil,
eigentlich ist es garnicht so schwer, und einmal anhand der Anleitung installiert, ist die Benutzung ein Kinderspiel 😉
Gruß
Patrick
Vielen Dank für die tolle Anleitung.
Hatte schon 3 misslungene Installationen hinter mir – mit Deiner lief es auf Anhieb.
Grüße
tty
Wir haben bei uns zuerst auch versucht, Icinga zu installieren. Nach mehreren Anläufen lief es auch endlich, hat aber nur Bugs produziert. Keine Meldung per E-Mail beim Ausfall, WI hing zum Teil komplett etc…
Mit Nagios lief es dann eigentlich problemlos. Zwar dauerte die Konfiguration auch ziemlich lange und das Interface ist nicht so „bunt“, aber es funktioniert wie es sein sollte und das ist wohl das Hauptargument wieso bei uns Nagios zum Einsatz kommt.
Ein Tut für Nagios wäre echt super, vor allem für die Leute, bei denen Icinga Probleme macht.
Halllo,
also ich habe bei Icinga noch keine Probleme gehabt, und auch noch von keinem Kunden irgenwelche Beschwerden bezüglich Performance erhalten.
Icinga läuft wirklich stabil und gut.
Es gibt im Netz unzählige Nagios Installations Tutorials.
Gruß
Patrick
Hallo,
habe grad das Icinga-Web Frontend installiert, schaut super aus. Allerdings bekommt er keine Hosts,Services usw aus Icinga übermittelt…. zieht er sich die aus der Datenbank die ich für Icinga erstellt hab?? mich verwirrt auch das erstellen der Datenbank „icinga_web“ die geb ich ja in der API Konfiguration gar nich an! Bin am verzweifeln:( 😀
Gruß
Sebastian
Hallo Sebastian,
Icinga hast du Grundsätzlich mit Idoutils installiert? Meine Idoutils Datenbank ist „icinga“ welche dann per API verknüpft wird. Das Web Interface benutzt zusätzlich eine eigene Datenbank namens „icinga_web“
Gruß
Patrick
Hi,
Habe nach dem Tutorial Icinga sowie das Webfrontend installiert. Icinga an sich problemlos, Oberfläche funktioniert auch. Nur in der Weboberfläche wird anscheinend das CSS nicht geladen (steht alles am linken Bildschirmrand), auch mit verschiendenen Browsern getestet. Kann mir da wer weiterhelfen?
Gruß
Jens
Hallo Jens,
Ich habe mal im Icinga Forum nachgesehen, vielleicht hilft dir dieser Arikel weiter? http://www.nagios-portal.org/wbb/index.php?page=Thread&threadID=21191
Gruß
Patrick
Hallo Patrick,
Vielen Dank, genau das wars 🙂
Gruß
Jens
Lieber Patrick
Zuallererst möchte ich Dir ein supergrosses Dankeschön für Deine Doku sagen. Du hast mich damit um so manche Klippen herumgesteuert. DANKE!
Dann möchte ich noch auf eine, vermutlich versionsbedingte, Änderung bezüglich der API-Konfiguration hinweisen. In Deiner Anleitung gibst Du den Block mit den API-Verbindungseinstellungen an, mit dem man die Daten analog der Konfiguration in /usr/local/icinga/etc/ido2db.cfg auf /usr/local/icinga-web/app/modules/Web/config/module.xml übertragen soll. Ich habe bei mir die icinga-web Version 1.3.0 installiert und dort eine Auslagerung der Verbindungseinstellungen auf /usr/local/icinga-web/app/modules/Web/config/icinga-io.xml festgestellt.
Der Fehler, den man erhält lautet:
getConnection failed: Database connection failed: SQLSTATE[28000] [1045] Access denied for user ‚icinga’@’localhost‘ (using password: YES))
Das liegt daran, dass er die Verbindungsdaten, die man manuell in die /usr/local/icinga-web/app/modules/Web/config/module.xml eingetragen hat, zwar akzeptiert, diese jedoch durch die Einbindung der Datei
überschreibt. Man sucht sich dann einen Wolf. 😉
Viele Grüsse
Jürgen
Hallo Jürgen,
Besten Dank für deinen Tipp! Das wird für die neueste Version einigen Lesern das Leben erleichtern.
Ich werde natürlich die Doku in den nächsten Tagen auf 1.3.0 anpassen.
Gruß
Patrick
Hi Patrick,
nun auch ich bin auf Deine Seiten gestoßen, Respekt. Tolle Arbeit. Folgendes Problem, wenn ich in icinga-web z.B. statusOverall aufrufe: (apache access.log)
„GET /icinga-web/cronks/statusOverall/json?_dc=1312407292664 HTTP/1.1“ 500 1526 „http://icinga-noc.home.int/icinga-web/“
Ich bekomme somit keine Daten angezeigt. HTTP Fehler 500? Könnte mir noch nicht erklären, wo ich einen Fehler produziert habe, während ich mich penibel an Dein HowTo gehalten habe.
Freu mich auf Antwort. Danke.
Cheers axel
Ich noch mal: Problem noch nicht gelöst. Benutze auch Squeeze, ob es da noch eine Besonderheit gibt?
Folgender Test ergab noch:
php icingaWebTesting.php
PHP Warning: require_once(PHPUnit/Framework.php): failed to open stream: No such file or directory in /usr/local/icinga-web/etc/tests/icingaWebTesting.php on line 3
PHP Fatal error: require_once(): Failed opening required ‚PHPUnit/Framework.php‘ (include_path=‘.:/usr/share/php:/usr/share/pear‘) in /usr/local/icinga-web/etc/tests/icingaWebTesting.php on line 3
Cheers
Das hier könnte die Lösung sein. Nach dem ich hier geschaut habe:
vi /usr/local/icinga/share/icinga-api/log/icingaApi.log
2011-08-04T01:13:25+00:00 – [EXCEPTION] Database connection failed: SQLSTATE[28000] [1045] Access denied for user ‘icinga’@’localhost’ (using password: YES)
2011-08-04T01:13:25+00:00 – [EXCEPTION] getConnection failed: Database connection failed: SQLSTATE[28000] [1045] Access denied for user ‘icinga’@’localhost’ (using password: YES)
mussten also noch “irgendwo” Auth-Daten fehlen. Ich habe dann diese Dateien bearbeitet und entweder die kompletten Settings eintragen müssen oder “config_password” ändern:
cd /usr/local/icinga-web
IcingaApi::CONNECTION_IDO
mysql
127.0.0.1
3306
icinga
icinga
DB_USER_PASSWORD
icinga_
DB_USER_PASSWORD
vi app/modules/Web/config/module.xml
vi app/modules/Web/config/icinga-io.xml
vi app/modules/Web/config/icinga-io.site.xml
DB_USER_PASSWORD
DB_USER_PASSWORD entsprechend ersetzen. Danach lief mein icinga-web und vllt. ist das für eine Squeeze-Anleitung ja wichtig oder überhaupt.
Thumbs up!
axel
Sorry, da sind einige Zeichen „entsorgt“ worden.
z.B. für
vi app/modules/Web/config/icinga-io.xml
DB_USER_PASSWORD
oder
vi app/modules/Web/config/module.xml
…
Hi,
hättest du lust, die neueste Version von Icinga-Web 1.5.0 auf Debian lenny zu installieren und zu testen?
Ich bin entweder zu blöd, oder die Anleitung in deren FAQ/Wiki stimmt einfach nicht 🙁
Ich frage mich eh – für jede Webanwendung gibt es automatic installer, auch wenn es ein total unnützes Tool ist. Für die richtig geilen Tools und Interfaces, muss man ständig lästige Installationmarathons vornehmen (Icinga, Cacti, Nagios etc.)