Seite wählen

Icinga Web und Icinga DB Web auf Ubuntu 20.04 / 22.04 installieren

von | Jul 3, 2023 | Monitoring & Observability, Icinga

Damit du Daten, die dein Icinga Monitoring (auch bekannt als Icinga 2) sammelt, grafisch darstellen und daraus Erkenntnisse gewinnen kannst, ist eine grafische Oberfläche für viele User nicht wegzudenken.
Icinga Web ist das Frontend des Icinga Stack und die optimale Lösung, wenn es darum geht, die Abläufe und Checks deines Open Source Monitoring zu visualisieren.
Dieser Guide hilft dir bei der Installation und Konfiguration von Icinga Web und Icinga DB Web auf Ubuntu 20.04 / 22.04.

Wenn du bereits unseren Guide zur Installation und Konfiguration von Icinga und Icinga DB durchgeführt hast, kannst du direkt loslegen. Wenn du noch kein Icinga installiert hast, dann solltest du jetzt zu unserem Icinga Installationsguide wechseln und anschließend hier weiterlesen.

Voraussetzungen für die Icinga Web und Icinga DB Web-Installation

Damit dieser Guide erfolgreich umgesetzt werden kann, gibt es einige wichtige Voraussetzungen:

  • Ein bereits vorhandenes Icinga bestehend aus:
    • Ubuntu 20.04 / 22.04 Server mit mindestens 2 GB RAM und 20 GB freiem Speicherplatz
    • IcingaIcinga DBIcingaDB-Redis und MySQL/MariaDB/PostgreSQL
  • sudo – Benutzer ist auf dem Server eingerichtet und du hast das Recht ihn zu nutzen
  • Die aktuellste PHP-Version
  • Eine Internetverbindung auf den Server
  • Ein Webserver (Apache, Nginx, etc.) ist auf dem Server installiert

Du kannst hinter alle diese Punkte einen Haken setzen? Dann legen wir los!

Anmerkung: Alle nachfolgende Schritte werden als root-User durchgeführt. Überprüfe, ob du den richtigen Benutzer verwendest!

Schritt 1: Icinga Repository hinzufügen

Dieser Schritt sollte bereits bei der Installation von Icinga 2 ausgeführt worden sein und muss grundsätzlich nicht wiederholt werden. Falls diese Installation jedoch eine Weile her ist oder du auf „Nummer sicher“ gehen willst, sind hier die Befehle, mit denen du das offizielle Icinga-Repository zu deinem System hinzufügst:

apt update 
apt -y install apt-transport-https
wget gnupg wget -O - https://packages.icinga.com/icinga.key | gpg --dearmor -o /usr/share/keyrings/icinga-archive-keyring.gpg
. /etc/os-release; if [ ! -z ${UBUNTU_CODENAME+x} ]; then DIST="${UBUNTU_CODENAME}"; else DIST="$(lsb_release -c| awk '{print $2}')"; fi; \
 echo "deb [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] https://packages.icinga.com/ubuntu icinga-${DIST} main" > \
 /etc/apt/sources.list.d/${DIST}-icinga.list  
echo "deb-src [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] https://packages.icinga.com/ubuntu icinga-${DIST} main" >> \
 /etc/apt/sources.list.d/${DIST}-icinga.list
apt update

Schritt 2: Icinga Web und Icinga DB Web auf Ubuntu 20.04 / 22.04 installieren

Bevor es mit der Konfiguration von Icinga Web losgeht, wird das icingadb-web Paket installiert. Dieser Schritt ist nötig, damit im späteren Verlauf der Icinga Web Installationsanleitung das Modul direkt aktiviert und konfiguriert werden kann. Zu Installation nutzt du:

apt-get install -y icingadb-web

Der Vorteil dieses Befehls ist, dass dabei NICHT NUR das angesprochene Modul installiert wird!
Zusätzlich installiert dieser Befehl direkt alle noch nicht vorhandenen Abhängigkeiten direkt mit. Namentlich sind das unter anderem Icinga Web, icingacli und libapache2-mod-php.

Dieser kleine Befehl ist somit das Multifunktionstool der Installation. Weiter geht es mit der Konfiguration und Webinstallation von Icinga Web 2.

Schritt 3: Icinga Web konfigurieren und installieren

Um einen besseren Überblick und Verständnis für die einzelnen Punkte zu schaffen, wird dieser Schritt in einzelne Teilschritte unterteilt.


Schritt 3.1: Konfigurationsdatei für den Webserver anlegen

