Vielseiter OpenNMS: Effizientes Monitoring auf verschiedenen Ebenen

Im Bereich des Monitoring stellt sich immer wieder die Frage, welche Menge an Information man tatsächlich über ein System oder eine Anwendung benötigt. Zwar scheint es auf den ersten Blick am sinnvollsten, alle verfügbaren Informationen zu sammeln und aufzubereiten – dies erfordert allerdings Ressourcen auf dem Monitorringsystem, dem überwachten System und auch in dem verbindenden Netzwerk. Um dieser Problematik zu begegnen, verfügen Monitoringsysteme über einen Satz von Überwachungsmethoden, die die häufigsten Fälle in einer möglichst allgemeinen Form des Monitorings abdecken. Das OpenSource-Tool OpenNMS bietet für die Überwachung eines Webservers standardmäßig Poller für ICMP, HTTP und HTTPS an.
Diese Poller sind in der Regel sehr generisch gehalten, damit sie auf die verschiedensten Varianten eines Dienstes angewendet werden können. Ein Beispiel: Der in OpenNMS bereits vordefinierte Poller für HTTP prüft ausschließlich, ob auf eine Anfrage auf Port 80 ein positiver HTTP-Response-Code zurückgegeben wird. Dass die Konfiguration der Poller angepasst werden kann, ist vielen bewusst. So erscheint es nur logisch, dass auch ein anderer Port für HTTP konfiguriert werden kann, da manche Server und vor allem die WebUIs einiger Netzwerk-Appliances auf anderen Ports betrieben werden. Allerdings bietet OpenNMS noch weitere Möglichkeiten der Überwachung: So kann – um beim Beispiel des Webservers zu bleiben – exakt festgelegt werden, welche Response Codes gültige Werte darstellen, um beispielsweise ein Redirect auf eine Fehlerseite zu erkennen. Weiterhin kann auch der Inhalt der Antwortseite ausgewertet werden – unter anderem, um zu prüfen, ob ein bestimmter Text enthalten ist. Zudem ist es auch möglich, Authentifizierungsdaten zu übergeben, falls der Webserver diese anfordert. Diese beispielhaften Konfigurationsmöglichkeiten zeigen, dass bereits mit dem einfachen HTTP-Poller eine Überwachung im Bereich von einer beliebigen Antwort eines Webservers bis hin zum Login und der Prüfung des Inhaltes einer Antwortseite möglich ist.

Monitoring auf verschiedenen Ebenen

Bereits durch die Konfiguration eines einzelnen Pollers wird die Überwachung eines Dienstes auf verschiedenen Ebenen (allgemein und oberflächlich bis hin zu speziell und tiefgehend) ermöglicht. Teilweise existieren zudem Poller für spezifische Aufgaben, die eine bessere Eingrenzung oder sogar erst die Erkennung einer Störung ermöglichen. So kann beispielsweise ein Polling des SMTP-, POP- und IMAP–Services anzeigen, dass ein Mailserver korrekt funktioniert. Wurde zusätzlich ein Mail–Transport–Poller eingerichtet, stellt man plötzlich fest, dass der Versand von E-Mails nicht mehr funktioniert. Nach kurzer Recherche zeigt sich, dass der Mailserver auf einer Blacklist gelandet ist. Wie an diesem Beispiel zu erkennen ist, können einige Poller die Aussagekraft von Störungsmeldungen deutlich erhöhen. Dazu ist allerdings meist ein Mehraufwand an Konfiguration und ein erhöhter Ressourcenbedarf in Kauf zu nehmen. In diesem Beispiel müsste mindestens ein Mail-Transport-Poller eingerichtet werden, der mit Hilfe einer externen Mailadresse den Versand prüft. Gegenüber steht allerdings ein deutlicher Gewinn an Information, der unter anderem auch durch die Kombination von Pollern erreicht wird.

Wie man an diesem Beispiel auch erkennen kann, benötigen einige Poller Zugriff auf den zu überwachenden Dienst. So braucht der Mail–Transport–Poller einen gültigen Account, um Versand und Empfang von E-Mails zu prüfen, während ein SMTP–Poller in der Regel keine Zugriffsberechtigung benötigt.

Indirekte Überwachung

Neben den direkten Überwachungsmethoden stehen auch noch indirekte Monitoring-Varianten zur Verfügung. Im Bezug auf OpenNMS gibt es verschiedene Möglichkeiten an Systeminformationen zu gelangen – die gängigste ist SNMP. Sofern SNMP auf dem zu überwachenden Gerät eingerichtet ist, stehen verschiedene Überwachungsmöglichkeiten zur Verfügung. Ein Beispiel: OpenNMS kann prüfen, ob ein spezieller Prozess – wie unter anderem ein Apache–Webserver – aktiv ist. Hierzu ist die Einrichtung eines HostResourceSWRunMonitor für Unix-Systeme oder ein Win32ServiceMonitor für Windows erforderlich. Zusätzlich ermöglicht es SNMP OpenNMS, Performancedaten zu sammeln, so dass die Auslastung der Prozessoren, des Arbeitsspeichers und die Belegung der Festplatten eines Servers überwacht werden können. Die Performancedaten bringen gleich doppelten Nutzen mit sich, da sie zum einen in einem Störungsfall genutzt werden können, um den Fehler einzugrenzen, und zum anderen auch eine gute Grundlage zur Einschätzung bieten, ob ein Server seine Dienste performant anbieten kann oder neu ausgelegt werden muss.
Also: Das Monitoring von Diensten kann auf unterschiedlichen Ebenen erfolgen, wobei immer der Zugewinn an Information gegen die dafür benötigten Ressourcen gewogen werden muss.  Die Einrichtung eines erweiterten Monitorings wird von OpenNMS durch die Bereitstellung von Konfigurationsoptionen und speziellen Pollern unterstützt. Glücklicherweise hält sich der Ressourcenbedarf für die einzelnen speziellen Poller in Grenzen, so dass eine überschaubare Anzahl ohne größere Probleme eingerichtet werden kann.
Ihre weitergehenden Fragen zu OpenNMS allgemein, einer tiefgreifenden Überwachung oder deren Einrichtung beantworten wir gerne persönlich. Sprechen Sie uns einfach an!
 
Autor: Andreas Fuchs

EU Efre Dekra