Select Page

NETWAYS Blog

Icinga Director auf RHEL 7 / 8 / 9 installieren

Der Icinga Director ist die grafische Konfigurationsmöglichkeit für Icinga. Zu Beginn als unabhängiges Modul für die Open Source Monitoring Lösung Icinga entwickelt, ist er heute ein vollwertiger Teil des Icinga Stacks.
Wenn du statt der Konfiguration mit der Icinga API auf eine grafische Icinga Konfigurationslösung umsteigen willst, bist du bei uns richtig.

Unser Icinga Director Installationsguide hilft dir dabei, den Icinga Director auf RHEL 7 / 8 / 9 zu installieren.

Voraussetzungen für die Icinga Director Installation

  • Icinga Open Source Monitoring mit folgenden Komponenten:
    • Icinga Core
    • Icinga Web
    • Icinga DB
    • Icinga DB Web
  • Internetzugang
  • Zugang zu Icinga Web
  • Installations- und Administrationsrechte für den Icinga Config Master

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 zu RHEL hinzufügen

Hinweis: Die Schritte die hier für Red Hat Enterprise Linux beschrieben werden, sind ebenso für alle RHEL-basierten Linux Betriebssysteme, zum Beispiel Rocky Linux, Alma Linux, Alpine Linux oder Oracle Linux möglich.

Beachte zudem, dass es sich beim Icinga RHEL Repository um ein kostenpflichtiges Repo handelt. Der Zugang ist Teil der Icinga Subscription Repositories.

Das Repository fügst du mit zwei einfachen Befehlen zu deinem System hinzu:

rpm --import https://packages.icinga.com/icinga.key 
wget https://packages.icinga.com/subscription/rhel/ICINGA-release.repo -O /etc/yum.repos.d/ICINGA-release.repo

Schritt 2: Icinga Director installieren


Um das das Icinga Director Paket aus dem gerade hinzugefügten Repo auf RHEL zu installieren nutzt du diesen Befehl:

RHEL 8 oder später:

dnf install icinga-director

RHEL 7:

yum install icinga-director

 

Schritt 3: Icinga Director Datenbank aufsetzen

Damit der Icinga Director Daten lesen und schreiben kann, benötigt das Icinga 2 Modul eine eigene Datenbank.

Hinweis: In deiner eigenen Umgebung muss SICHERES_PASSWORT mit einem richtigen Passwort deiner Wahl ausgetauscht werden.

MySQL/MariaDB

mysql -e "CREATE DATABASE director CHARACTER SET 'utf8'; 
CREATE USER director@localhost IDENTIFIED BY 'SICHERES_PASSWORT'; 
GRANT ALL ON director.* TO director@localhost;"

PostgreSQL

psql -q -c "CREATE DATABASE director WITH ENCODING 'UTF8';" 
psql director -q -c "CREATE USER director WITH PASSWORD 'SICHERES_PASSWORT'; 
GRANT ALL PRIVILEGES ON DATABASE director TO director; 
CREATE EXTENSION pgcrypto;"

Damit sind alle Schritte im Terminal abgeschlossen. Die nächsten Schritte finden in Icinga Web statt.

Schritt 4: Icinga Director konfigurieren

Damit der Icinga Director in Icinga Web funktioniert, müssen weitere Konfigurationsschritte innerhalb der Icinga Weboberfläche vorgenommen werden.

Anlegen einer neuen Icinga Datenbank Ressource

Im unteren Bereich des linken Icinga Web Menüs befindet sich ein Zahnrad. Sobald du mit der Maus darüber gehst, siehst du das “Hauptmenü” von Icinga Web. Hier folgst dem folgenden Pfad, um zu den Datenbankressourcen zu gelangen:

Configuration –> Application –> Resources

Mit einem Klick auf Create a New Ressource kommst du zu einer Eingabemaske. Hier trägst du die in Schritt 3 angelegten Zugangsdaten für die Icinga Director Datenbank ein und validierst die Konfiguration.

Screenshot der Icinga Web Umgebung des Monitoring Systems Icinga. Zu sehen ist das Anlegen einer neuen Datenbankressource zur Nutzung des Icinga Moduls "Icinga Director" inklusive der erfolgreichen Validierung

Icinga Director Kickstart Wizard

Nutze den Icinga Director Kickstart Wizard, um den Icinga Director zu konfigurieren. Klicke dafür im nun vorhandenen Menüpunkt unter “Ressources” auf Icinga Director. Wähle die gerade angelegte Datenbankressource aus, damit der Director seine Daten auch in die gewünschte Datenbank schreibt.

Screenshot der Icinga Web Umgebung des Monitoring Systems Icinga. Zu sehen ist das Auswählen einer neuen Datenbankressource zur Nutzung des Icinga Moduls "Icinga Director"

Mit einem Klick auf Create Schema wird das Datenbankschema übertragen und der Kickstart Wizard gestartet.

