Das Team hinter der beliebten IT-Monitoring-Software OpenNMS war in letzter Zeit sehr aktiv und hat kurz hintereinander die Horizon-Versionen 18.0.4 (9. Februar), 19.0.0 (13. Februar) und 19.0.1 (22. Februar) veröffentlicht. Die Version 18.0.4 dient als Abschluss der 18er-Version und enthält ausschließlich Bugfixes. Die 19.0.0 kommt hingegen mit einigen internen Neuerungen wie dem Upgrade des Jetty–Webservers auf die Version 9.4. Die Umfangreichste Neuerung ist die Einführung der OpenNMS-Minions, die nun endlich produktiv eingesetzt werden können. Die Einführung der Minions hat zudem zu interessanten Nebeneffekten geführt, unter anderem ist jetzt auch das Überwachen von überlappenden IP-Adressbereichen möglich. Wir haben uns die aktuelle Version einmal näher angeschaut.
Allgemeine Neuerungen
Die ersten Neuerungen der neuen OpenNMS-Version fallen gleich beim Aufruf der Startseite ins Auge: Hier wurde die GeoMap integriert, die eine Übersicht über die Standorte eines Netzwerks bietet. Für das intensivere Arbeiten mit der Map ist diese – in gewohnter Weise – unter dem Menüpunkt „Maps“ zu finden. Eine weitere Neuerung, die hier im Quick-Search-Bereich bereits erkennbar ist, ist die bessere Integration von IPv6 in das Bedienkonzept.
Unter dem Menüeintrag „Status – Trend“ ist jetzt ein Trend Chart zu finden, der den zeitlichen Verlauf der Ausfälle und Alarme von Diensten, Nodes und Business Services protokolliert.
Auch in „Maps“ gab es Anpassungen des Layouts – beispielsweise sind die Bedienelemente in der Topology Map nun linear aufgereiht.
Eine weitere Neuerung ist die Verlagerung der Berechtigungsverwaltung in die Weboberfläche. Während es in der 18er Version noch notwendig war, die Datei „magic-users.properties“ mit einem Editor zu bearbeiten, um einem Nutzer Berechtigungen zu erteilen oder zu entziehen, ist die Berechtigungsverwaltung nun bequem über die Oberfläche zu erledigen.
Eine kleinere Neuerung im Bedienkonzept ist, dass das „Node-Discovery“ nun auch für eine einmalige Aufnahme aller Nodes in einem Netzwerk zu Verfügung steht, was für eine schnelle Erstaufnahme sehr praktisch ist – oder, wenn kein dauerhaftes Discovery gewünscht ist.
Nützliche Helferlein: Minions
Die „Minions“ wurden schon vor einiger Zeit angekündigt und haben es mit der Version 19.0.0 offiziell in OpenNMS geschafft. Der Zweck der Minions ist das einfachere Erweitern des Überwachungsbereiches. Wollte man zuvor ein Netzwerk an einem anderen Standort überwachen, welcher beispielsweise mittels Firewalls vor direkten Zugriff geschützt wurde, so musste man sich mittels NAT oder dem Aufbau von Tunneln behelfen, was zu einem größeren Set von Firewall-Regeln führen konnte. Mit der Verwendung der Minions muss nur noch eine Verbindung von Minion und OpenNMS–Installation auf einer übersichtlichen Anzahl von Ports (in der Regel der Port der Webpräsenz von OpenNMS und der Port 61616) eingerichtet werden. Die Minions übernehmen das Polling und die Datacollection vor Ort und übermitteln die Daten an den OpenNMS–Server, der auch die zentrale Verwaltung der Minions übernimmt.
Nachfolgend soll die Installation und Konfiguration der Minions sowie deren Verwendung anhand eines Beispiels vorgestellt werden, das sich an der Anleitung aus der OpenNMS–Dokumentation anlehnt.
Anwendungsbeispiel
Installation und Konfiguration
Zuerst muss in OpenNMS ein Nutzer angelegt werden, der den Minions den Zugriff auf OpenNMS erlaubt. Für das Beispiel wurde über die Weboberfläche der Nutzer „minion“ mit dem Passwort „minion“ angelegt und diesem die Rolle „ROLE_MINION“ zugewiesen. Damit die Minions mit OpenNMS kommunizieren können, muss noch die Schnittstelle für den ActiveMQ broker so eingerichtet werden, dass diese auch von außen erreicht werden kann. Hierfür muss im etc–Verzeichnis von OpenNMS die Datei „opennms-activemq.xml“ mit einem Editor geöffnet und die Kommentarzeichen um die Zeile
„<transportConnector name=“openwire“ uri=“tcp://0.0.0.0:61616?useJmx=false&maximumConnections=1000&wireformat.maxFrameSize=104857600″/>“
entfernt werden. Nach einem Neustart von OpenNMS ist dessen Konfiguration hier abgeschlossen.
Die Minions selbst sind momentan nur für den Einsatz unter Red Hat Linux und CentOS verfügbar, daher wird an dieser Stelle die Installation für ein CentOS 7 und OpenNMS Horizon 19.0.1 beschrieben.
Als ersten Schritt bindet man das Repository von Horizon ein und installiert den Minion mit „yum –y install opennms-minion“.
Die Installation bringt ca. 437 MB an Dateien mit, die unter „/opt/minion/“ abgelegt werden. Um den Minion bei Systemstart automatisch hochzufahren werden mittels „systemctl enable minion“ die entsprechenden Verknüpfungen angelegt. „systemctl start minion“ startet ihn sofort.
Die Konfiguration erfolgt am einfachsten über die Shell auf die man sich mittels „ssh –p 8201 Admin@127.0.0.1“ und dem Passwort „admin“ verbinden kann.
Nach dem Einloggen muss die Verbindung zu OpenNMS eingerichtet werden, was über httpd_url und broler-url geschieht. Sofern nicht von der Standardkonfiguration abgewichen wird, können diese aus dem Beispiel übernommen und die IP oder der Domainnamen des OpenNMS-Servers eingetragen werden. Die Option „location“ hat eine besondere Bedeutung, da OpenNMS damit festlegt, über welchen Weg ein Node überwacht wird; dieser Wert sollte daher eindeutig sein. Die Location „Default“ wird allen Nodes zugewiesen, die direkt von OpenNMS überwacht werden, und ist daher bereits vergeben. Nachdem man die Konfiguration mit „config:update“ übernommen hat, setzt man noch den Nutzer und das Passwort für den Zugriff auf OpenNMS.
Nach einem Neustart des Minion-Dienstes sollte sich dieser bereits mit OpenNMS verbinden – die passenden Firewallkonfigurationen vorausgesetzt.
Überprüfung der Verbindung
Die Verbindung lässt sich auch über die Shell des Minion prüfen:
Um die Verbindung in OpenNMS zu sehen, kann man auf der Administrationsseite im Bereich „Distributed Monitoring“ den Punkt „Manage Minions“ wählen.
Wenn sich der Minion erfolgreich mit OpenNMS verbinden konnte, sieht man einen entsprechenden Eintrag. Dort wird auch die Location, die bei der Konfiguration des Minion angegeben wurde, angezeigt.
Betrachten man nun Provisioning Requisitions, so ist dort eine Requisition namens „Minions“ hinzugekommen. Diese nimmt alle Minions auf und sorgt für die Überwachung von deren Erreichbarkeit, indem diesen der Service „Minion-Heartbeat“ zugeordnet wird.
Das Nodelabel, mit dem die Minions zuerst aufgenommen werden, entspricht ihrer ID, die für die Kommunikation mit OpenNMS notwendig ist. Dieser Wert kann allerdings angepasst werden.
Anlegen eines Nodes
Nun folgt ein Beispiel für das Anlegen eines Nodes mittels einer Provisioning Requisition, der über ein Minion überwacht wird. Hierbei ist zu erwähnen, dass die Zuordnung zu den Minions über die Location stattfindet und nicht von den Requisitions abhängt. Es ist also weiterhin möglich, alle Router in einer und alle Server in einer anderen Requisition zu verwalten, unabhängig von ihrer Location. Das Anlegen und Verwalten einer Requisition erfolgt somit wie bisher auch – und auch das Anlegen des Nodes ist fast identisch, allerdings gilt es ein paar Dinge zu beachten.
Das Feld „Location“ ist in der Konfiguration eines Nodes neu hinzu gekommen. Dieses Feld ist optional – wird dort nichts eingetragen, wird die Überwachung durch den OpenNMS–Server selbst vorgenommen. Soll ein Minion die Überwachung übernehmen, trägt man hier die Lokation ein, die diesem zugeordnet ist. Der nächste Punkt, den es zu beachten gilt, ist die Angabe der Interfaces bzw. der IP–Adressen. Hier muss man für die Überwachung über einen Minion immer bedenken, dass dieser der Ausgangspunkt der Überwachung ist. Dies bedeutet zum einen, dass man von Nodes die internen Adressen angeben kann, zum anderen allerdings auch, dass Freigaben für den Zugriff auf Nodes (beispielsweise für SNMP) auf die Adresse des Minions eingerichtet werden müssen. Auch wenn die Konfiguration der Minions zum Empfang oder zur Weiterleitung von SNMP-Traps und Syslog-Nachrichten in diesem Beispiel nicht beschrieben ist, muss hier auch berücksichtigt werden, dass bei den Nodes der Minion als Empfänger eingetragen wird, auch wenn die eigentliche Verarbeitung von OpenNMS vorgenommen wird. Das Konzept der Lokation zieht sich durch das gesamte OpenNMS: So kann unter anderem das Node Discovery so eingerichtet werden, dass es neue Geräte an verschiedenen Lokationen automatisch erkennt.
Fazit zu OpenNMS 19.0.1
Die Minions und das angepasste Bedienkonzept sind bereits jetzt recht überzeugend. So können auf recht einfache Weise neue Standorte in die Überwachung eingebunden werden, wobei auch Datacollection möglich ist. Allerdings hat die Integration der Minions größere Umstrukturierungen erfordert, so dass leider noch eine Reihe von Bugs vorhanden ist. Das Release 19.0.1 hat zwar bereits einige der Bugs behoben – allerdings ist die Veränderung recht tiefgreifend, so dass mit dem Auftreten von weiteren Fehlern gerechnet werden muss. Der Autor rät daher von einem Upgrade einer produktiven Installation auf die Version 19.0.1 zurzeit noch ab.
Wir sind erfahrene Spezialisten für OpenNMS – Ihre Fragen beantworten wir daher gerne auch persönlich. Sprechen Sie uns einfach an!
Autor: Andreas Fuchs