Ob du den folgenden Befehl ausführen musst, ist von der Wahl deines Webservers abhängig.
Hast du dich für Apache entschieden, ist eine Konfigurationsdatei für die Nutzung von Icinga Web bereits installiert. Nutzt du Nginx, musst du eine Konfigurationsdatei erstellen und sie im Konfigurationsverzeichnis von Nginx speichern.

icingacli setup config webserver nginx --document-root /usr/share/icingaweb2/public

Schritt 3.3: Authentifizierungs-Token erstellen

Damit du Icinga Web mit dem Icinga Web Setup Wizard schnell und einfach installieren und konfigurieren kannst, benötigst du ein Token zu Authentifizierung. Dieses erstellst du ganz einfach mit folgendem icingacli-Befehl:

icingacli setup token create

Für den Fall, dass das Token zu einem späteren Zeitpunkt erneut aufgerufen werden muss, gibt es diesen Befehl:

icingacli setup token show

Schritt 3.3: Icinga Web Datenbank anlegen

Ein weiterer wichtiger Schritt ist das Anlegen einer Icinga Web Datenbank und eines Icinga Web Datenbank-Nutzers.
Diese beiden Befehle kann Icinga Web aufgrund von Sicherheitseinschränkungen des lokalen Systems nicht automatisiert durchführen. In diesem Guide nutze ich MariaDB als Datenbank. Andere Datenbanken wie etwa PostgreSQL sind ebenfalls möglich. Die Anleitung hierfür findest du in den Icinga Docs.

mysql -u root -p 
CREATE DATABASE icingaweb2;
CREATE USER 'icingaweb2'@'localhost' IDENTIFIED BY 'USE_A_SECURE_PASSWORD_HERE';
GRANT ALL ON icingaweb2.* TO icingaweb2@localhost;

Damit sind alle Vorbereitungen abgeschlossen und die eigentliche Einrichtung von Icinga Web kann beginnen.

Schritt 4: Icinga Web im Browser einrichten

Um das Icinga Web 2 Setup zu starten du die IP-Adresse deiner Icinga-Instanz im Browser auf und hängst /icingaweb2/setup hinten an.

Icinga Token einfügen

Auf der ersten Seite trägst du das in Schritt 3.2 erzeugt Token ein und beginnst damit das Setup:

Screenshot des Icinga Web Setups, bei dem die Eingabemaske für das Icinga Token zu sehen ist

Hier fügst du das in Schritt 3.2 erzeugt Token ein und klickst auf Next.

Icinga Web Module auswählen

Auf dieser Seite wählst du aus den fünf vorgeschlagenen Modulen die aus, die du nutzen willst. Standardmäßig ist bereits das Icingadb Modul ausgewählt, was beibehalten werden muss!

WICHTIG: Da wir eine aktuelle Installation von Icinga 2 und Icinga Web 2 durchführen, kommt Icinga DB anstelle der bisher verwendeten IDO zum Einsatz. Von daher kann auf das Modul Monitoring verzichtet werden!

Ansicht der Icinga Web Setup Oberfläche zur Einrichtung von Icinga Web Modulen (dunkelblauer Hintergrund, hellblauer Header). In der aktuellen Ansicht ist das Modul IcingaDB zur EInrichtung ausgewählt.

Icinga Web PHP Module überprüfen

Du erhältst eine Übersicht über alle benötigten und vorhandenen Bauteile, die Icinga Web benötigt. Hier kannst du überprüfen, ob alle kritischen Abhängigkeiten vorhanden sind.

Ansicht der Icinga Web Setup Oberflächemit einer Übersicht der aktiven PHP Module (dunkelblauer Hintergrund, hellblauer Header). In der aktuellen Ansicht sind ausser ein optionales Modul alle PHP Module aktiv

Authentifizierungsmethode wählen

Um eine Zugangsauthentifizierung zu Icinga Web 2 durchzuführen, stehen dir drei verschiedene Möglichkeiten zur Verfügung:
DatabaseLDAP oder External.

Hier kannst du die von dir oder deinem Unternehmen präferierte Authentifizierungsmethode nutzen. Die Eingabe der nötigen Daten erfolgt in einem späteren Schritt.
In diesem Guide beziehen wir uns auf die Authentifizierung über die Datenbank.

Ansicht der Icinga Web Setup Oberflächezur Auswahl der Authentifizierungsmethode (dunkelblauer Hintergrund, hellblauer Header). In der aktuellen Ansicht wird die Datenbank zur Authentifizierung genutzt

