icinga2 icingaweb2 monitoring

wall < "Icinga 2 mit Icinga Web 2"

Broadcast message from spillerm@unixe.de (pts/1) (Fr Aug 21 11:11:02 2015):

Wenn schon neu, dann richtig neu -- das war so mein Gedanke, als ich mich mit dem Umzug eines bestehenden Nagios zu befassen begann. Deshalb setzte ich mir zum Testen eine Ubuntu-VM (Trusty LTS) auf, in der ich ein Icinga2 nebst icingaweb2 laufen lassen möchte -- um von hier aus dann zu entscheiden, ob wir damit in den Produktivbetrieb gehen können und möchten. Diesen Artikel hier widme ich allein der grundlegenden Installation und Inbetriebnahme.

4
Diesen Beitrag schrieb ich vor 3 Jahren. Behalte das beim Lesen bitte im Hinterkopf.

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.

## /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

Icinga 2 IDODamit 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 heisst 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:

$ vim /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

Icinga 2 Icinga Web 2 SetupDas 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:

Unterschrift

Icinga 2 macht einfach riesigen Spass!


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.

Zugriff des Users icingaweb2 auf icinga2idomysql

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)
4
  1. Manni das Mammut

    Icinga 2 ist einfach ein riesiger <zensiert> :)
    Kein Plugin funktioniert mehr mit der neuen Version, kaum eine Anleitung ist noch aktuell und SNMP geht ohne Plugin nicht

  2. Hallo,
    Super Anleitung , hat alles sofort geklappt.

  3. Hallo,

    ist es Notwendig, dass die Seiten über <> dem Apache-Host hinzugefügt werden, oder ist es auch möglich diese mit <> einzubinden? (bei Apache 2.4)

    Danke
    Toll

  4. Geheimrat

    mal wieder ein dank für den tollen blogeintrag =)

Keine weitere Reaktionen mehr möglich.