Praxistest Icinga 2

Monitoring auf die harte Tour

12. Juli 2018, 7:00 Uhr | Thomas Bär, Frank-Michael Schlede

Vorgefertigte Überwachungs-Templates ohne die Möglichkeit, dem Monitoring direkt auf die Finger zu schauen, sind nicht jedermanns Sache. Wer es ganz genau wissen will, greift zu dem von Nagios abgeleiteten Netzwerk-Monitoring-Werkzeug Icinga.

An Monitoring-Lösungen mangelt es der IT-Branche nun wahrlich nicht. Auf der einen Seite stehen kostenfreie Angebote wie die Open-Source-Variante von Nagios oder die werbefinanzierte, Community-orientierte IT-Management-Software Spice-works; auf der anderen Seite gibt es die vielen traditionellen Softwarepakete. Den fertig konfektionierten Paketen ist gemein, dass sie recht schnell einsetzbar sind, über gute Suchfunktionen verfügen und letztendlich nicht ganz günstig sind. Ganz ohne Lizenzkosten können Administratoren ein Monitoring auch mit Icinga 2 realisieren.

Was verbirgt sich hinter Icinga 2?

Die Open-Source-Commnuity aus dem Nagios-Umfeld beschloss im April 2009, mit Icinga (das Zulu-Wort bedeutet "Ausschau halten") einen eigenen Entwicklungszweig (Fork) von Nagios aufzulegen. Zur Begründung hieß es, dass der Anbieter Nagios Enterprises mit den von der Entwicklergemeinde eingereichten Patches nicht mehr ordentlich genug umgehe.

Einige Einschränkungen in Icinga ließen sich jedoch nur durch einen weitreichenden Schritt aufheben: Im Juni 2014 erschien Icinga 2 in der Version 2.0 als komplette Neuentwicklung. Dabei wurde die Konfigurationssprache erneuert, ein Cluster-Stack integriert, die Nutzung des Multithreadings verbessert und der Einsatz als Agent ermöglicht. Zu den Kernfunktionen gehören schon seit der früheren Version das Überwachen von Netzwerkdiensten wie SMTP, POP3, HTTP, NNTP oder Ping/Echo-Request sowie die Überwachung von Ressourcen, beispielsweise CPU- oder Plattenauslastung.

Die Software ist darauf spezialisiert, eine Dienstnutzung wie etwa das Aufrufen einer Website zu simulieren, die Eckdaten eines Systems über die Bordmittel zu prüfen, Statusprüfungen durchzuführen und Ende-zu-Ende-Tests wie beispielsweise den Versand und Empfang von E-Mails umzusetzen. Die Flexibilität beruht darauf, dass Icinga 2 selbst gar keine Funktionalität zur direkten Überwachung bereithält. Stattdessen interpretiert die Software die Rückmeldungen der eingesetzten Plug-ins: Stellt eine ausführbare Datei eine Überwachungsmöglichkeit dar, kann der Administrator sie in Icinga 2 integrieren. Ein leicht verständliches Plug-in-Design soll dem Systemverwalter erlauben, eigene Service-Prüfungen zu etablieren, ohne sich, wie bei Nagios, mit vielen technischen Herausforderungen auseinandersetzen zu müssen.

Wie alle Überwachungssysteme bietet Icinga 2 die Möglichkeit, Host-Hierarchien zu bilden. Üblicherweise ist ein zentraler Router in einem entfernten Netzwerk ein "Eltern"-Host für alle direkt umliegenden Server und untergeordnete Netzwerkkomponenten. Ist dieser Router nicht mehr erreichbar, kann sich die Software also die Meldungen über den Ausfall aller weiteren, davon abhängigen "Kind"-Systeme in diesem Bereich sparen.

LL07P03a
Nach einer eher aufwendigen Installation und Konfiguration von Icinga 2 unter Linux zeigt sich die Software zunächst eher schlicht.

Primär arbeitet Icinga 2 mit aktiven "Checks", also Tests von Hosts oder Services. Dabei ist jedes Gerät mit einer IP-Adresse ein Host-Objekt. Ein Service ist immer mindestens einem Host zugeordnet, die Status sind fix vorgegeben: Ein Host kann die Zustände "Up", "Down" oder "Unreachable" einnehmen. Services erhalten Schwellenwertstufen und die daraus resultierenden Status "OK", "Warning", "Critical" und "Unknown".

Von Plug-ins und Agenten