Screenshot der Icinga Web Umgebung des Monitoring Systems Icinga. Zu sehen ist der Kickstart Wizard des Icinga Moduls "Icinga Director" der dafür sorgt, dass das Modul automatisiert in das bestehende System integriert wird

An dieser Stelle müssen drei Felder ausgefüllt werden, bevor der Prozess weitergehen kann:

  • Endpoint Name
  • API User
  • (API) Password

Wenn du dich jetzt fragst, was genau der Icinga Endpoint Name noch mal ist, dieser wurde in Schritt 5 des Icinga Installationsguides für Ubuntu oder des Icinga Installationguides für RHEL im Rahmen des Icinga Node Wizard angelegt.
Es handelt sich dabei um den Objektnamen deines Icinga Master.

Er kann jederzeit unter /etc/icinga2/zones.conf nachgelesen werden. Wenn du deinen Icinga API User und das dazugehörige Passwort noch einmal nachschlagen willst, kannst du das unter /etc/icinga2/conf.d/api-users.conf.

Hast du alle erforderlichen Felder ausgefüllt und den Import gestartet, dauert es einen kurzen Moment. Ist der Prozess erfolgreich abgeschlossen, siehst du im Icinga Director Menü neben Activity log eine dreistellige Zahl, ähnlich der im Screenshot:

Screenshot der Icinga Web Umgebung des Monitoring Systems Icinga. Zu sehen ist der Kickstart Wizard des Icinga Moduls "Icinga Director" im Status der erfolgreich durchgeführten Integration

Diese Zahl zeigt die Anzahl der getätigten Änderungen an, die über den Icinga Director durchgeführt wurden, jetzt aber noch auf dein Icinga 2 Monitoring ausgerollt werden müssen. Diesen letzten Schritt führst du aus, indem du auf Activity log klickst und im oberen Bereich des sich öffnenden Menüs auf Deploy XXXX pending changes klickst.

Screenshot der Icinga Web Umgebung des Monitoring Systems Icinga. Zu sehen ist die Ansicht der durchzuführenden Deployments

Damit hast du erfolgreich den Icinga Director auf RHEL installiert und den letzten Teil des Icinga Stack aufgesetzt und konfiguriert.

Wie geht es jetzt weiter?

Egal ob du unsere Guides zur Icinga Installation seit der Anleitung zur Installation von Icinga auf RHEL genutzt hast oder nur für den Guide zur Icinga Director Installation hier gelandet bist: Herzlichen Glückwunsch zum erfolgreichen Abschluss dieses Guides!

Mit dem Icinga Director nutzt du nun ein mächtiges grafisches Konfigurationstool für Icinga, dass dir die tägliche Arbeit sicher erleichtern kann. Zusammen mit dem IcingaIcinga WebIcinga DB und Icinga DB Web steht dir nun der volle Icinga Stack zur Verfügung.

An dieser Stelle bleibt mir nur noch übrig, dir viel Spaß mit deinem Open Source Monitoring System Icinga zu wünschen.

Icinga Web und Icinga DB Web auf RHEL 7 / 8 / 9 installieren

Icinga Web ist die vom Icinga Team entwickelte und als Teil des Icinga Stack zur Verfügung gestellt Weboberfläche zur Visualisierung der Icinga Monitoring Daten. Die im Webbrowser nutzbare Lösung hat den Vorteil, dass von überall auf die Daten, die das Infrastrukturmonitoring erzeugt, zugegriffen werden kann.

Icinga Web ist 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 RHEL 7 / 8 / 9 oder einem auf RHEL basierenden Linux wie Rocky Linux, Alma Linux oder Oracle Linux.

Wenn du bereits unseren Guide zur Installation und Konfiguration von Icinga und Icinga DB auf RHEL durchgeführt hast, kannst du direkt loslegen. Sind Icinga 2 und Icinga DB noch nicht auf deinem System installiert, solltest du jetzt zu unserem Guide zur Icinga Installation 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:
    • RHEL Server mit mindestens 2 GB RAM und 20 GB freiem Speicherplatz
      • Die Nutzung von RHEL basierten Linuxen wie Rocky LinuxAlma LinuxOracle LinuxAlpine Linux und anderen ist mit den Repositories ebenfalls möglich
    • Icinga CoreIcinga 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! Um den Text leserlich zu halten, wird bei den Befehlen immer von “RHEL” gesprochen. Die Befehle lassen sich jedoch ebenso auf allen RHEL basierenden Systemen anwenden.

Schritt 1: Icinga Repository hinzufügen

Um eine Installation von Icinga überhaupt durchzuführen, muss das nachfolgende Repository bereits zum System hinzugefügt sein und 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:

rpm --import https://packages.icinga.com/icinga.key 
wget https://packages.icinga.com/subscription/rhel/ICINGA-release.repo -O /etc/yum.repos.d/ICINGA-release.repo

Hinweis: Beachte jedoch, dass es sich beim Icinga RHEL Repository um ein kostenpflichtiges Repo handelt. Der Zugang ist Teil der Icinga Subscription Repositories.

