Call-Home-Service und Monitoring Plugins mit Icinga 2
2Icinga 2 gilt als moderne, stabile und zukunftsfähige Monitoring-Software. Im Vergleich zum Vorgänger Icinga 1 wurde kein Stein auf dem anderen gelassen und eine komplexe, aber verständliche sowie äußerst mächtige Konfigurationssprache geschaffen. Trotzdem verbleibt die volle Kompatibilität zu den bestehenden Monitoring-Plugins. Die Unterschiede in der Konfiguration, die wir anhand unseres Call-Home-Services und des selbst entwickelten Hardware Monitoring-Plugins feststellen konnten, sind gravierend. Rückblickend gesehen hat die Syntax von Icinga 2 aber vor allem in einer größeren Monitoring-Umgebung gewaltige Vorteile gegenüber dem Vorgänger. Deshalb wurden nun Templates und Konfigurationen für unseren Call-Home-Service und unsere Monitoring-Plugins für Icinga 2 entwickelt.
Installation und Unterschiede zum Vorgänger
Die Installation von Icinga gelingt sehr schnell und problemlos. Als modernes Web-Frontend bietet sich Icinga Web 2 an, aber das altbekannte Icinga 2 Classic UI ist ebenso installierbar und verwendbar.
Die Konfiguration erfolgt standardmäßig über die Kommandozeile und im Verzeichnis /etc/icinga2/conf.d/. Zur Anlage neuer Hosts wird ein Unterverzeichnis „hosts“ erstellt. In diesem Verzeichnis werden die zu überwachenden Hosts anhand einer .conf-Datei angelegt. Bei Icinga 1 wurde ein Host per „define host“ konfiguriert. In Icinga 2 wurden daraus Objekte, also „object Host“.
Eine äußerst nützliche Funktion sind die sogenannten „apply Service“-Regeln, dadurch können vorab definierte Servicechecks automatisch beliebig vielen Hosts angefügt werden. Per „assign where “ werden diese Regeln durch Icinga 2 auf die entsprechenden Hosts mit dieser spezifischen Eigenschaft, z.B. einer festgelegten IPMI Interface IP-Adresse, automatisch angewendet.
Während der Entwicklung der Templates für unseren Call-Home-Service und unsere verschiedenen Hardware-Plugins spielte diese praktische Funktion eine wesentliche Rolle.
Monitoring-Plugins von Thomas-Krenn
Am Beispiel unseres IPMI Sensor Monitoring-Plugins ist die Konfiguration unter Icinga 2 wie folgt vorzunehmen: Die Installation des eigentlichen Plugins gestaltet sich identisch wie unter Icinga 1, es wird in das Verzeichnis „/usr/lib/nagios/plugins“ kopiert, erforderliche Bibliotheken und Programme wie „freeipmi-sensors“ werden installiert.
Die Entwickler von Icinga 2 waren in Fall des IPMI Sensor Monitoring-Plugins so freundlich, eine Konfigurationsdatei standardmäßig bei jeder Icinga 2 Installation mitzuliefern.
Was im Fall des IPMI Sensor Monitoring-Plugins noch fehlt ist eine entsprechende „apply Service“-Regel und ein IPMI-fähiger, überwachter Server. Diese Regel wurde so ausgedacht, dass der Servicecheck, als „check-ipmi-sensor“ bezeichnet, automatisch angewendet wird, wenn ein Host eine Variable „vars.ipmi_address“ gesetzt hat.
Die weitere Konfiguration ist in unserem Thomas-Krenn-Wiki in der Sektion „Icinga 2 Konfiguration“ erklärt.
Für Sie als Anwender bedeuten diese Zuweisungs-Regeln Folgendes: Wurden sie einmal im Icinga 2 Monitoring-System hinterlegt, müssen Sie nur noch die passenden Parameter je Host ergänzen. Nach dem Neuladen der Icinga 2 Konfiguration werden die Servicechecks dann automatisch mit eingeplant und ausgeführt.
Call-Home-Service einrichten
Funktionale Server-Hardware ist für Unternehmen essentiell. Um den Service für unsere Kunden noch auszuweiten, wurden verschiedene Service-Pakete definiert. Das Exclusive- und Enterprise-Paket enthalten standardmäßig den Call-Home-Service. Dieser wurde entwickelt, damit automatische Benachrichtigungen an unseren Support versandt werden, sobald ein Hardware-Problem vorliegt. Folgende Servicechecks werden dadurch abgedeckt:
- IPMI Sensors Monitoring-Plugin
- Adaptec RAID Monitoring-Plugin
- LSI RAID Monitoring-Plugin
- SMART Attributes Monitoring-Plugin
Das bedeutet: Immer wenn einer dieser Servicechecks ein Problem erkennt, wird automatisch eine verschlüsselte Mail an den Thomas-Krenn-Support gesendet. Der Artikel Call-Home-Service mit Icinga 2 nutzen im Thomas-Krenn-Wiki zeigt auf, wie die Konfiguration unter Icinga 2 gelingt. Die erforderlichen Templates und Konfigurationen entpacken Sie am Monitoring-Server einfach im Icinga 2 Konfigurationsverzeichnis. Anschließend sind nur noch wenige manuelle Konfigurationsschritte erforderlich. Ihre Kontaktdaten und Ihren persönlichen Call-Home Auth-Key tragen Sie in der thomas-krenn-host.conf Datei nach und erweitern die hosts.conf um die erforderlichen Parameter.
Nach einem Icinga 2 Neustart wird der sogenannte Heartbeat Check ausgeführt. Dieser wird einmal täglich gestartet und meldet sich mittels eines speziellen Checks bei unserer Datenbank. Falls dieser tägliche Check länger als 48 Stunden ausbleibt, wird automatisch eine E-Mail an den Nutzer und an unser Support-Team gesendet. Dieses Vorgehen sorgt dafür, dass Ihr Monitoringsystem funktional bleibt. Ein unbeachteter Hardwareausfall aufgrund eines dysfunktionalen Monitoringsystems wäre fatal, lässt sich mithilfe des Call-Home-Service aber vermeiden.
Die im Artikel verlinkten Templates sind so ausgeführt, dass die „assign“-Regeln eine Call-Home-Meldung auslösen, sollte bei den aufgeführten Plugins ein Fehlerfall auftreten. Diese Meldung wird nur ausgelöst, wenn ein Fehler bei einem überwachten Host festgestellt wird, der eine Thomas-Krenn-Seriennummer besitzt und einen der kompatiblen Servicechecks konfiguriert hat.
Zusammenfassend lässt sich schlussfolgern, dass Icinga 2 für den User nach einer gewissen Einarbeitungszeit eine durchaus komfortable Monitoring-Lösung darstellt. Sind die Templates und Abhängigkeiten definiert, können in Windeseile viele Hosts hinzugefügt werden. Wie von Geisterhand werden automatisch die Checks und Benachrichtigungen zugeordnet und man kann sehr schnell und zentral Änderungen vornehmen.
Sehr geehrter Herr Niedermeier,
wir haben den LES v2 inkl. vorinstalliertem TKmon im Einsatz („normales“ TKMon mit Icinga).
Wie soll ic hnach Icinga 2 wechslen?
Den LES neu aufsetzen? Ode rkann ich migrieren (wenn ja, ist das sinnvoll)?
Mit freundlichen Grüssen
Robert PRimbs
Guten Tag Herr Primbs,
vielen Dank für Ihre Nachricht. Der LES v2 inkl. vorinstalliertem TKmon basiert, wie Sie bereits korrekt erwähnt haben, auf Icinga, konkret Icinga 1.13, sowie Ubuntu Server 14.04.
Sie können z. B. einfach ein Release Upgrade auf 16.04 vornehmen, dabei würde TKmon automatisch entfernt werden.
Am saubersten ist eine Neuinstallation mit einer Linux-Distribution Ihrer Wahl. Icinga 2 ist für eine Vielzahl an Distributionen paketiert: https://packages.icinga.org/
Sie können Ihre TKmon Konfiguration im Webinterface backupen und herunterladen, um sie anhand der Icinga 2 Syntax nachzustellen.
Es kommt bei einem Umstieg immer darauf an, welche Anforderungen Sie haben. TKmon ist eine bequeme und einfach zu bedienende Lösung für kleinere Umgebungen bis etwa 10 Hosts. Dieser Richtwert ist durch das Interface-Design von uns so angesetzt, da TKmon bei einer höheren Anzahl von Hosts an Übersichtlichkeit verliert.
Was Sie auf jeden Fall bedenken müssen ist, dass es keine automatische Migrationsfunktion auf Icinga 2 Syntax gibt. Uns ist dazu zumindest nichts bekannt. Es gibt hierzu ein ausführliches Webinar von Netways: https://www.netways.de/webinare/archiv/icinga_webinare/icinga_2_migration_von_nagios_oder_icinga_1x_leicht_gemacht/
Viele Grüße
Ihr Thomas-Krenn-Team