Installation von Icinga2 mit Icinga Web unter Ubuntu 14.04 LTS

Icinga2 ist nicht im Standard-Repository von Ubuntu vorhanden. Ein zusätzliches Launchpad Repository schafft hier Abhilfe:

Repository für Icinga2 hinzufügen

add-apt-repository ppa:formorer/icinga
apt-get update

Icinga2 installieren

Jetzt kann Icinga2 ganz normal mit apt installiert werden:

apt-get install icinga2

Einrichtung des Web-Interfaces mit Icinta Web

Auch hier muss vorher ein zusätzliches Repository hinzugefügt werden:

add-apt-repository ppa:formorer/icinga-web
apt-get update

Danach:

apt-get install mysql-server icinga2-ido-mysql

Hier bei der Abfrage nach der Datenbank-Konfiguration mit Yes bestätigen und das (bei der Installation von MySQL) hinterlegte root Passwort für MySQL eingeben.

Während der Installation von icinga2-ido-mysql wird das Feature bei Icinga2 schon aktiviert. Ansonsten:

icinga2-enable-feature ido-mysql
service icinga2 restart

Jetzt installieren wir das Icinga Web Paket:

apt-get install icinga-web

Wichtig: Bei der Abfrage für die Datenbank-Konfiguration hier mit No antworten.

Jetzt legen wir die benötigte Datenbank an:

# mysql -u root -p
CREATE DATABASE icinga_web;
GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga_web.* TO 'icinga_web'@'localhost' IDENTIFIED BY 'icinga_web';
quit

Spielen das Datenbank-Schema ein:

mysql -u root -p icinga_web < /usr/share/dbconfig-common/data/icinga-web/install/mysql

Setzten die Berechtigungen für die Datenbank:

# mysql -u root -p
GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga2idomysql.* TO 'icinga'@'localhost' IDENTIFIED BY 'icinga';
quit

Jetzt müssen wir noch die Datenbank-Konfiguration für Icinga2 anpassen. Dazu muss in der Datei /etc/icinga-web/conf.d/databases.xml folgender Bereich auskommentiert werden:

<!-- comment this if you do not want to use debconf with dbconfig-common for the IDO database -->
<!--
  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="/etc/icinga-web/conf.d/database-ido.xml#xpointer(databases/node())">
    <xi:fallback></xi:fallback>
  </xi:include>
-->

Und die Kommentare um folgenden Bereich entfernt werden. Außerdem muss hier die Zeile <ae:parameter name="dsn">mysql://icinga:icinga@localhost:3306/icinga2idomysql</ae:parameter> geändert werden.

<!--
  Overwrite the default database conneciton for icinga data retrieval
  Make sure to use IcingaDoctrineDatabase, otherwise the use_retained parameter will be ignored
  EXAMPLE (oracle needs icingaOracle as the db driver)
-->
<db:database xmlns="http://agavi.org/agavi/config/parts/databases/1.0" name="icinga" class="IcingaDoctrineDatabase">
  <ae:parameter name="dsn">mysql://icinga:icinga@localhost:3306/icinga2idomysql</ae:parameter>
  <ae:parameter name="prefix">icinga_</ae:parameter>
  <ae:parameter name="charset">utf8</ae:parameter>
  <ae:parameter name="use_retained">true</ae:parameter>
  <ae:parameter name="date_format"><![CDATA[YYYY-MM-DD HH24:MI:SS]]></ae:parameter>
  <ae:parameter name="manager_attributes">
    <ae:parameter name="Doctrine_Core::ATTR_MODEL_LOADING">CONSERVATIVE</ae:parameter>
  </ae:parameter>
  <ae:parameter name="load_models">%core.module_dir%/Api/lib/database/models/generated</ae:parameter>
  <ae:parameter name="models_directory">%core.module_dir%/Api/lib/database/models</ae:parameter>
  <ae:parameter name="caching">
    <ae:parameter name="enabled">false</ae:parameter>
    <ae:parameter name="driver">apc</ae:parameter>
    <ae:parameter name="use_query_cache">true</ae:parameter>
  </ae:parameter>
</db:database>
</xml>

Um Icinga-Web mit der Kommandozeile zu verbinden (um Aktionen aus dem Interface auszuführen), muss noch das Kommandozeilen-Feature aktiviert werden:

icinga2-enable-feature command
service icinga2 restart

Nun in der Datei /etc/icinga-web/conf.d/access.xml (Zeile 33) den Pfad zu dem Kommandozeilen-Tool hinterlegen:

# vi /etc/icinga-web/conf.d/access.xml
<resource name="icinga_pipe">/var/run/icinga2/cmd/icinga2.cmd</resource>

Danach den Cache leeren:

/usr/lib/icinga-web/bin/clearcache.sh

Die Dienste neustarten:

service mysql restart && service icinga2 restart && service apache2 restart

Icinga Web aufrufen

Danach ist die Installation von Icinga2 mit Icinga Web als Interface abgeschlossen. Nun können wir Icinga im Broser aufrufen: http://<IP>/icinga-web.

Für den Login kann nach der Installation der Benutzername „root“ und das Passwort „password“ verwendet werden. Nachdem Login sollte man das Passwort und ggf. den Benutzernamen ändern.