OpenNMS
# OpenNMS

OpenNMS ist ein freies Netzwerkmanagement-System zur Service-Monitoring von IT-Netzwerken. Der gesamte Code steht unter der AGPLv3. Verwaltet wird das Projekt von Tarus Balog, der OpenNMS Group und „The Order of the Green Polo“. OpenNMS ist in Java geschrieben und lässt sich über eine Weboberfläche benutzen. Es gilt als sehr skalierbar. Installationen zur Überwachung von 70.000 Systemen mit einer Instanz sind in der Praxis im Einsatz.

## Kernfunktionen

* Discovery: Im Netzwerk zu überwachende Knoten (Geräte) und darauf laufende Dienste können automatisch durch einen Discovery-Prozess erkannt werden.
* Service Polling: Die auf den Knoten erkannten Dienste werden über ein Polling-Verfahren überwacht.
* Datacollection: In regelmäßigen Abständen können Leistungsdaten der einzelnen Knoten per SNMP, JMX, HTTP, WMI, JDBC und NSClient erhoben werden.
* Thresholding: Die gesammelten Leistungsdaten können mittels Schwellwerten überwacht werden.
* Event Management: Umfasst die Verwaltung von internen sowie externen Ereignissen, die unter anderem per SNMP-Trap oder Syslog empfangen werden können.
* Benachrichtigungen: Benachrichtigungen über sämtliche Ereignisse (wie zum Beispiel ein ausgefallener Dienst oder Knoten) sind unter anderem per E-Mail oder XMPP möglich.

OpenNMS unterstützt die Betriebssysteme Linux, Solaris, Mac OS X, FreeBSD und Microsoft Windows.

## Aufbau

OpenNMS besteht aus mehreren Diensten, die jeweils über einen gemeinsamen Eventbus miteinander kommunizieren. Der Discovery-Daemon durchsucht in regelmäßigen konfigurierbaren Abständen IP-Adressbereiche nach neuen Knoten. Wird ein neuer Knoten erkannt, wird ein NewSuspect-Ereignis erzeugt. Nach dem Auftreten eines solchen Ereignisses beginnt der Dienst Capsd die auf dem Gerät verfügbaren Dienste zu erkennen und in OpenNMS aufzunehmen. Der Pollerd übernimmt anschließend das Abfragen der einzelnen erkannten Dienste während der Collectd in regelmäßigen Abständen Leistungsdaten wie zum Beispiel die CPU-Auslastung unter anderem per SNMP erhebt. Mit den Diensten Trapd und Syslogd können SNMP-Traps sowie Syslog-Nachrichten empfangen werden und dem jeweiligen überwachten Knoten zugeordnet werden. Sämtliche Daten mit Ausnahme von Leistungsdaten werden in einer PostgreSQL-Datenbank gespeichert. Leistungsdaten werden in RRD-Dateien abgelegt. Mit einem Applikationsserver werden die gesammelten Informationen dem Benutzer über eine Weboberfläche zur Verfügung gestellt.

## Community

OpenNMS verfügt über eine große, internationale Community. Einmal jährlich finden Konferenzen für Benutzer und Anwender statt. Der Inhalt und die Konferenzprogramme sind frei zugänglich im Internet dokumentiert.