Insgesamt setzt die Software bei der Überwachung auf Standardprotokolle wie SNMP oder ICMP. Für die Betriebssystemüberwachung ist die eleganteste Methode der Einsatz von Icinga-Agenten. Auf dem zu überwachenden Host wird dazu ein "eigenes kleines Icinga 2" als Agent installiert, das die Ergebnisse dem Monitoring-Server über die Cluster-API mitteilt. Für die erweiterte Überwachung von Windows-Maschinen nutzen Icinga-Administratoren den bekannten NSClient++, der als Bestandteil des Icinga2-Agent-Pakets auf Wunsch mitinstalliert wird. Wer bereits Erfahrung mit Nagios hat, dem dürfte diese Agent-Software vertraut sein. Sie erlaubt die Überwachung lokaler Vorgänge und die Übermittlung und Verarbeitung von Server-Anfragen. Praktischerweise funktioniert die kostenfreie Zusatzsoftware auf allen Windows-Varianten der NT-Familie, zudem gibt es die Client-Software für Debian, CentOS und Ubuntu.

Eine weitere potenzielle Datenquelle für das Monitoring ergibt sich aus NRPE (Nagios Remote Plug-in Executor). Der Name lässt es bereits vermuten: Die Verwendung des NRPE-Protokolls ermöglicht das Aufrufen entsprechender Plug-ins für Nagios. Der bereits genannte NSClient++ ist ebenfalls ein solches Plug-in.

Fummelige Installation

Der Aufbau einer Icinga-2-Umgebung erfolgt typischerweise mit einer gängigen Linux-Distribution auf Basis von Apache 2, PHP und MySQL oder PostgreSQL. Die Grundinstallation ist mit einigem Aufwand verbunden, aber zu bewältigen. Eine weitere Möglichkeit für ein "Testdrive", auch unter Windows, ist die Nutzung der "Icinga Vagrant Box" im Zusammenspiel mit VirtualBox. In einem Test funktionierte das Zusammenspiel von Ruby for Windows, gefolgt von SSH als GIT-Package mit der Auswahl "Bash only", "Windows-Style" und "MiniTTY". Anschließend installierten wir Oracles VirtualBox 5.0.36 und Vagrant 1.90. Nach dem Eintrag von Path-Variablen für Ruby ließ sich das System lokal verwenden.

Für weitere Testinstallationen nutzten wir Ubuntu 16.04 LTS und CentOS 7. Trotz recht guter Anleitungen ist der Administrator gezwungen, einzelne Systemvoraussetzungen nachzuinstallieren. Praktischerweise prüft der Einrichtungsassistent von Icinga 2 Web - so der Name der aktuellen GUI - das korrekte Vorhandensein aller wichtigen Voraussetzungen. Dennoch finden sich in Community-Foren zahlreiche gänzlich unterschiedliche Installationshinweise für verschiedene Distributionen. Administratoren, die primär mit Windows arbeiten, dürften Linux-spezifisches Lehrgeld zahlen. Schlimmer noch ist die Tatsache, dass es offenbar immer wieder zu Problemen mit jüngeren Distributionen kommt und die genutzte Installationsanleitung stets anzupassen ist.

LL07P03b
Geschäftsprozesse stellen bei Icinga 2 eine weitere Ebene für Services und Hosts dar.

Für die tägliche Arbeit verwenden Benutzer die Web-Oberfläche von Icinga 2. Jedoch: Was bei fast allen Überwachungsprogrammen möglich ist, nämlich einfach FQDN oder IP-Adresse für einen Endpoint einzugeben und dann nach möglichen Services für das Monitoring automatisch scannen zu lassen, sieht Icinga 2 so nicht vor. Hier heißt es erst, Templates zu definieren, bevor der Administrator einen weiteren Host eintragen kann.

Auch die Eingabe von Host- und Service-Informationen nutzt nicht die grafische Oberfläche, sondern erfordert den Einsatz der Konsole. Letztendlich landen alle konfigurierten Werte in unterschiedlichen .conf-Dateien. Für den Einsteiger hat das Web-GUI jedoch einen funktionellen Vorteil, da per Klick auf "Preview" im oberen Menübereich die entsprechende Syntax und der Pfad ersichtlich sind. Der Eintrag für einen Host mutiert exemplarisch für die Datei zones.d/icinga2/hosts.conf in den Eintrag "object Host „8.8.4.4“ { import „generic-host“ display_name = „Google-dns“ address = „8.8.4.4“ groups = [ „linux-server“ ] vars.environment = „testing“ vars.location = „new-york“ vars.os = „linux“ }". Einträge dieser Art lassen sich recht gut automatisieren, für die einzelne Konfigurationsaufgabe hat dies jedoch eher etwas von einer Programmiersprache.