Schritt 2: Icinga Web und Icinga DB Web auf RHEL installieren

Bevor die Installation und Konfiguration von Icinga Web startet, wird das icingadb-web Paket installiert. Dieser Schritt stellt sicher, dass im späteren Verlauf der Icinga Web Installationsanleitung das Modul direkt aktiviert und konfiguriert werden kann. Zu Installation nutzt du:

RHEL 8 oder später:

dnf install icingadb-web

RHEL 7:

yum install icingadb-web

 

Hinter diesem Befehl verbirgt sich ein Paket, dass NICHT NUR das angesprochene Modul installiert. Zusätzlich installiert dieser Befehl direkt alle noch nicht vorhandenen Abhängigkeiten.
Unter anderem sind das Icinga Web, icingacli und libapache2-mod-php. Dieser kleine Befehl ist somit das Schweizer Taschenmesser dieser Installation.

Ist auf deinem System SELinux aktiv, muss zudem das entsprechende Icinga Web 2 Paket installiert werden:

RHEL 8 oder später:

dnf install icingaweb2-selinux

RHEL 7:

yum install icingaweb2-selinux

 

Im nächsten Schritt geht es weiter mit der Konfiguration und Webinstallation von Icinga Web.

Schritt 3: Einrichtung von Icinga Web

Bevor es zur Einrichtung von Icinga Web im Browser geht, müssen die letzten Konfigurationsschritte durchgeführt werden.

Schritt 3.1: Authentifizierungs-Token erstellen

Damit Icinga Web mit dem Icinga Web Setup Wizard schnell und einfach installiert und konfiguriert werden kann, benötigst du ein Token zu Authentifizierung. Dieses erstellst du 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

 

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

Schritt 3.2: Icinga Web Datenbank anlegen

Damit Icinga Web Daten aufrufen, verarbeiten und weiterleiten kann ist eine Datenbank notwendig. Mit den folgenden Befehlen wird eben diese Icinga Web Datenbank angelegt:

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;

 

Hinweis: Bevor es in den Browser geht, prüfe folgendes:

  • Firewall ist so eingerichtet, dass die Ports 80 und 443 nach außen kommunizieren dürfen
  • Alle Dienste und Services (u.A. Webserver, Icinga 2, Icinga Web 2) wurden noch einmal neu gestartet. Dadurch werden alle Abhängigkeiten untereinander sicher hergestellt

Schritt 4: Icinga Web im Browser einrichten

Um den Icinga Web Wizard zu starten, rufst du im Browse die IP-Adresse deiner Icinga-Instanz auf und hängst /icingaweb2/setup hinten an.

Icinga Token einfügen

Direkt zu Beginn der Installation trägst du das in Schritt 3.2 erzeugte Token ein:

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

Icinga Web Module auswählen

Auf der folgenden Seite wählst du aus den fünf vorgeschlagenen Modulen die aus, die du nutzen willst. Standardmäßig ist bereits das Icinga DB 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

Im Anschluss erhältst du eine Übersicht über alle benötigten und optionalen PHP-Module, auf die Icinga Web Zugriff hat. Hier kannst du überprüfen, ob alle kritischen Abhängigkeiten vorhanden sind.

Ansicht der Icinga Web Setup Oberfläche mit 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äche zur 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

Hier noch eine kurze Erklärung der einzelnen Punkte:

  • 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, bekommst 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 im nächsten Schritt 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

Als Nächstes legst du deinen Icinga Web Admin an. 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 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 Konfiguration ab.

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

Icinga DB Web konfigurieren

Nach der Übersicht der Icinga Web 2 Konfiguration startet die Konfiguration von Icinga DB Web.

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

Folgt man dem Config Wizard auf die nächste Seite, wirst du aufgefordert, deine Icinga DB Datenbank-Credentials einzugeben.
Wenn du unsere Anleitung zur Installation und Konfiguration von Icinga und Icinga DB [LINK EINFÜGEN] genutzt hast, wurden die Zugangsdaten zu diesem Zeitpunkt erstellt.

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 API.
Der standardmäßige API-Nutzer ist root. Dieser und das dazugehörige Passwort hast du während unseres Guide zur Installation und Konfiguration von Icinga und Icinga DB erstellt. Das Passwort kann jedoch 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 deinem gerade angelegten Icinga Web 2 User und Passwort loggst du dich nun in Icinga Web ein. Damit gelangst du auf das Dashboard:

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

Damit du als neue:r Nutzer:innen einen ersten Eindruck davon erhältst, wie die vom Systemmonitoring oder Netzwerkmonitoring gesammelten Daten dargestellt werden, wird Icinga mit einer Beispielkonfiguration ausgeliefert. 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 Icinga2 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 Director installiert und konfiguriert wird und wie du ihn einsetzen kannst, lege ich dir unseren Guide Icinga Director auf RHEL 7 / 8 / 9 installieren ans Herz.

