Icinga2 und IcingaWeb2 als VM in der VirtualBox installieren

Icings2 Login

Icinga ist eine ausgezeichnete und kostenlose Monitoringsoftware, die eine enorme Flexibilität bietet. Um das System kennenzulernen, bietet sich eine Installation auf einer VM an. Ich beschreibe hier die Installation in der VirtualBox von Oracle. Dazu habe ich mir eine neue VM mit dem ISO des Ubuntu-Servers 16.04 erstellt und auf den neuesten Update-Stand gebracht. Benötigte Komponenten sind ein Apache2 Webserver und eine MySQL-Datenbank, sowie ein paar kleinere Anpassungen an PHP.

Operating System: Ubuntu 16.04 Server
Software Version: Monitoring 2.5.1 / Programmversion r2.8.2-1

Apache2 installieren

Zusätzlilch zum Apache 2 installieren wir gleich das PHP-Modul für den Apache, sowie SSH und den Midnight Commander mit.

1
2
3
4
5
6
7
8
:~$ sudo apt update
:~$ sudo apt upgrade
:~$ sudo apt install apache2
:~$ sudo apt install libapache2-mod-php7.0
:~$ sudo apt install php7.0-xml
:~$ sudo apt install php-imagick
:~$ sudo apt install ssh
:~$ sudo apt install mc

Falls noch nicht geschehen, muss die VirtualBox nun noch so eingerichtet werden, dass sie Verbindungen vom Hostrechner akzeptiert. Dazu stellt man den Verbindungstyp auf Netzwerkbrücke um.

Die Netzwerkeinstellungen der VirtualBox, um mit dem Hostsystem eine Verbindung zum Gastsystem aufzubauen

Startet man nun den Icinga-Server wieder, stellt man mit dem Befehl ifconfig die Netzwerkadresse des Servers fest, die er vom DHCP im Netz des Hostrechners bekommen hat und kann nun vom Hostrechner aus mit dem Browser die Apache2 Ubuntu Default Page des Apache2 aufrufen, indem man die IP eingibt.

Die Default Page des Apache2

MySQL installieren

Bei der Installation wird zusätzlich zu Server und Client auch gleich die IDO-Schnittstelle mit installiert, die es Icinga2 und IcingaWeb2 ermöglicht, miteinander über die MySQL-Datenbank zu kommunizieren. Beantworten Sie beide Fragen während der IDO-Installation mit Ja, denn es soll die MySQL-Datenbank verwendet und der Konfigurationsassistent ausgeführt werden.

1
:~$ sudo apt install mysql-server mysql-client icinga2-ido-mysql

Die Ido-MySQL-Funktionalität aktivieren Sie während der Installation und lassen die Datenbank von dbconfig-common konfigurieren.
Notieren Sie sich das bei der Installation eingegebene root-Passwort und das MySQL-Anwendungspasswort für icinga2-ido-mysql!

Um den Umgang mit der Datenbank zu erleichtern, installiert man phpmyadmin für den Apache2 gleich mit (Bei apache2 das Sternchen setzen nicht vergessen!) und lässt die Datenbank auch von dbconfig-common konfigurieren.

1
:~$ sudo apt install phpmyadmin

 

Icinga2 und IcingaWeb2 installieren

Icinga2 ist in den offiziellen Paketquellen von Ubuntu 16.04 enthalten, aber leider gibt es mit dieser Version etliche Probleme, die man umgehen kann, wenn man die neuesten Pakete direkt aus dem Repository von Icinga installiert. Dazu wird zuerst der Key benötigt.

1
:~$ sudo curl -ssl https://packages.icinga.com/icinga.key | sudo apt-key add

Die Paketquelle fügt man dann hinzu, indem man z.B. wie hier mit nano eine Datei erstellt

1
:~$ sudo nano /etc/apt/sources.list.d/icinga.list 

und dort als Text die Adresse der Paketquelle einträgt:
deb https://packages.icinga.com/ubuntu icinga-xenial main

Das Update der Paketquelle und die Installation erfolgt nun mit

1
2
:~$ sudo apt update
:~$ sudo apt install icinga2

Dabei wird die IDO-Schnittstelle enabled und icinga2-ido-mysql mit dbconfig-common konfiguriert.
Die IDO Schnittstelle wird aktiviert und einen Useraccount für Icinga2 wird angelegt mit

1
2
3
4
:~$ sudo icinga2 feature enable ido-mysql command
:~$ sudo service icinga2 restart
:~$ sudo addgroup -system icingauser
:~$ sudo usermod -aG icingauser www-data

Es kann jetzt der von Icinga2 und IcingaWeb2 verwendete MySQL-User angelegt werden, indem man die MySQL-Konsole aufruft. Ich habe dem MySQL-User mit GRANT ALL hier alle Rechte gegeben, da es sich um eine Testinstallation handelt. Der gewissenhafte Administrator gibt hier stattdessen ein GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ein.