Datenbank-Authentifizierung

Im Formular zur Datenbank-Authentifizierung trägst du alle wichtigen Informationen ein.

Ansicht der Icinga Web Setup Oberfläche mit einem Formular zur Eingabe der Datenbank Zugangsdaten (dunkelblauer Hintergrund, hellblauer Header). In der aktuellen Ansicht ist das leere Formular zu sehen

Daten, welche in die einzelnen Felder eingetragen werden müssen (oder können, wenn sie nicht explizit gefordert sind):

  • Ressource Name: Name deiner Datenbank-Ressource. Kann den Default Namen behalten
  • Database Type: Je nachdem, ob du MySQL/MariaDB oder PostgreSQL verwendest, wählst du hier den entsprechenden Typen aus
  • Host:Auf welchem Host liegt deine Datenbank? In dem meisten Fällen kannst du hier den Default localhost beibehalten
  • Port: Hast du einen speziellen Port für deine Datenbank freigegeben? Dann musst du diesen hier eintragen
  • Database Name: Namen der Datenbank ein, die du in Schritt 3.3 für Icinga Web angelegt hast
  • Username: Username aus Schritt 3.3
  • Password: Passwort für den User aus Schritt 3.3
  • Character Set: Du nutzt ein bestimmtes Character Set? Hier optional angeben
  • Use SSL: Nutzt du Verschlüsselung und SSL-Zertifikate? Aktiviere den Button und gib deine Daten ein

 

Hast du deine Daten eingegeben, drückst du Validate Configuration. War alles richtig, erhältst du diese Ansicht:

Ansicht der Icinga Web Setup Oberfläche mit einem Formular zur Eingabe der Datenbank Zugangsdaten (dunkelblauer Hintergrund, hellblauer Header). In der aktuellen Ansicht ist das ausgefüllte Formular inklusive erfolgreicher Validierung zu sehen

Icinga Web Backend Authentifizierung

Wähle nun einen Namen für dein Icinga Web Authentifizierungsbackend aus.

Ansicht der Icinga Web Setup Oberfläche zur Auswahl er Backend Authentifizierung (dunkelblauer Hintergrund, hellblauer Header).

Icinga Web Admin User anlegen

Es wird Zeit, den ersten Icinga Web Admin anzulegen. Gib ihm einen Benutzernamen und ein sicheres Passwort!

Ansicht der Icinga Web Setup Oberfläche zum Anlegen eines administrativen Benutzers (dunkelblauer Hintergrund, hellblauer Header).

Icinga Web Anwendungs- und Loggingeinstellungen

Auf dieser Seite hast du die Möglichkeit, ein paar individuelle Konfigurationen an der Anwendung so wie dem Loggingverhalten von Icinga Web 2 vorzunehmen. Für diesen Guide werden die Standardeinstellungen beibehalten.

Ansicht der Icinga Web Setup Oberfläche zur Auswahl der individuellen Logging-Einstellungen für die Monitoring-Umgebung (dunkelblauer Hintergrund, hellblauer Header).

Übersicht der bisherigen Icinga Web Konfiguration

Zum Abschluss der Konfiguration erhältst du eine Übersichtsseite, auf der du noch einmal alle von dir gewählten Einstellungen überprüfen kannst. Wenn du zufrieden bist und keinen Fehler erkennst, drücke auf Finish und schließe die Icinga Web 2 Konfiguration ab.

Ansicht der Icinga Web Setup Oberfläche mit allen bisher getätigen Einstellungen zur Übersicht am Ende des aktuellen Einrichtungsschrittes (dunkelblauer Hintergrund, hellblauer Header).

Icinga DB Web konfigurieren

Nach der Übersicht startet als letzter Schritt der Installation und Konfiguration von Icinga Web die Konfiguration von Icinga DB Web.

Ansicht der Icinga Web Setup Oberfläche mit dem Beginn der IcingaDB Konfiguration (dunkelblauer Hintergrund, hellblauer Header).

Folge dem Wizard auf die nächste Seite. Hier musst du die Datenbank Daten von Icinga DB eingeben, die während der Konfiguration der entsprechenden Datenbank in der Anleitung zur Installation und Konfiguration von Icinga und Icinga DB erstellt wurden.

Ansicht der Icinga Web Setup Oberfläche mit einem Formular zur Eingabe der IcingaDB Datenbank Zugangsdaten (dunkelblauer Hintergrund, hellblauer Header).