Icinga mit IcingaDB auf RHEL 7 / 8 / 9 installieren

Wer nach Open Source Monitoring Lösungen zur System- und Netzwerküberwachung sucht, kommt an Icinga (auch als Icinga 2 bekannt) nicht vorbei. Es hilft dir dabei Verfügbarkeit, Leistung und Trends der gesamten IT-Infrastruktur zu überwachen.
Mithilfe individualisierbarer Benachrichtigungseinstellungen kommen deine Daten immer genau dort an, wo sie von dir benötigt werden.

Unsere Installationsanleitung hilft dir dabei, einen leichten Einstieg ins Icinga Monitoring zu finden und Icinga, Icinga DB und Redis erfolgreich auf RHEL 8 / 9 oder einem auf RHEL basierenden Linux wie Rocky Linux, Alma Linux oder Oracle Linux zu installieren.

In diesem Guide spielt die IDO keine Rolle mehr, da diese von Icinga DB als Datenbackend abgelöst wurde. Die neue Komponente sorgt für eine bessere Performance und Skalierbarkeit von Icinga.

Voraussetzungen für die Installation von Icinga und Icinga DB

Bevor es um die systemischen Voraussetzungen geht, die für eine Icinga Installation notwendig sind, ein wichtiger Hinweis:
die offiziellen RHEL Repositories von Icinga sind Teil der Icinga Repository Subscription! Ohne einen offiziellen Zugang ist die Installation von Icinga auf RHEL-basierten Systemen nicht möglich! Um Zugang zu erhalten, ist ein Abo bei Icinga nötig.

Alle Infos sowie Kontaktmöglichkeiten zum Thema befinden sich auf der Homepage von Icinga. 

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

  • RHEL oder ein darauf basierendes Linux (Alma, Rocky, Alpine, uvm.)
  • Der sudo – Benutzer ist auf dem Server eingerichtet und du hast das Recht, ihn zu nutzen
  • Zugriff auf eine SQL-Datenbank (in diesem Guide wird MariaDB verwendet)
  • Die aktuellste PHP-Version ist auf dem Server installiert
  • Eine Internetverbindung auf den Server
  • Optional: Ein Webserver (Apache, Nginx, etc.) ist auf dem Server installiert (als Teil des LAMP-Stack)

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! Um den Text einfach zu halten, wird bei den Befehlen immer von “RHEL” gesprochen. Die Befehle lassen sich jedoch ebenso auf allen RHEL basierenden Systemen anwenden.

Schritt 1: Icinga Repository hinzufügen

Um die aktuelle Version von Icinga zu installieren, wird das offizielle Icinga-Repository zu unserem System hinzugefügt. Dazu führst du in deinem Terminal die folgenden Befehle aus:

rpm --import https://packages.icinga.com/icinga.key 
wget https://packages.icinga.com/subscription/rhel/ICINGA-release.repo -O /etc/yum.repos.d/ICINGA-release.repo

Sobald dieser Befehlsblock erfolgreich durchgelaufen ist, musst du unter

/etc/yum.repos.d/ICINGA-release.repo 

deine Icinga Subscription Repository Zugangsdaten eintragen. Wird dieser Schritt vergessen, erscheint bei einem dnf update eine Fehlermeldung.

Nutzt du Rocky Linux, Alma Linux oder andere auf Red Hat Enterprise Linux basierende Betriebssysteme, kannst du direkt zu Schritt 2 weitergehen.
Nutzt du RHEL selbst, ist ein weiterer Schritt notwendig.

Für RHEL 8 oder später:

ARCH=$(/bin/arch) 
OSVER=$(. /etc/os-release; echo "${VERSION_ID%%.*}")
subscription-manager repos --enable "codeready-builder-for-rhel-${OSVER}-${ARCH}-rpms"

dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-${OSVER}.noarch.rpm

RHEL 7:

subscription-manager repos --enable rhel-7-server-optional-rpms
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

 

Schritt 2: Icinga-Paket auf RHEL, Rocky Linux, Alma Linux oder anderen installieren

Mit dem Zugriff auf das Icinga-Repository kannst du das Icinga Paket direkt installieren. Welche Befehle ausgeführt werden müssen, hängt hier von der Version des Betriebssystems ab. Nutzer:innen von RHEL 8 oder höher verwenden zur Installation und Aktivierung von Icinga:

dnf install icinga2 
systemctl enable icinga2 
systemctl start icinga2

Nutzer:innen die ein RHEL 7 oder darauf basierendes Linux nutzen, verwenden wiederum:

yum install icinga2 
systemctl enable icinga2 
systemctl start icinga2

Dieses Paket ist die Basis der gesamten Icinga 2 Monitoring Installation. Um zu überprüfen, ob die Installation erfolgreich war, nutzt du

icinga2 daemon -C

Mithilfe dieses Befehls kannst zukünftige Konfigurationsanpassungen mit einem Terminalbefehl überprüfen.

