OpenNMS
Open-source network monitoring and management platform
From Wikipedia, the free encyclopedia
OpenNMS is a free and open-source network monitoring and network management platform written in Java. It provides fault management, performance data collection, service monitoring, event processing, and topology mapping. The project was started in July 1999 and registered on SourceForge as project 4141 in March 2000, making it one of the oldest open-source network management platforms.[2]
| OpenNMS | |
|---|---|
| Developers | The OpenNMS Group, The Order of the Green Polo |
| Initial release | March 2000 |
| Stable release | 35.0.4[1]
/ March 11, 2026 |
| Written in | Java[1] |
| Operating system | Linux, Unix |
| Type | Network management |
| License | AGPLv3 |
| Website | www |
| Repository | github |
OpenNMS is released under the AGPLv3. The OpenNMS Group provides commercial support, training, and an enterprise distribution called Meridian. The project itself is governed by The Order of the Green Polo (OGP), a community organization separate from the commercial entity.[3]
History
Steve Giles, Brian Weaver, and Luke Rindfuss started the OpenNMS project in July 1999 at their company PlatformWorks.[4] The project was registered on SourceForge in March 2000, about two months after the registration of NetSaint (later Nagios).[2]
On September 28, 2000, PlatformWorks was acquired by Atipa, a Kansas City-based Linux systems vendor.[5] In July 2001, Atipa renamed itself Oculan.[6]
In September 2002, Oculan stopped supporting OpenNMS. Tarus Balog, then an Oculan employee, left the company to continue the project independently.[7] In September 2004, Balog, Matt Brozowski, and David Hustace founded The OpenNMS Group to provide commercial services. The Order of the Green Polo was established shortly afterward to manage the project's governance separately from the commercial business.[3]
OpenNMS produces two release streams: Horizon (community releases with new features) and Meridian (enterprise-oriented releases with longer support cycles).[1]
Architecture
Event management
OpenNMS is built around a publish-subscribe event bus. Internal processes and external sources (SNMP traps, syslog messages, TL/1 events, or XML messages sent to a TCP listener) generate events that other subsystems can consume. Events can trigger alarms, which support event reduction (consolidating repeated identical events into a single alarm with a counter) and correlation workflows (automatically clearing a "down" alarm when a matching "up" alarm arrives).[8]
The alarm subsystem can integrate with trouble-ticketing systems including Request Tracker, OTRS, and Jira. An event translator can augment incoming events with additional data before forwarding them.[9] Notifications can be sent via email, SMS, XMPP, and custom notification methods.
Discovery and provisioning
OpenNMS can discover devices automatically by scanning IP address ranges (both IPv4 and IPv6) or accept explicit device definitions. The provisioning system is XML-based and can be scripted for automation. Provisioning adapters allow integration with external systems such as Dynamic DNS servers and RANCID for configuration management.[2]
Service monitoring
The service assurance system tests the availability of network services at configurable intervals, ranging from simple ICMP pings and TCP port checks to multi-step web page sequence monitors and mail transport monitors. Outage data is stored in the database for availability reporting. Remote pollers can be deployed at distant locations to measure service availability from multiple geographic points.[10]
Data collection
OpenNMS collects performance data via SNMP, HTTP, JMX, WMI, XML, NSClient, and JDBC. Collected data is stored in RRDtool or JRobin files for graphing and threshold evaluation.[2]
Platform requirements
OpenNMS requires a Java SDK version 11 or higher and PostgreSQL for its database.[11] Precompiled packages are available for most Linux distributions.