What is OpenNMS

From OpenNMS
Jump to navigation Jump to search

OpenNMS is a free an open source enterprise grade network monitoring and network management platform. It is developed and supported by a community of user and developers as well as by the The OpenNMS Group, offering commercial services, training and support.

The goal is for OpenNMS to be a truly distributed, scalable management application platform for all aspects of the FCAPS network management model while remaining 100% free and open source. Currently the focus is on Fault and Performance Management.

All code associated with the project is available under the GNU Affero General Public License, version 3.

The OpenNMS Project is maintained by The Order of the Green Polo.


The OpenNMS Project was started in July, 1999 by Steve Giles, Brian Weaver and Luke Rindfuss and their company PlatformWorks. It was registered as project 4141 on Sourceforge in March 2000.

On September 28, 2000, PlatformWorks was acquired by Atipa, a Kansas City-based competitor to VA Linux Systems. In July 2001, Atipa changed its name to Oculan.

In September 2002, Oculan decided to stop supporting the OpenNMS project. Tarus Balog, then an Oculan employee, left the company to continue to focus on the project.

In September 2004, The OpenNMS Group was started by Balog, Matt Brozowski and David Hustace to provide a commercial services and support business around the project. Shortly after that, The Order of the Green Polo (OGP) was founded to manage the OpenNMS Project itself. While many members of the OGP are also employees of The OpenNMS Group, it remains a separate organization.

Platform Support and Requirements

OpenNMS is written in Java, and thus can run on any platform with support for a Java SDK version 1.6 or higher. Precompiled binaries are available for most Linux distributions, Windows, Solaris and OS X.

In addition to Java, it requires the PostgreSQL database, although work is being done to make the application database independent by leveraging the Hibernate (Java)|Hibernate project.


OpenNMS describes itself as a "network management application platform". While useful when first installed, the software was designed to be highly customizable to work in a wide variety of network environments.

There are four main functional areas of OpenNMS.

Event Management and Notifications

OpenNMS is based around a "publish and subscribe" message bus. Processes within the software can publish events, and other processes can subscribe to them. In addition, OpenNMS can receive events in the form of SNMP Traps, Syslog messages, TL/1 events or custom messages sent as XML to port 5817.

Events can be configured to generate alarms. While events represent a history of information from the network, alarms can be used to create correlation workflow (resolving "down" alarms when matching "up" alarms are created) and performing "event reduction" by representing multiple, identical events as a single alarm with a counter. Alarms can also generate events of their own, such as when an alarm is escalated in severity. Alarms clear from the system over time, unlike events that persist as long as desired.

The Alarm subsystem can also integrate with a variety of trouble ticketing systems, such as Request Tracker, OTRS, Jira, Quickbase and Concursive.

The software also contains an Event Translator where incoming events can be augmented with additional data (such as the impact to customers) and turned into new events.

Events can generate notifications via e-mail, SMS, XMPP and custom notification methods.

OpenNMS has been shown to be able to process 125,000 syslog messages per minute, continuously.

Discovery and Provisioning

OpenNMS contains an advanced provisioning system for adding devices to the management system. This process can occur automatically by submitting a list or range of IP addresses to the system (both IPv4 and IPv6). Devices can also be expressly added to the system, as well as a combination of the two.

The underlying technology for this configuration is XML, so users can either use the web-based user interface or they can automate the process by scripting the creation of the XML configuration files.

The provisioning system contains adapters to integrate with other processes within the application as well as external software, such as a Dynamic DNS server and RANCID.

The provisioning process is asynchronous for scalability, and has been shown to provision networks of more than 50,000 discrete devices as well as networks of single devices with over 200,000 virtual interfaces, each (Juniper E320).

Service Monitoring

The service assurance features of OpenNMS allow for the availability of network-based services to be determined. The types of monitors span from the very simple (ICMP pings, TCP port checks) to the complex (Page Sequence Monitoring, Mail Transport Monitor). Outage information is stored in the database and can be used to generate availability reports.

In addition to being able to monitor network services from the point of view of the OpenNMS server, remote pollers can be deployed to measure availability from distant locations.

Papa John's Pizza uses the OpenNMS remote poller software in each of its nearly 3000 retail stores to measure the availability of centralized network resources.

Data Collection

Performance data collection exists in OpenNMS for a number of network protocols including SNMP, HTTP, JMX, WMI, XMP, XML, NSClient, and JDBC. Data can be collected, stored, graphed as well as checked against thresholds.

The process is highly scalable, and one instance of OpenNMS is collecting 1.2 million data points via SNMP every five minutes.

Additional Features

OpenNMS is accessed via a web-based user interface built on Jetty. An integration with JasperReports creates high level reports from the database and collected performance data.