Icinga 2 mit Icinga Web 2
- Installation von Icinga 2
- Installation von icinga2-ido-mysql
- Installation von Icinga Web 2
- Token erstellen, Icinga Web 2 konfigurieren
- Anhang
Dieser Artikel entstand ursprünglich Mitte 2015; aufgrund der großen Nachfrage habe ich ihn jedoch vollständig überarbeitet, so dass er seine Gültigkeit behält. Die Installation von Icinga 2 und Icinga Web 2 erfolgt im Artikel unter Debian 8. Ich wünsche euch viel Spaß!
Installation von Icinga 2
Um Icinga 2 auf mein Debian zu bringen, füge ich zuerst die Paketquellen hinzu.
## file: "/etc/apt/sources.list.d/icinga2.list"
deb http://packages.icinga.com/debian icinga-jessie main
deb-src http://packages.icinga.com/debian icinga-jessie main
$ wget -O - http://packages.icinga.com/icinga.key | apt-key add -
...
OK
$ apt-get update
Installation von icinga2-ido-mysql
Damit ist Icinga 2 schonmal installiert; als nächstes möchte ich icinga2-ido-mysql
haben, es dient der Kommunikation zwischen Icinga 2 und dem Webinterface. Bei der Installation wird gefragt, ob eine entsprechende Datenbank angelegt werden soll – ja, soll sie, und in meinem Fall heißt sie icinga2
. (Die Daten zu dieser IDO-Verbindung finden sich fortan in /etc/icinga2/features-enabled/ido-mysql.conf
) Dann wird installiert, aktiviert und der Service anschließend durchgestartet. Außerdem werden die check commands benötigt, auch die installieren wir nun.
$ apt-get -y --no-install-recommends install nagios-nrpe-plugin nagios-plugins-basic nagios-plugins-common nagios-plugins-contrib
$ apt-get -y install mariadb-server icinga2 icinga2-ido-mysql
$ icinga2 feature enable command
$ icinga2 feature enable ido-mysql
$ service icinga2 restart
$ icinga2 feature list
Disabled features: api compatlog debuglog gelf graphite influxdb livestatus opentsdb perfdata statusdata syslog
Enabled features: checker command ido-mysql mainlog notification
Installation von Icinga Web 2
Inzwischen gibt es auch hübsche Pakete für Icinga Web 2. Das ist sehr praktisch und erspart einem doch so einiges an Arbeit: so zieht der Installationsaufruf auch apache2
nach sowie PHP, beide dringend benötigt.
$ apt-get install icingaweb2 php5-imagick php5-intl
Für PHP muss die passende Zeitzone eingestellt werden:
## file: "/etc/php5/apache2/php.ini"
...
[Date]
date.timezone = "Europe/Berlin"
...
Und für das Webinterface muss nun eine apache2
-Konfiguration erzeugt, an Ort und Stelle gepackt und aktiviert werden. Dazu kann man folgendermaßen vorgehen:
$ cd /etc/apache2/sites-available
$ /usr/bin/icingacli setup config webserver apache --document-root /usr/share/icingaweb2/public > icingaweb2.conf
$ a2ensite icingaweb2.conf
$ a2enmod rewrite
$ service apache2 restart
Das ist der Punkt, ab dem über das Webinterface gearbeitet werden kann: über http://$DEINHOST/icingaweb2
kann es aufgerufen bzw. über http://$DEINHOST/icingaweb2/setup
der Setup Wizard gestartet werden.
Token erstellen, Icinga Web 2 konfigurieren
Im ersten Schritt des Setup Wizard wird ein Configuration Token abgefragt, man erzeugt es folgendermaßen:
$ /usr/bin/icingacli setup config directory --group www-data
Successfully created configuration directory /etc/icingaweb2
$ /usr/bin/icingacli setup token create
The newly generated setup token is: 7632b841189bfbe2
Das Token wird benötigt, um die Konfiguration von Icinga 2 per Webinterface anstoßen zu können. Der folgende Dialog ist hinreichend kommentiert, die Abhängigkeiten werden überprüft, die Einstellungen vorgenommen. Im Wesentlichen war es das: du kannst dich nun einloggen und beginnen, dich mit der (im Vergleich zu Nagios wirklich sehr neuen) Oberfläche vertraut zu machen. Erste Checks auf localhost
sind vordefiniert. In /etc/icinga2/
saust die Konfiguration dazu herum, und auch hier ist einiges an Umgewöhnung erforderlich – doch es lohnt sich. Es wird sehr spannend, bestehende Daten in das neue System umzuziehen. Ich jedenfalls bin schon süchtig… ;)
Anhang
Aus Kompatibilitätsgründen belasse ich Teile des alten Beitrags, wie sie sind; sie werden üblicherweise nicht mehr benötigt, helfen so manchem aber gegebenenfalls dennoch weiter.
Icinga 2 ist so konfiguriert, dass es seine Daten in der Datenbank icinga2idomysql
ablegt. Soll das Webinterface nun Informationen anzeigen, muss es ebenfalls Zugriff auf diese Datenbank erhalten. Hierzu richtest du am besten einen eigenen Datenbank-User icingaweb2
ein, dem du Rechte auf icinga2idomysql
einräumst. Darüberhinaus benötigt icingaweb2
auch eine eigene Datenbank icingaweb2
, die in diesem Zuge ebenfalls eingerichtet und für den User icingaweb2
zugänglich gemacht wird.
mysql> CREATE USER 'icingaweb2'@'localhost'
-> IDENTIFIED BY 'qwertz';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT SELECT, INSERT, UPDATE, DELETE,
-> DROP, CREATE VIEW, INDEX, EXECUTE
-> ON icinga2idomysql.*
-> TO 'icingaweb2'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE DATABASE icingaweb2;
Query OK, 1 row affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON icingaweb2.*
-> TO 'icingaweb2'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
Hintergrundbild: Bild genauer anschauen – © Marianne Spiller – Alle Rechte vorbehalten