1
2
3
4
5
:~$ mysql -u root -p
mysql> GRANT ALL ON icinga2.* TO 'icingaweb'@'localhost' IDENTIFIED BY '<password>';
mysql> FLUSH PRIVILEGES;
mysql> quit
:~$ sudo service mysql restart

Auch das hier vergebene Passwort notieren 😉 und IcingaWeb2 installieren.

1
:~$ sudo apt install icingaweb2

 

Konfiguration

Für die Konfiguration wird ein Token benötigt, um die Konfiguration starten zu können.

1
2
:~$ sudo icingacli setup config directory -group icingaweb2
:~$ sudo icingacli setup token create

Vom Hostsystem aus kann man nun mit http://<IP-Adresse des Gastsystems>/icingaweb2/setup das Setup durchführen. Belassen Sie zunächst nur den Haken bei Monitoring und klicken Sie auf Weiter. Den Fehler, der unter Default Timezone angezeigt wird, beheben Sie mit einem Texteditor in der Datei /etc/php/7.0/apache2/php.ini, indem Sie in der Zeile date.timezone das Semikolon entfernen und den Wert “Europe/Berlin” ergänzen.

date.timezone = “Europe/Berlin”

Starten Sie den Apache2 neu oder laden Sie die Konfiguration neu und klicken Sie auf der Konfigurationsseite rechts unten auf Refresh.

1
:~$ sudo service apache2 restart

Sind keine roten Einträge mehr vorhanden, klicken Sie auf Weiter, bis Sie zu Seite Database Resource kommen. Da hier als Datenbank MySQL verwendet wird, kann man die noch bestehenden gelben Einträge zu PostgreSQL ifnorieren. Geben Sie einen neuen Namen für die IgingaWeb2-Datenbank an und verwenden Sie nicht die Datenbank von Icinga2. Der User kann allerdings in beiden Datenbanken identisch sein.

Die Datenbank und der Account für IcingaWeb2 wird angelegt

Die Konfiguration legt diese neue Datenbank an und benötigt dazu den root-Account.

IcingaWeb2 Database Setup

Der vorgeschlagene Name für das Authentifizierungs-Backend icingaweb2 kann einfach übernommen werden.
Nun wird noch ein administrativer Account für IcingaWeb2 benötigt.

Der IcingaWeb2 Administrator wird angelegt

Auf der Folgeseite können Sie alle Einstellungen belassen.

Nach einer zusammenfassenden Übersicht über die Konfigurationsparameter geben Sie noch als Backentyp die IDO-Schnittstelle an. Die Monitoring-IDO-Ressource ist unsere Datenbank für Icinga.

Monitoring-IDO-Ressource

Die Einträge der Folgeseiten Befehlsschnittstelle werden auf Lokale Befehlsdatei  geändert.

Icinga2 Befehlstransport

Die Einträge unter Monitoring können mit den Vorgabewerten übernommen werden. Damit sollte IcingaWeb2 unter der Adresse http://<IP des Gastsystems>/icingaweb2/ bereit sein zum ersten Start mit dem zuvor angelegten Administrator icingaadmin.

Die Einrichtung des IcingaWeb2 Directors beschreibe ich -> hier.

Fehlerbehebung

 

connect to address 127.0.0.1 and port 22: Verbindungsaufbau abgelehnt
Starten Sie ssh vorsichtshalber neu und fügen den localhost hinzu.

:~$ sudo service ssh restart
:~$ sudo ssh localhost

 

icingswebcli ist nicht vorhanden.
Das Token für das Setup kann auch mit folgendem Befehl erstellt werden:

:~$ su www-data -c "mkdir -m 2770 /etc/icingaweb2; chgrp icingaweb2 /etc/icingaweb2; head -c 12 /dev/urandom | base64 | tee /etc/icingaweb2/setup.token; chmod 0660 /etc/icingaweb2/setup.token;

 

Probleme bei der Installation von MySQL
Unter Debian wird MariaDB installiert und es gibt dann keinen root. Wie der root-Account angelegt werden kann, lesen Sie -> hier.
Tipps zur Installation von phpmyadmin mit MariaDB findet man -> hier.

Buy Me a Coffee at ko-fi.com

You May Also Like

2 Comments

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Aus persönlichen Gründen...

... kann ich den Blog im Moment leider nicht wie gewohnt betreuen und Anfragen zeitnah beantworten. Lediglich die technische Funktionalität versuche ich aufrecht zu erhalten. Sollte es trotzdem was Neues hier geben, dann schreibe ich eine Info in die Telegram-Gruppe.


In der Telegram-Gruppe können Sie sich weiterhin mit anderen Lesern von Împuşcătura austauschen.

Zur Telegram-Gruppe