Hinweis: Ist SELinux auf dem Betriebssystem aktiv, muss ein weiteres Paket installiert werden:

dnf install icinga2-selinux

Dieses Paket sorgt dafür, dass Icinga 2 trotz der Sicherheitsrichtlinien von SELinux erfolgreich kommunizieren kann.

Screenshot eines Terminals, bei dem das Kommando icinga2 daemon -C inklusive seiner Ausgabe zu sehen ist. Der Screenshot soll verdeutlichen wie die Ausgabe dieses Befehls im Terminal visualisiert wird

Schritt 3: Aktivieren der Icinga API und Installieren der Monitoring Plugins

Ein Monitoringsystem alleine bringt noch keinen Erfolg. Um effektiv zu sein und Daten zu sammeln und auszuwerten, müssen Checks ausgeführt werden. Diese Check Plugins sind bei Icinga nicht von Haus aus integriert, sondern müssen aus einem externen Paket hinzugefügt werden.

Für viele Open Source Monitoringsysteme hat sich die Check-Plugin Sammlung des Monitoring Plugins Projekts als Quasi-Standard etabliert. Diese Sammlung installierst du im nächsten Schritt. Damit kannst du direkt nach Abschluss der Icinga 2 Installation die ersten Checks anlegen und mit deinem System Monitoring oder Netzwerk Monitoring starten.

Hinweis: Um dieses Paket zu installieren, muss das EPEL-Repo in deinem System eingebunden sein. Falls das noch nicht der Fall ist, dann pausiere kurz an dieser Stelle, um das Repo hinzuzufügen.

Ist das EPEL-Repository erfolgreich hinzugefügt, nutzt du im Terminal den folgenden Befehl, um die Check Plugins hinzuzufügen:

RHEL 8 oder höher:

dnf install nagios-plugins

RHEL 7:

yum install nagios-plugins

Hinweise:
Je nachdem, in welches Verzeichnis die Plugins installiert werden, muss das PluginDir in der constants.conf entsprechend angepasst werden.
Falls du dich fragst, wieso Icinga Plugins für Nagios verwendet: Historisch ist Icinga 2 aus Nagios entstanden. Die Pluginsammlung funktioniert auch bei weiteren, auf Nagios basierenden Monitoringsystemen.

Um mit Icinga zu interagieren, muss die Icinga API eingerichtet werden. Das lässt sich problemlos mit dem entsprechenden Icinga 2 Befehl anstoßen:

icinga2 api setup
systemctl restart icinga2

Damit die Icinga 2 API angesprochen werden kann, wird in der Konfigurationsdatei /etc/icinga2/conf.d/api-users.conf ein API-User (inklusive zufällig generiertem Passwort) angelegt.
(Die erzeugten Zugangsdaten werden im weiteren Verlauf der Einrichtung von Icinga Web benötigt. Du wirst im entsprechenden Schritt noch einmal darauf hingewiesen!)

Falls es bestimmte Unternehmens-Vorgaben gibt, die erfüllt werden müssen oder du generell mehr über die Icinga API erfahren willst, gibt die entsprechende Seite in den Icinga Docs einen umfassenden Überblick über die vorhandenen Möglichkeiten.

Weiter geht es mit der Einrichtung von Icinga DB.

Schritt 4: Icinga DB einrichten

Trotz des Zusatzes “DB” ist Icinga DB keine eigenständige Datenbank. Bei der Nachfolge der bisher eingesetzten IDO handelt es sich um eine Sammlung von Komponenten zur Veröffentlichung, Synchronisierung und Visualisierung von Überwachungsdaten im Icinga-Kosmos.
Zu den Komponenten der Icinga DB gehören: Redis, das IcingaDB-Feature des Icinga Core und der Icinga DB-Daemon.

Schritt 4.1: Redis Server installieren

Die Grundlage von Icinga DB bildet ein Redis Server. Um unnötige bei der Konfiguration des Servers zu unterbinden, bietet das Icinga Team ein eigenes Redis-Paket an. icindadb-redis umfasst eine aktuelle Version von Redis und ist auf die Bedürfnisse der Icinga DB hin konfiguriert. So installierst du das Paket:

RHEL 8 oder höher:

dnf install icingadb-redis

RHEL 7:

yum install icingadb-redis

Hinweis:
Grundsätzlich kann der Redis Server überall in einer Icinga Umgebung installiert werden. Um die Best Practice umzusetzen, sollte er auf dem zentralen Icinga-Node installiert werden, um die Latenz so niedrig wie möglich zu halten.

Existiert in deiner Infrastruktur bereits ein konfigurierter Redis Server kann dieser aber ebenso verwendet werden. Es sind jedoch entsprechende Anpassungen notwendig, weshalb die Nutzung des entsprechenden Icinga-Pakets empfohlen wird.

Schritt 4.2: Aktivieren von Redis

Mit der Installation von icingadb-redis werden zudem automatisch alle von Icinga DB Redis benötigten systemd Dateien angelegt. Dadurch kann der Service direkt aktiviert und gestartet werden:

systemctl enable --now icingadb-redis

In seiner Standardkonfiguration lauscht icingadb-redis auf 127.0.0.1, also deinem localhost. Sind Icinga Web 2 oder Icinga 2 auf einer anderen Node installiert als Redis, dann muss das in der Konfigurationsdatei

/etc/icingadb-redis/icingadb-redis.conf

angepasst werden.

Egal ob es sich um ein Icinga 2 Monitoring handelt, das mit einer einzelnen Icinga-Node läuft (meistens Testsysteme) oder die verschiedenen Teiles des Icinga Stack auf mehreren Nodes verteilt sind, müssen an der Konfigurationsdatei zwei kleine Anpassungen vorgenommen werden:

  • protected-mode von yes auf no
  • bind von 127.0.0.1 auf 0.0.0.0 –> Dadurch können alle Interfaces auf Redis zugreifen

Starte den Service neu, damit die getätigten Änderungen aktiv werden:

systemctl restart icingadb-redis

Aktiviere das Feature in Icinga 2, um die Datenweitergabe an Redis zu aktivieren. Mit einem Neustart es gesamten Icinga Service werden alle in diesem Schritt getätigten Änderungen verifiziert:

icinga2 feature enable icingadb 
systemctl restart icinga2

Sicherheitshinweis:
Redis besitzt standardmäßig KEINE aktive Authentifizierung! Die Änderung von bind auf 0.0.0.0 bedeutet, dass unbefugter Zugriff möglich sein kann (wenn dein System nach außen kommuniziert). Um diese Sicherheitslücke zu schließen, wird empfohlen, einige Sicherheitsmaßnahmen durchzuführen.
Dazu gehören: Einrichten eines Passworts, Aufstellen von Firewall-Regeln oder Einrichten von TLS.

Für eine einfachere Verständlichkeit und einen geringeren Umfang wird in diesem Guide jedoch darauf verzichtet. Es wird dringend angeraten, diese Anpassungen ebenfalls nachträglich durchzuführen.

Schritt 4.3: Installieren der Icinga DB und Erstellen der Datenbank

Nach der Aktivierung von Icinga DB als Feature in Icinga, dient dieser Schritt dazu, das Paket auf deinem System zu installieren.

RHEL 8 oder höher:

dnf install icingadb

RHEL 7:

yum install icingadb

Um mit den Daten die Icinga 2 sammelt zu arbeiten, muss eine Datenbank für Icinga DB angelegt werden.
(In diesem Guide wird MariaDB 10.5.16 verwendet. Die Einrichtung von MySQL ist mit den gleichen Befehlen möglich. Nutzt du PostgreSQL findest du die entsprechenden Befehle in den offiziellen Icinga Docs.)

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

Letzter Punkt in diesem Schritt ist das Einfügen des Icinga DB Datenbankschemas in die gerade angelegte Datenbank:

mysql -u root -p icingadb </usr/share/icingadb/schema/mysql/schema.sql

Schritt 4.4: Zugriffsberechtigungen anpassen

Die Installation von Icinga DB legt unter /etc/icingadb/config.yml eine mit Standardwerten ausgefüllte Konfigurationsdatei an. In diese Datei müssen nun die Zugangsparameter der Datenbank und Redis eingetragen werden, um eine Kommunikation aller Komponenten möglich zu machen.

Folgende Parameter müssen überprüft und ggf. angepasst werden:

Für die Datenbank:

  • host mit dem entsprechenden Hostname/Host-IP deiner Datenbank
  • database mit dem Namen deiner Datenbank (in diesem Guide icingadb)
  • user mit dem Namen deines Datenbanknutzers
  • password mit dem Passwort, dass du für deine Datenbank vergeben hast.

Für Redis:

  • host mit dem entsprechenden Hostname/Host-IP deiner Redis Instanz.
  • Wenn du während der Installation deines Redis-Servers den port geändert oder ein password gesetzt hast, musst du dies hier ebenfalls eintragen.

Sobald diese Änderungen abgeschlossen sind, kann der Icinga DB Service aktiviert werden:

systemctl enable --now icingadb

Schritt 5: Icinga Node Wizard ausführen

Nachdem die Grundkomponenten für die Nutzung von Icinga installiert und konfiguriert wurden, muss noch er Node Wizard ausgeführt werden. Dieses interaktive Skript hilft dir dabei, Zonen einzustellen und die Endpunkte deines Icinga Monitoring festzulegen.

Dafür gibst du im Terminal diesen Befehl ein:

icinga2 node wizard