Die auf den ersten Blick kryptische Anlage hat im späteren Verlauf jedoch auch Vorzüge. Will der Administrator beispielsweise ein Template für die Überwachung mit einem definierten Service-Intervall und weiteren Parametern auf den Weg bringen, ist dies über ein Konfigurationsskript möglich. Die vorgefertigten Regeln bieten sich hier als Anschauungsobjekt an: "apply Service „Ping 4“ {import „generic-service“ check_command = „ping4“ assign where host.address}". Eine solche Abfolge aktiviert eine simple ICMP-Echo-Request-Überwachung auf allen bekannten Host-Geräten.

Grundlegendes Monitoring

Von diesen grundlegenden Templates und Prüfkommandos abgesehen, ist Icinga 2 zunächst kaum in der Lage, eine weitreichende Überwachung durchzuführen. Im Sinne des "Monitoring Frameworks" obliegt es dem Administrator, über Plug-ins die gewünschten Überwachungen aufzubauen. In der praktischen Umsetzung legt der IT-Verantwortliche dazu verschiedene Zonen und Benachrichtigungen an. Auch hier wirkt Icinga 2 wie eine Programmierumgebung. Für die Anlage der Benachrichtigung für "mail-linuxadmins" ist als Filter "assign where ‚operatingsystem‘ in service.vars.sections ignore where host.vars.os != ‚Linux’" anzulegen. Ebenso könnte es auch heißen: "assign where ‚vmware‘ in service.vars.sections". Einige manuelle Eingriffe durch den Administrator erfordern auch Benachrichtigungen, die über die E-Mail hinausgehen, beispielsweise SMS, Anruf mit Abspielen einer WAV-Datei, automatische Ticketerstellung oder Erzeugung einer Chat-Nachricht im Jabber-Format.

Mit allzu vielen Einstellungsmöglichkeiten im Bereich der Benutzerverwaltung und der Berechtigungsvergabe muss sich ein Icinga2-Administrator nicht auseinandersetzen. Das Berechtigungsmodell ist sehr einfach gehalten. Der angemeldete Benutzer sieht standardmäßig lediglich die Services und Hosts, für die der Administrator den Anwender als zu benachrichtigenden Kontakt eingetragen hat.

LL07P03c
Die grafische Aufbereitung der Messdaten übernehmen Grafana, Graphite, PNP oder NagVis.

Alternativ gäbe es noch über die cgi.cfg-Datei die Möglichkeit, den Zugriff gleich auf alle Objekte zu erweitern. Was ein Benutzer überhaupt machen darf, steuert der Administrator über einen selbsterklärenden Web-Dialog. Einziges Hilfsmittel ist die Definition von Rollen und die Zuordnung zu Benutzergruppen.

Das Entwicklerteam hat am 25. April die Version 2.8.4. herausgegeben, nur einen Tag nach Erscheinen von 2.8.3. Der Grund für den kurzfristigen Sprung waren einige abstürzende Plug-ins. Ansonsten kam es lediglich zu einigen Bug-Fixes für die Erweiterungen Elasticsearch und InfluxDB.

Die Highlights im Release 2.8 waren anpassbare Dashboards und Themes zur individuelleren Darstellung. Aber auch in Bezug auf die Sicherheit waren die Entwickler nicht untätig: Sechs CVE-Meldungen konnte man allein im März schließen.

Fazit

Icinga 2 ist keine Software für Administratoren, die einfach mal kurz und unkompliziert eine Überwachung in Betrieb nehmen möchten. Hier ist Handarbeit und Fachwissen gefordert. Dafür liefert das Monitoring exakt die Werte, die für den Anwender von Interesse sind. Zwar gibt es keine offensichtlichen Leistungsgrenzen, jedoch ist immer viel manuelle Nacharbeit nötig. Salopp ausgedrückt: Icinga 2 ist eine typische "Frickel"-Lösung für diejenigen, die das Programm am liebsten gleich selbst entwickelt hätten.

Firmen-Info
Netways
Tel.: 0911/928850
Web: www.icinga.com

Lesen Sie mehr zum Thema


Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu KTI Networks

Weitere Artikel zu Basware

Weitere Artikel zu The Linley Group

Matchmaker+