Über unsere SaaS Plattform NWS bieten wir seit Beginn die Möglichkeit, Icinga 2 Satelliten Systeme zu betreiben und diese in die eigene Icinga 2 Monitoring Infrastruktur zu integrieren.
Dadurch wird ermöglicht, dass bspw. Webseiten oder andere externe Dienste (Mail, DNS, FTP, etc.) von außen überwacht werden können und die Ergebnisse in das Hausinterne Monitoring übertragen werden.

Hosted man bspw. einen Webshop wie wir (shop.netways.de), reicht es nicht nur zu überprüfen ob die MariaDB oder Apache Dienste funktionieren und die virtuelle Maschine in unserer Cloud verfügbar ist, sondern es ist auch wichtig die externe Sicht der Kunden zu überwachen. Somit erfährt man gleich ob eine externe Erreichbarkeit sichergestellt ist und Kunden bspw. einkaufen können.
In diesem Blogartikel möchte ich beschreiben, wie man den Icinga 2 Satelliten aufsetzt und per Icinga 2 Cluster Protokoll in das eigene Monitoring integriert.

Hat man sich in der NWS Plattform angemeldet, erreicht man über den oberen Reiter “Apps” alle von uns angebotenen Produkte. Nachdem man einen Icinga 2 Satelliten gestartet hat, klickt man auf diese App und folgender Bildschirm erscheint:

Um alle Informationen für die Konfiguration unseres eigenen Icinga 2 Masters zu erhalten, klicken wir auf “Go to Master Config“.

Nun müssen wir zunächst jedem Icinga 2 Master-Knoten welcher sich in unserer Umgebung befindet, die Endpoint und Zonen Konfiguration mitgeben. Hierfür editieren wir einfach die zones.conf unter

/etc/icinga2/zones.conf

und ergänzen diese mit den Werten welche wir aus dem NWS Guide mitbekommen. Ein Beispiel für eine Master-Umgebung mit zwei Icinga 2 Knoten sieht bspw. so aus:

Hinweis: Sofern die Master-Zone in Ihrer Umgebung anders heißt, muss wie in meinem Beispiel der Wert

parent = "master"

entsprechend angepasst werden. Nachdem wir dies erledigt haben, ist die Konfiguration des Masters erst einmal abgeschlossen und wir können mit der Zertifikatsgenerierung und der Satellitenkonfiguration weitermachen. Hierfür klicken wir unten auf “Go to Satellite Config“.

Für die Erstellung der Zertifikate gibt es zwei Optionen:

  • Konfiguration per Ticket
  • Manuelle Konfiguration

Da in meinem Beispiel (wie vermutlich in den meisten Umgebungen) keine direkte Kommunikation mit dem Master möglichen ist, nutzen wir für dieses Tutorial die zweite Möglichkeit mit der manuellen Zertifikatserstellung. Hierfür ist dies in meinem Fall eine Icinga 2 CA. D.h. die folgenden Schritte sind nur auf der Icinga 2 CA durchzuführen:

Zunächst wählen wir aus, in welchem Standort der Icinga 2 Satellit bereitgestellt werden soll und geben den Endpoint Namen des CA Servers an.

 

Wollen wir den Icinga Director für die Konfiguration benutzen, müssen wir unbedingt noch die “director-global” Zone im Satelliten ergänzen. Dies machen wir, indem wir den Reiter “Optional settings” erweitern und unter “Global Zones” die Werte “director-global,global” eintragen. Bei “Parent Zone” können wir noch den Namen unserer Parent Zone hinterlegen.


Anschließend klicken wir auf “CSR manual sign” und kopieren das auf dem Bildschirm angezeigt Client CSR in die Datei /tmp/my.csr
Hierfür eignet sich bspw. der VIM mit dem Befehl

vim /tmp/my.csr


Um Icinga 2 nun das Zertifikat signieren zu lassen, wechseln wir nun in das /tmp Verzeichnis.