Da hier einige wichtige Einstellungen vorgenommen werden, hier eine Übersicht der einzelnen Punkte:

  • Is this agent/satellite setup? –> Hier ‘n’ eingeben und mit Enter bestätigen
  • Specifiy common name (FQDN of your master) –> Nichts eingeben und mit Enter bestätigen
  • Master zone name –> Nichts eingeben und mit Enter bestätigen
  • Specify additional global zones –> Nichts eingeben und mit Enter bestätigen
  • Specify API bind host/port –> Nichts eingeben und mit Enter bestätigen
  • Bind Host –> Nichts eingeben und mit Enter bestätigen
  • Bind Port –> Nichts eingeben und mit Enter bestätigen
  • Disable inclusion of conf.d directory –> Nichts eingeben und mit Enter bestätigen

Screenshot der Terminalausgabe, bei dem das Kommando icinga2 node wizard inklusive seiner Ausgabe zu sehen ist. Der Screenshot soll verdeutlichen wie die Ausgabe dieses Befehls im Terminal visualisiert wird

Im Anschluss verifizierst du die getätigte Konfiguration und lädst Icinga neu:

icinga2 daemon -C 
systemctl reload icinga2

Damit hast alle wichtigen Schritte zur Icinga und Icinga DB abgeschlossen!

Wie gehts es nun weiter?

Herzlichen Glückwunsch! Du hast erfolgreich Icinga installiert und konfiguriert! Damit kannst du grundsätzlich sofort loslegen und über die Icinga 2 API deine ersten Objekte anlegen, Actions triggern oder Templates bauen. Welche API-Calls dir dafür zur Verfügung stehen, erfährst du ausführlich in den Icinga Docs.

Auch wenn die Icinga Installation nun einsatzbereit ist, gibt es sinnvolle Komponenten, die die bisher installierten zu ihrer vollen Funktionalität verhelfen.
Eine Open Source Monitoring Lösung wie Icinga ist erst dann ein produktiv einsetzbares Tool, wenn die gesammelten Daten visualisiert werden. Dabei helfen Icinga Web und Icinga DB Web.

Wie diesen beiden Tools installiert und mit der hier aufgesetzten Basis verbunden werden, erfährst du im Guide zur Installation von Icinga Web und Icinga DB Web auf RHEL.

Icinga Director auf Ubuntu 20.04 / 22.04 installieren

Du willst Icinga lieber grafisch als über die API und das Terminal konfigurieren? Der Icinga Director als grafische Konfigurationsmöglichkeit für Icinga bietet genau da. Was vor Jahren als ein unabhängiges Modul für die Open Source Monitoring Lösung Icinga (auch bekannt als Icinga 2) entwickelt wurde, ist heute ein vollwertiger Teil des Icinga Stacks.

Unser Icinga Director Installationsguide hilft dir dabei, den Icinga Director auf Ubuntu 20.04 / 22.04 zu installieren. Wenn du zunächst noch einen Guide zu Installation von Icinga oder Icinga Web benötigst haben wir die passenden Gudie für dich!

Voraussetzungen für die Icinga Director Installation

  • Icinga Open Source Monitoring mit folgenden Komponenten:
    • Icinga Core
    • Icinga Web
    • Icinga DB
    • Icinga DB Web
  • Internetzugang
  • Zugang zu Icinga Web
  • Installations- und Administrationsrechte für den Icinga Config Master

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 zu Ubuntu hinzufügen

Um das Icinga Repository zu einem Ubuntu-System hinzuzufügen, nutzt du folgende Befehle:

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 Director installieren

Icinga Director auf Ubuntu installieren

Nachdem das Repository zum System hinzugefügt ist, kann der Icinga Director mit einem einfachen Befehl installiert werden:

apt install icinga-director

 

Schritt 3: Icinga Director Datenbank aufsetzen

Hinweis: In deiner eigenen Umgebung muss SICHERES_PASSWORT mit einem richtigen Passwort deiner Wahl ausgetauscht werden.

Damit das neue Icinga Modul seine Daten schreiben und speichern kann, ist eine eigens dafür eingerichtete Datenbank notwendig. Das geschieht mit:

MySQL/MariaDB

mysql -e "CREATE DATABASE director CHARACTER SET 'utf8'; 
CREATE USER director@localhost IDENTIFIED BY 'SICHERES_PASSWORT'; 
GRANT ALL ON director.* TO director@localhost;"

PostgreSQL

psql -q -c "CREATE DATABASE director WITH ENCODING 'UTF8';" 
psql director -q -c "CREATE USER director WITH PASSWORD 'SICHERES_PASSWORT'; 
GRANT ALL PRIVILEGES ON DATABASE director TO director; 
CREATE EXTENSION pgcrypto;"

Damit sind alle Schritte im Terminal abgeschlossen. Die nächsten Schritte finden in Icinga Web statt.

Schritt 4: Icinga Director konfigurieren

Damit der Icinga Director in Icinga Web 2 auch funktioniert wie gewünscht, müssen weitere Konfigurationsschritte innerhalb der Icinga 2 Weboberfläche vorgenommen werden.

Anlegen einer neuen Icinga Datenbank Ressource

Im unteren Bereich des linken Icinga Web Menüs befindet sich ein Zahnrad. Gehe mit der Maus darüber, um das “Hauptmenü” von Icinga Web anzeigen zu lassen. Hier folgst du diesen Menüpunkten, um zu den Datenbankressourcen zu gelangen:

Configuration –> Application –> Resources

Mit einem Klick auf Create a New Ressource kommst du zu einer Eingabemaske. Hier trägst du die in Schritt 3 angelegten Zugangsdaten für die Icinga Director Datenbank ein und validierst die Konfiguration.

Screenshot der Icinga Web Umgebung des Monitoring Systems Icinga. Zu sehen ist das Anlegen einer neuen Datenbankressource zur Nutzung des Icinga Moduls "Icinga Director" inklusive der erfolgreichen Validierung

Icinga Director Kickstart Wizard

Um den Icinga Director für den ersten Einsatz zu konfigurieren, gibt es den Icinga Director Kickstart Wizard. Zum Ausführen klickst du zunächst auf den nun vorhandenen Menüpunkt Icinga Director. Beim ersten Öffnen des Menüs muss noch die gerade eben angelegte Datenbankressource ausgewählt werden, damit der Director seine Daten auch in die gewünschte Datenbank schreibt.

Screenshot der Icinga Web Umgebung des Monitoring Systems Icinga. Zu sehen ist das Auswählen einer neuen Datenbankressource zur Nutzung des Icinga Moduls "Icinga Director"

Mit einem Klick auf Create Schema wird das Datenbankschema übertragen und der Kickstart Wizard gestartet.

Screenshot der Icinga Web Umgebung des Monitoring Systems Icinga. Zu sehen ist der Kickstart Wizard des Icinga Moduls "Icinga Director" der dafür sorgt, dass das Modul automatisiert in das bestehende System integriert wird

An dieser Stelle müssen drei Felder ausgefüllt werden, bevor der Prozess weitergehen kann:

  • Endpoint Name
  • API User
  • (API) Password

Wenn du dich jetzt fragst, was genau der Icinga Endpoint ist, dieser wurde in Schritt 5 des Icinga Installationsguide für Ubuntu im Rahmen des Icinga Node Wizard angelegt. Es handelt sich dabei um den Objektnamen deines Icinga Master.
Er kann jederzeit unter /etc/icinga2/zones.conf nachgelesen werden. Wenn du deinen Icinga API User und das dazugehörige Passwort noch einmal nachschlagen willst, kannst du das unter /etc/icinga2/conf.d/api-users.conf.

Hast du alle erforderlichen Felder ausgefüllt und den Import gestartet, dauert es einen kurzen Moment. Sobald der Prozess erfolgreich abgeschlossen ist, solltest du im Icinga Director Menü neben Activity log eine dreistellige Zahl, ähnlich dem hier gezeigten Bild, sehen:

Screenshot der Icinga Web Umgebung des Monitoring Systems Icinga. Zu sehen ist der Kickstart Wizard des Icinga Moduls "Icinga Director" im Status der erfolgreich durchgeführten Integration

Diese Zahl zeigt die Anzahl der getätigten Änderungen an, die über den Director durchgeführt wurden, jetzt aber noch auf dein Icinga Monitoring ausgerollt werden müssen. Diesen letzten Schritt führst du aus, indem du auf Activity log klickst und im oberen Bereich des neuen Menüs auf Deploy XXXX pending changes klickst.

Screenshot der Icinga Web Umgebung des Monitoring Systems Icinga. Zu sehen ist die Ansicht der durchzuführenden Deployments

Damit hast du den Icinga Director auf Ubuntu erfolgreich installiert und damit den letzten Teil des Icinga Stack aufgesetzt und konfiguriert.

Wie geht es jetzt weiter?

Egal ob du unsere Guides zur Icinga Installation seit der Anleitung für Ubuntu genutzt hast oder nur für den Guide zur Icinga Director Installation hier gelandet bist: Herzlichen Glückwunsch zum erfolgreichen Abschluss dieses Guides!

Mit dem Icinga Director besitzt du nun ein mächtiges grafisches Konfigurationstool für Icinga, dass dir die tägliche Arbeit sicher erleichtern kann. Zusammen mit IcingaIcinga WebIcinga DB und Icinga DB Web steht dir nun der volle Icinga Stack zur Verfügung.
An dieser Stelle bleibt mir nur noch übrig dir viel Spaß mit deinem Open Source Monitoring System Icinga zu wünschen.

Sollten bei dir zukünftig weitere Fragen zu Icinga auftauchen, stehen dir meine NETWAYS Kolleg:innen aus dem Consulting-Team jederzeit mit all ihrem Wissen und ihrer Erfahrung zur Seite. Egal ob du deine Monitoringumgebung weiterentwickeln, optimieren oder vergrößern willst, sie finden mit dir zusammen die passende Lösung.
Egal welches Anliegen du zu Icinga hast, ich bin mir sicher, dass du mit ein paar Klicks auf unserer Kontaktseite die passenden Antworten von echten Icinga Expert:innen bekommst.

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

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.