Icinga 2 Cluster Installation – Teil 2

Im vorherigen Teil haben wir für das Icinga 2 Cluster zwei Icinga 2 Server installiert und konfiguriert. Zusätzlich haben wir eine Datenbank auf einem dritten Server installiert und ließen beide Icinga-Instanzen in diese schreiben. Jetzt müssen wir noch beide Icinga-Backends clustern und das Frontend Icinga Web 2 installieren.

Clustern der Server

In diesem Schritt werden wir unseren beiden Icinga-Server clustern, sodass diese zusammenarbeiten. Dafür können wir einen von Icinga 2 bereitgestellten Assistenten benutzen.

Zuerst gehen wir auf den ersten Icinga-Host. Dort führen wir folgenden Befehl aus.

icinga node wizard 

Hier werden nun mehrere Fragen gestellt. Diese müssen wie folgt beantworten. Die Fragen, die hier nicht beschrieben sind, können freigelassen werden.

Please specify if this is an agent/satellite setup ('n' installs a master setup) [Y/n]: n
Do you want to specify additional global zones? [y/N]: n
Do you want to disable the inclusion of the conf.d directory [Y/n]: y

Nun editieren wir die Datei /etc/icinga2/zones.conf. (Falls Sie im node wizard andere Namen gewählt haben müssen Sie diese anpassen)

/*
 * Generated by Icinga 2 node setup commands
 * on 2021-05-27 15:56:46 +0200
 */

object Endpoint "master-1" {
}

object Endpoint "master-2" {
}

object Zone "master" {
        endpoints = [ "master-1", "master-2" ]
}

object Zone "global-templates" {
        global = true
}

object Zone "director-global" {
        global = true
}

Jetzt wechseln wir zum zweiten Icinga-Server. Auch hier führen wir zuerst den node wizard aus.

icinga node wizard 

Wieder müssen wir ein paar Fragen beantworten.

Please specify if this is an agent/satellite setup ('n' installs a master setup) [Y/n]: y
Master/Satellite endpoint host (IP address or FQDN):IP_DES_ERSTEN_ICINGA_SERVERS
Is this information correct? [y/N]: y
Accept config from parent node? [y/N]: y

Auch hier editieren wir wieder die Datei /etc/icinga2/zones.conf


/*
 * Generated by Icinga 2 node setup commands
 * on 2021-05-27 16:05:25 +0200
 */

object Endpoint "master-1" {
        host = "IP_DES_ERSTEN_HOSTS"
        port = "5665"
}
object Zone "master" {
        endpoints = [ "master-1", "master-2" ]
}
object Endpoint "master-2" {
}
object Zone "global-templates" {
        global = true
}
object Zone "director-global" {
        global = true
}

Wir haben beide Server konfiguriert. Durch den node wizard auf dem zweiten Server haben wir ein Zertifikatsrequest an den Ersten geschickt. Diesen Request müssen wir nun auf dem ersten Host bestätigen.

icinga2 ca list

Nun sollten wir das Zertifikatsrequest von gerade eben sehen:

Fingerprint                                                      | Timestamp                | Signed | Subject
-----------------------------------------------------------------|--------------------------|--------|--------
FINGERPRINT | May  27 16:05:25 2021 GMT |        | CN = master-2

Diesen bestätigen wir nun mit folgendem Befehl: (FINGERPRINT muss angepasst werden)

icinga2 ca sign FINGERPRINT 

Die beiden Icinga-Instanzen arbeiten nun zusammen im Cluster.

Installation von Icinga Web 2

Da wir nun das Backend so läuft, wie wir wollen müssen wir nur noch das Icinga Web 2 Frontend installieren. Dafür müssen wir auf den Server wechseln, auf dem die Datenbank läuft. Zuerst installieren wir einen Webserver.

apt install -y apache2 ssl-cert php7.2 libapache2-mod-php7.2 php7.2-xml php7.2-opcache php7.2-xml php7.2-mbstring php7.2-json php7.2-curl php7.2-ldap php7.2-cli php7.2-gd php7.2-intl php7.2-readline php7.2-pgsql

Danach installieren wir noch die benötigten Icinga Web 2 Module.

apt install -y icingaweb2 icingacli icingaweb2-module-monitoring

Nun generieren wir ein Token. Diesen brauchen wir anschließend für die webbasierte Installation.

icingacli setup token create

Nun verbinden wir uns auf die folgende Website:

https://IP-ADRESSE/icingaweb2/setup

Jetzt führen wir die Installation im Browser fort. Dafür rufen wir IP_ADRESSE/icingaweb2/setup auf.

Hier fügen wir den Token ein, den wir gerade generiert haben.
Wir wählen hier nur „Monitoring“ aus.
Wenn hier ein PHP-Modul fehlt, müssen wir dies nachinstallieren. Danach müssen wir den Apache2 neu starten.
Wir übernehmen hier die Standard Einstellungen.
Hier tragen wir die Datenbankdaten ein, die wir vorhin erstellt haben.
Den Backend-Namen lassen wir in der Standard Einstellung.
Jetzt erstellen wir den ersten Admin Nutzer.
Hier können wir alles auf Standard lassen.
Jetzt überprüfen wir noch einmal alles.
Wir klicken auf Next.
Hier tragen wir die Daten für die andere Datenbank ein.
In diesem Schritt Tragen wir die API-Daten ein. Diese haben wir im ersten Teil konfiguriert.
Hier können wird die Standardeinstellungen beibehalten.
Auch hier müssen wir unsere Einstellungen nochmals überprüfen.

Jetzt können wir uns auf dem Icinga Web 2 Frontend anmelden.

Herzlichen Glückwunsch! Die Installation unseres Monitoringsystem ist nun abgeschlossen.

Weiter geht es im letzen Teil der Serie mit der Grafana Installation und Konfiguration für Icinga2

Haben Sie noch Fragen zum Icinga 2 Cluster oder anderen Monitoring Themen? Gerne unterstützen wir Sie mit unserem Know-How beim Aufbau und dem Betrieb Ihres eigenen Icinga 2 Clusters, egal ob On Premise oder auf einem Cloud Server. Sprechen Sie uns an!

Besuchen Sie doch auch unsere Icinga Seite für mehr Informationen! Gerne unterstützen wir Sie bei Ihrem Vorhaben!

Weitere Icinga 2 Themen finden sie hier.