Wurden alle Felder richtig ausgefüllt und die Konfiguration validiert, erscheint eine Erfolgsmeldung.

Ansicht der Icinga Web Setup Oberfläche mit ausgefülltem Formular der IcingaDB Datenbank Zugangsdaten und erfolgreicher Validierung dieser Daten (dunkelblauer Hintergrund, hellblauer Header).

Nachdem die Verbindung zur Datenbank erfolgreich eingerichtet wurde, muss nun noch die Verbindung zu Icinga DB Redis hergestellt werden.

Ansicht der Icinga Web Setup Oberfläche mit einem Formular zur Eingabe der IcingaDB-Redis Datenbank Zugangsdaten (dunkelblauer Hintergrund, hellblauer Header).

Wie bei der Datenbank werden hier die Zugangsdaten eingeben und die Konfiguration validiert.
(Da während der Einrichtung von Redis auf ein Passwort verzichtet wurde, kann das Feld hier ebenfalls freigelassen werden)

Ansicht der Icinga Web Setup Oberfläche mit ausgefülltem Formular der IcingaDB-Redis Datenbank Zugangsdaten und erfolgreicher Validierung dieser Daten (dunkelblauer Hintergrund, hellblauer Header).

Icinga API mit Icinga Web verbinden

Der letzte Schritt vor dem erfolgreichen Abschluss der Konfiguration von Icinga Web ist das Herstellen der Verbindung von Icinga Web zur Icinga 2 API.
Der standardmäßige API-Nutzer root. Dieser und das dazugehörige Passwort wurden im Guide zur Installation und Konfiguration von Icinga und Icinga DB erstellt.

Das Passwort kann jederzeit unter /etc/icinga2/conf.d/api-users.conf nachgeschlagen werden.

Ansicht der Icinga Web Setup Oberfläche mit ausgefülltem Formular zur mit der Icinga API und erfolgreicher Validierung dieser Daten (dunkelblauer Hintergrund, hellblauer Header).

Die Konfiguration endet mit einer Übersichtsseite, auf der alle eingegebenen Daten noch einmal überprüft werden können.

Ansicht der Icinga Web Setup Oberfläche mit allen bisher getätigten Einstellungen für IcingaDB zur Übersicht am Ende des aktuellen Einrichtungsschrittes (dunkelblauer Hintergrund, hellblauer Header).

Waren alle hier beschriebenen Schritt erfolgreich, strahlt dir ein grünes Congratultaions! Icinga Web 2 has been successfully set up entgegen.

Nun steht deinem ersten Icinga Web Login nichts mehr im Weg.

Schritt 5: Der erste Icinga Web Login

Mit den Zugangsdaten, die du im Laufe des Icinga Web 2 Wizards angelegt hast, kannst du nun deinen ersten Login vornehmen.

Ansicht des Icinga Web Dashboards nach erfolgtem Login. Zu sehen sind alle Menüpunkte sowie einige Monitoringbeispiele

Damit neue Nutzer:innen einen ersten Eindruck davon erhalten, wie die gesammelten Daten vom Systemmonitoring oder Netzwerkmonitoring dargestellt werden, kommt Icinga mit einer Beispielkonfiguration. Diese kann gelöscht werden, sobald man selbst damit beginnt, Icinga mit seinen eigenen Daten und Templates zu füllen.

Wie gehts es nun weiter?

Herzlichen Glückwunsch, du hast erfolgreich Icinga, Icinga DB und Icinga Web installiert und konfiguriert! Damit steht deiner aktiven Nutzung der Open Source Monitoring Lösung nichts mehr im Weg.
Du kannst direkt loslegen und über die Icinga 2 API Objekte anlegen, Actions triggern oder Templates bauen. Welche API-Calls dafür zur Verfügung stehen, erfährst du ausführlich in den Icinga Docs.

Die Verwaltung und Nutzung von Icinga über die API ist eine häufig genutzt und valide Option. Eine weitere Möglichkeit, diese Einstellungen vorzunehmen, ist der Icinga Director. Dieser gibt Nutzer:innen die Möglichkeit, den Icinga Stack grafisch innerhalb von Icinga Web zu konfigurieren.
Wenn du dich dafür interessierst, wie der Icinga 2 Director installiert und konfiguriert wird und wie du ihn einsetzen kannst, lege ich dir unseren Guide Icinga Director auf Ubuntu installieren ans Herz.

0 Kommentare

Einen Kommentar abschicken

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

Mehr Beiträge zum Thema Monitoring & Observability | Icinga