cd /tmp/

Hier führen wir nun folgenden Befehl aus:

icinga2 pki sign-csr --csr my.csr --cert 285-icinga-satellite-becf4.nws.netways.de.crt

Ergebnis:

Hinweis: Natürlich ist der Parameter “–cert” mit dem tatsächlichen Namen des Icinga 2 Satelliten aus der NWS Plattform zu hinterlegen. Natürlich kann per Copy & Paste der Code-Block aus dem NWS-Guide genommen werden.

Anschließend führen wir einen cat Befehl auf das gerade erstellte .crt aus:

Den gesamten Inhalt des Files kopieren wir nun unter den Crt Part der NWS Plattform. Darüber hinaus kopieren wir den Inhalt aus

cat /etc/icinga2/pki/ca.crt

unter den Ca Teil der Plattform.

Nachdem wir alles nun hinterlegt haben, klicken wir unten auf “Save und starten alle Icinga 2 Master-Knoten mit folgenden Befehlen neu:

service icinga2 restart
bzw.
systemctl restart icinga2

Da nun die Konfiguration von Icinga 2 erfolgreich abgeschlossen wurde und die Icinga 2 Master mit dem Satelliten reden können, müssen wir nun Hosts und Services definieren, welche vom Satelliten überwacht werden sollen. Hierfür kann man nun entweder direkt mit Konfigurationsfiles auf Dateisystemebene arbeiten oder wir nutzen den Icinga Director (wie in diesem Tutorial). Zu beachten ist weiter oben die Konfiguration der “director-global” Variable.

Um zunächst die neuen Zonen und Endpoints im Director verfügbar zu haben, müssen wir den Kickstart Wizard erneut ausführen. Diesen finden wir über “Icinga Director -> Icinga Infrastructure -> Kickstart Wizard


Nun klicken wir auf “Run import“, um alle Icinga 2 Konfigurationen in den Director zu laden. Da der Director hier nur Standard Icinga 2 Konfigurationen lädt, ist dies bedenkenlos durchführbar.

Hat dies erfolgreich funktioniert, erhalten wir im Activity Log zwei neue Einträge (es können hier mehrere Einträge stehen, sofern Neuerungen aus bspw. der ITL importiert wurden):

Hat alles ohne Probleme geklappt, können wir nun ein neues Host-Object im Director über die Host Kategorie hinzufügen:


Wichtig
: Damit der Host auf dem Satelliten deployed wird und von dort aus die Checks erfolgen, ist unter dem Punkt “Cluster Zone” der entsprechende Satelliten Eintrag auszuwählen.

Über die Services Kategorie können wir nun einen neuen Service anlegen und diesen bspw. direkt auf den Host assignen. Natürlich können hier auch beliebige Assign-Rules hinterlegt werden.


Wichtig
: Bei Services und Service-Templates die Konfiguration der Custer Zone unbedingt leer lassen!

Nachdem alle Änderungen erfolgt sind, deployen wir die Konfiguration mit einem Klick auf “Deploy“. Anschließend starten sich die Icinga 2 Dienste neu und fangen auch schon mit dem Monitoring an.


Ich hoffe dieses kleine Tutorial war hilfreich um die Einrichtung und Anbindung des Icinga 2 Satelliten in die eigene Icinga 2 Umgebung umzusetzen. Bei Fragen können Sie natürlich gerne Kontakt mit uns aufnehmen.

Christian Stein

Autor: Christian Stein

Christian kommt ursprünglich aus der Personalberatungsbranche, wo er aber schon immer auf den IT Bereich spezialisiert war. Bei NETWAYS arbeitet er als Senior Sales Engineer und berät unsere Kunden in der vertrieblichen Phase rund um das Thema Monitoring. Gemeinsam mit Georg hat er sich Mitte 2012 auch an unserem Hardware-Shop "vergangen".