What’s New in OpenNMS Horizon 21

System Requirements

Java 8: OpenNMS Horizon 21 requires Java 8 as the runtime environment.
To run Horizon 21, we recommend the most recent version of Oracle JDK 8 for your platform.

PostgreSQL 9 or higher: Horizon 21 requires Any supported version PostgreSQL 9 or higher.
As of this writing, PostgreSQL 9.3 is the earliest version under active support, but OpenNMS is known to work with at least PostgreSQL 9.1 and up.

Important Upgrade Notes

Event parameters have been moved to their own table, rather than being embedded (preformatted) in the events table.
If you have a large number of events and/or event parameters in your database, the conversion while running install may take as long as an hour or even more.
It is recommended that you archive and delete old events you do not need anymore before upgrading.

Breaking Changes

Property format change of opennms.alarmTroubleTicketLinkTemplate:
Originally the opennms.alarmTroubleTicketLinkTemplate defined in $OPENNMS_HOME/etc/opennms.properties requires the full <a href="…​">${id}</a> link to be configured.
This is changed to the ticketer system url, e.g. https://issues.opennms.org/browse/${id} instead of <a href="https://issues.opennms.org/browse/${id}">${id}</a>.
If the opennms.alarmTroubleTicketEnabled is true then the opennms.alarmTroubleTicketLinkTemplate must be updated as well in order to not break the link to an external ticketing system on the Alarm Details Page.

XML configuration reformat:
Most XML configuration files in $OPENNMS_HOME/etc have been reformatted so they match the way they would be written out by our XML APIs.
This will likely cause additional .rpmnew or .dpkg-* files on upgrade.

Event parameters:
There are a few side-effects of the event parameter changes.

When you view or retrieve an alarm it will always have the parameters of the newest event associated with it.

Vacuumd no longer honors the add-all-parms attribute on an action-event.

Changes to TCPAddress and UDPAddress format in eventd-configuration.xml:
When Eventd was converted to use Camel under the covers, the format for listening on all interfaces changed from a wildcard (*) to 0.0.0.0.
Note that despite looking like an IPv4 format, the JVM interprets 0.0.0.0 as listening on all interfaces, IPv4 and IPv6.

New Features

The experimental ReSTv2 API introduced in Horizon 20.1 has been improved to support new features made possible by moving event parameters to their own table.

Improved Minions:

Minions now automatically get JMX data collection, as well as RPC monitoring.

The Minion now has support for remote-poller-like behavior. You can now override the location at which monitors are executed.

Dependency Updates

Camel has been upgraded to 2.19.1

ActiveMQ has been upgraded to 5.14.5

Karaf has been upgraded to 4.1.2

Changelog

Release 21.1.0

Release 21.1.0 is the latest stable release of OpenNMS.
It contains bug fixes and a few enhancements, including support for forwarding events, alarms, and nodes to Kafka.
For a high-level overview of what’s changed in OpenNMS 21, see What’s New in OpenNMS 21.

Enhancement

Release 21.0.4

Release 21.0.4 is the latest stable release of OpenNMS.
It contains bug fixes and a few performance enhancements.
For a high-level overview of what’s changed in OpenNMS 21, see What’s New in OpenNMS 21.

Enhancement

Release 21.0.2

Release 21.0.2 is the latest stable release of OpenNMS.
It contains some UI security fixes, other bug fixes, and a few small enhancements.
For a high-level overview of what’s changed in OpenNMS 21, see What’s New in OpenNMS 21.

Enhancement

Release 21.0.1

Release 21.0.1 is the latest stable release of OpenNMS. It contains a few enhancements but is primarily a bugfix release, including a fix for the rendering issue in the topology UI and other Vaadin-based UI elements.
For a high-level overview of what’s changed in OpenNMS 21, see What’s New in OpenNMS 21.

What’s New in OpenNMS Horizon 20

System Requirements

Java 8: OpenNMS Horizon 20 requires Java 8 as the runtime environment.
To run Horizon 20, we recommend the most recent version of Oracle JDK 8 for your platform.

PostgreSQL 9.2 or higher: Horizon 20 requires PostgreSQL 9.2 or higher.
All older versions of PostgreSQL are past their end-of-life support date.

Breaking Changes

NMS-9303: Deprecated Capsd and Linkd event definitions are removed.
Otherwise unused event definitions are also cleaned up and removed from the code and configurations.
For a detailed list of all removed events see NMS-9303.
For people maintaining databases prior to OpenNMS 1.8, we provide a maintenance script for Linux and Windows in the opennms-contrib package to clean up old events in the database.
The script is named NMS-9303-cleanup-deprecated-events.sh and executes a SQL script.
In case you run PostgreSQL on Windows, you can use psql.exe -d opennms -U opennms -W -a -f NMS-9303-cleanup-deprecated-events.sql to run the maintenance script.

Future Breaking Changes

Configuration File Format: In OpenNMS Horizon 21, we will (finally) be re-formatting all XML configuration files in $OPENNMS_HOME/etc to match the way JAXB writes them out.
This will likely make merging configuration changes from 20 to 21 more difficult, so we wanted to give some advanced warning.

Important Upgrade Notes

JAXB XML Parsing: We have finished removing our use of Castor for XML processing.
While we have tried to adjust XSDs where needed to provide a seamless transition, there are a LOT of changes and it’s possible there may still be issues with some config files that are being treated more strictly than they used to be.
If you run into any config files that can’t be parsed in OpenNMS 20, please open an issue.

org.opennms.newts.nan_on_counter_wrap: If you are using Newts, returning NaN when a counter-wrap is encountered now defaults to true.
If you relied on the old behavior, you can change it back by setting org.opennms.newts.nan_on_counter_wrap=false in a file in opennms.properties.d.

Alarm Sounds: The web UI can now optionally flash and play an alert sound when alarms are created and optionally updated.
(more details).

Minion Updates: The Minion has improved quite a bit over the previous release, adding support for more collectors and more robust tracking of Minion availability.

Polling now reports an "unknown" poll status when the Minion doesn’t respond, rather than "down".

The minion now supports using JICMP and JICMP6 for ICMP requests, providing more performant ping requests than the previous default JNA implementation.

Debian packages are now provided for the Minion.

Requisition handling now delegates properly to the Minion when appropriate.

The HTTP, JDBC, JMX, NSClient, TCA, WMI, WS-Man, and XML collectors now work on the Minion.

VMware provisioning, collection, and monitoring all work on the Minion now.

Collectors can all be run remotely on Minions manually from the OpenNMS Karaf shell.

ReST Updates: A new experimental ReST API (/opennms/api/v2) has been enabled which supports JEXL. (new in 20.1)
This API is still subject to change but is being used by a number of internal projects including Helm.

Retired Features

Elasticsearch 1 API: The old Elasticsearch API has been removed in favor of the Elasticsearch ReST plugin,
which should support most Elasticsearch API versions. Instructions on configuring the Elasticsearch ReST plugin are available in the Administrators Guide.

Dependency Updates

ActiveMQ: 5.10.0 → 5.13.3

Camel: 2.14.4 → 2.16.5

Log4J: 2.5 → 2.8.2

The camel-netty plugin has been superceded by the camel-netty4 plugin.

Other Improvements

Collection APIs have been refactored and cleaned up immensely to support the Minion changes documented above.

Many improvements have been made to the documentation, including documentation for collectors, detectors, and monitors, as well as Karaf shell commands and event sources.

A number of improvements to geolocation resolution and node maps have been made.

Internal OpenNMS events have been cleaned up and broken into logical parts in $OPENNMS_HOME/etc.

Graphs that use relative time periods have additional drop-down choices now.

The topology and BSM infrastructure has been vastly improved, with MANY bug fixes and performance improvements.

BSM now properly handles deleted alarms.

The grafana box on the main dashboard now supports paging.

Fix a thread leak in SNMP queries that can happen when old connections don’t get closed properly.

Fix a long-standing bug in the vacuumd-configuration.xml that referred to the wrong ticket state for "closed".

Fix calculation of KSC report "Last Week" and "This Week" timespans.

Fix startup on systems without any IPv6 support.

Reverse lookups in provisioning now handle IPs without a corresponding A record.

Changelog

Release 20.1.0

Release 20.1.0 is the latest stable release of OpenNMS.
It is based on OpenNMS 20.0.2 plus additional work done in preparation for Meridian 2017, including a new ReST API to support enhanced OpenNMS Grafana inetgration.
For a high-level overview of what’s changed in OpenNMS 20, see What’s New in OpenNMS 20.

Release 20.0.2

Release 20.0.2 is the latest stable release of OpenNMS.
It contains a number of important bug fixes and a few small new enhancements.
For a high-level overview of what’s changed in OpenNMS 20, see What’s New in OpenNMS 20.

Release 20.0.1

Release 20.0.1 is the latest stable release of OpenNMS.
It contains a number of important bug fixes and a few small new enhancements.
For a high-level overview of what’s changed in OpenNMS 20, see What’s New in OpenNMS 20.

Release 20.0.0

Release 20.0.0 is the latest stable release of OpenNMS. It contains a large number of bug fixes and a few new features.
For a high-level overview of what’s changed in OpenNMS 20, see What’s New in OpenNMS 20.

What’s New in OpenNMS Horizon 19

System Requirements

Java 8: OpenNMS Horizon 19 requires Java 8 as the runtime environment.
To run Horizon 19, we recommend the most recent version of Oracle JDK 8 for your platform.

PostgreSQL 9.2 or higher: Horizon 19 requires PostgreSQL 9.2 or higher.
All older versions of PostgreSQL are past their end-of-life support date.

Important Upgrade Notes

Cassandra JMX Metrics: The default value for the friendly-name attribute on the JMX-Cassandra collection service has changed from cassandra21x to cassandra.
This changes the path in which the metrics are stored.
If you have already been collecting these metrics and wish to preserve them, you can ignore this change when merging your configuration.

Camel 2.14 Upgrade: Camel has been upgraded from 2.14.1 to 2.14.4. (new in 19.1)

Jetty 9.4 Upgrade: Jetty has been upgraded from 8.1 to the latest 9.4.
If you have a custom jetty.xml in your etc folder, you will need to migrate your changes.
Use etc/examples/jetty.xml as a starting point.

Drools 6.4.0 Upgrade: Drools has been upgraded from 6.0.1.Final to 6.4.0.Final.
If you have custom Drools rules, they may need to be revised.
The compiler used in 6.4.0.Final is stricter than the compiler in previous versions.

Drools 6.5.0 Upgrade: In 19.1, Drools has been further upgraded from 6.4.0.Final to 6.5.0.Final.

Quartz 2.2 Upgrade: Quartz has been upgraded from 1.6.5 to 2.2.3. (new in 19.1)

SNMP4J Upgrade: SNMP4J has been upgraded from 2.4.3 to 2.5.5. (new in 19.1)

Spring Upgrade: Spring has been upgraded from 4.0.7 to 4.1.6. (new in 19.1)

Separate opennms-webapp-remoting Package: The webapp that supports the Remote Poller has been separated from the main OpenNMS webapp.
This will make installations much smaller for users that do not use the Remote Poller.
If you use the Remote Poller, you will need to install the opennms-webapp-remoting package.

OpenNMS Minion can run on a JRE: The OpenNMS Minion packages no longer require a JDK package and can run on the plain JRE.

User roles moved from magic-users.properties into users.xml: The users.xml file now contains a list of roles for each user alongside the rest of the user attributes.

JICMP 2.0 Upgrade: Our Java ICMP library has been upgraded to version 2.0. You will need to upgrade to this version before upgrading to OpenNMS Horizon 19.

New Features

OpenNMS Minion: Minion systems now have full support for most management features of OpenNMS:

Discovery

Provisioning

Polling

SNMP data collection

SNMP link discovery

Syslog reception (sent to OpenNMS via JMS or Apache Kafka)

SNMPv1/v2/v3 trap reception (sent to OpenNMS via JMS or Apache Kafka)

Automatic provisioning of Minions: Minion devices will be added to the Minions requisition and monitored for connectivity with OpenNMS.

GraphML Topology Provider: A new Topology Provider is available that reads GraphML formatted graphs and displays them in the the Topology UI.

OpenNMS Elasticsearch ReST Forwarder: This Elasticsearch forwarder can store events, alarms, and alarm state changes in Elasticsearch for archival or searching. It is compatible with all currently supported versions of Elasticsearch.

Drools Persistence: Drools working memory can now be persisted to disk upon shutdown of OpenNMS. (new in 19.1)

Unified JAAS Authentication: The web UI, the Apache Karaf OSGi console, and the built-in ActiveMQ broker all use unified authentication.

Monitoring Location Events: Events will be sent when Monitoring Locations are added, updated, or deleted.

Exponential propogation: There is a new exponential propogation function available for Business Services.

External JMS broker: It is possible to configure OpenNMS to use an external JMS broker if desired.

New Syslog Parser: A new syslog parser, the RadixTreeSyslogParser, has been added, which supports all major syslog message formats, and uses Grok for more performant parsing. (new in 19.1)

String Persisting over TCP: The TCP persister can now persist string values. (new in 19.1)

ICMP traffic class and don’t-fragment support: It is possible to configure OpenNMS to set DSCP traffic class and "don’t fragment" bits when polling ICMP.

Geographical Maps: Geographical maps are now included by default in the center of the Web UI front page.

Web UI improvements: Location information has been added to many places in the UI, and a number of pages have been enhanced including the BSM editor and topology UI.

New Data Collection Definitions

HTTP:

Elasticsearch

JMX:

Apache Kafka

VMware vCenter Server 6.0.0

Retired Features

Simple Topology Provider: The Simple Topology Provider has been removed. The new GraphML Topology Provider should be used instead.

Deprecated Features

ElasticSearch 1.X Event Forwarder: The existing Elasticsearch forwarder (opennms-elasticsearch-event-forwarder) is deprecated in favor of the new Elasticsearch ReST Forwarder (opennms-es-rest) since the ReST forwarder has broader compatibility with different versions of Elasticsearch.

Dependency Updates

Jetty has been upgraded from 8.1.10.v20130312 to 9.4.0.v20161208.

The Servlet API has been upgraded from 3.0 to 3.1.

Drools has been upgraded from 6.0.1 to 6.4.0 in 19.0, and then from 6.4.0 to 6.5.0 in 19.1.

Internal Improvements

We replaced all of the GWT components in the web UI with AngularJS components. This reduces the complexity of the UI code and will make it easier for developers with Javascript experience to maintain and contribute to the UI.

All Javascript dependencies for the web UI are now managed by Bower and Gulp.

Our ICMP libraries are now capable of being run by non-root users (although OpenNMS is not yet configured to support this).

The startup order of OpenNMS has been improved to make sure that a number of time-sensitive event-consuming daemons are ready immediately after Eventd, and before traps are consumed (new in 19.1)

Changelog

Release 19.1.0

Release 19.1.0 is the latest stable release of OpenNMS. It contains a large number of bug fixes and a few new features.
For a high-level overview of what’s changed in OpenNMS 19, see What’s New in OpenNMS 19.

Release 19.0.1

Release 19.0.1 is the latest stable release of OpenNMS. It contains a number of important fixes for folks who have hit upgrade issues, and a few other small bug fixes.
For a high-level overview of what’s changed in OpenNMS 19, see What’s New in OpenNMS 19.

Upgrade Notes

If you are using the OpenNMS-JVM service to monitor JMX metrics on the OpenNMS JVM, the metrics for ActiveMQ connections and enqueue/dequeue counts were not collected correctly by OpenNMS 19.0.0. If you are upgrading from OpenNMS 19.0.0, you will need to delete the TtlConCnt, TtlConCnt, TtlDeqCnt, and TtlMsgCnt RRD or JRB files for affected nodes to reset the collections. If you are using storeByGroup, you will need to delete the org_apache_activemq_type_Broker_brokerName_localhost RRD or JRB file for the affected nodes.

Enhancement

Release 19.0.0

Release 19.0.0 is the latest stable release of OpenNMS. It contains a large number of bug fixes and new features, most notably support for all major OpenNMS polling and collection features in the Minion.

Event Translator: The default behavior of the event translator preserving SNMP data when cloning event has been changed to NOT preserve that data by default. To restore the old behavior, set preserve-snmp-data="true" on the event XML. For more information, see issue NMS-8374.

ReST API: The ReST API has been normalized to give better and more consistent responses to queries.

This includes dropping support for redirecting to the model URL on write operations (POST, etc.) If you were relying on this old (broken) behavior, please update your ReST API calls accordingly. Most client code should be unaffected.

New Features

Business Service Monitor: Correlation for root cause and business impact analysis.

The goal of the Business Service Monitor is to provide a high-level correlation of business rules, and to display them in the topology map.

In the BSM, you define a Business Service that encompasses a set of entities (nodes, interfaces, services, and other Business Services) and the relationships among them. The alarm states of the component entities are rolled up in a map-reduce fashion to drive a state machine. The state of a Business Service is reflected in a new type of event, and can also be visualized (along with the service hierarchy) in the existing OpenNMS topology map.

The core of a tool for adding plugins into OpenNMS has been included in Horizon 18. This provides a set of tools for finding and adding plugins to be loaded into the OpenNMS OSGi container.

Provisioning Requisition UI: A huge number of improvements have gone into the requisition UI. Also, the old "Quick-Add Node" functionality has been reimplemented using the same backend as the requisition UI.

"Scan Report" Remote Poller GUI: A new front-end for the remote poller that lets you perform a single scan and get a pass/fail report in a GUI has been added. You can enable this alternate UI with the "-s" option on the remote poller CLI.

Topology UI Updates: As part of the BSM work, the topology UI has been vastly improved for both performance and usability.

To get a better idea of how to estimate hardware requirements and the performance characteristics of OpenNMS, we wrote a tool to occasionally submit anonymous diagnostic information about your OpenNMS install. It will submit information like the number of nodes, alarms, etc. as well as some basic system information to our servers for statistical reasons.

When a user with the Admin role logs into the system for the first time, they will be prompted as to whether or not they want to opt-in to publish these statistics. Statistics will only be published once an Administrator has opted-in.

Data Collection and Graphing Updates or Additions

Internal Updates

Minion Infrastructure: Minion is OpenNMS’s project to provide full distributed monitoring and collection.

While Minion is slated to be in Horizon 19, some of the work going towards Minion support is already in Horizon 18, including components for discovery, syslog, and more.

ActiveMQ: An ActiveMQ broker is now embedded in the OpenNMS JVM.

Discovery Daemon Rewrite: The discovery daemon has been replaced with a Camel-based implementation to facilitate future Minion support.

Enhanced Linkd: Enlinkd has had many bugs fixed and should perform orders of magnitude faster in many configurations.

JNA: The JNA ping implementation got cleaned up and should be working again.

Newts: A number of bugfixes and improvements have been made to the Newts support since Horizon 17.

Syslog Daemon Updates: The performance of the OpenNMS syslog support has been vastly improved and updated, and has been modified to work in the Minion.

Changelog

Release 18.0.4

Release 18.0.4 is the latest stable release of OpenNMS. It contains a number of bug fixes and enhancements, including
a fix for a deadlock that can be triggered by using the topology UI and a rather large performance fix for startup if
you are using BSM. For a high-level overview of what’s changed in OpenNMS 18, see
What’s New in OpenNMS 18.

Enhancement

Release 18.0.1

Release 18.0.1 is the latest stable release of OpenNMS. It contains a large number of bug fixes and a few enhancements.
For a high-level overview of what’s changed in OpenNMS 18, see What’s New in OpenNMS 18.

Release 18.0.0

Release 18.0.0 is the latest stable release of OpenNMS. It contains a large number of bug fixes and new features.
For a high-level overview of what’s changed in OpenNMS 18, see What’s New in OpenNMS 18.

Story

Task

What’s New in OpenNMS 17

System Requirements

Java 8: OpenNMS 17 requires Java 8 as the runtime environment.
To run OpenNMS 17, we recommend the most recent version of Oracle JDK 8 for your platform.

PostgreSQL 9.1 or higher: OpenNMS 17 now requires PostgreSQL 9.1 or higher.
All older versions of PostgreSQL are past their end-of-life support date.

Important Upgrade Notes

Clean Up Events and Alarms: Please clean up your event and alarm lists as much as possible before performing an upgrade to OpenNMS 17.
The upgrade process contains a large number of database schema migrations which will cause rewrites of all of the data in some tables.
If you prune unused data from these tables beforehand, it will make the upgrade process much quicker.

Remote Poller API Change: Due to internal API changes, the Remote Poller API has changed in OpenNMS 17.
If you upgrade to OpenNMS 17, you will also need to upgrade all Remote Pollers attached to the system to version 17 as well.

RMI Security Updates: Since OpenNMS 16.0.4, the RMI registry has been changed to only listen on localhost by default.
Starting in OpenNMS 17, it also now requires authentication using an OpenNMS administrator account.

JMX Updates: JMX is no longer enabled by default on port 18980.
If you have reason to access your OpenNMS instance remotely over JMX, you can reenable it by adding -Dcom.sun.management.jmxremote.port=18980 and -Dcom.sun.management.jmxremote.ssl=false to ADDITIONAL_MANAGER_OPTIONS in $OPENNMS_HOME/etc/opennms.conf.
Note that OpenNMS-JVM monitoring of the local instance (ie, localhost) will still work by using the JMX Access API, without needing to enable the TCP port.

API Changes

Monitoring locations for the Remote Poller are now viewed and configured in the UI under /locations/index.jsp.
Monitoring locations were previously configured in the etc/monitoring-locations.xml file but are now stored in monitoringlocations database table.

All data previously in the location_monitors table is now in the monitoringsystems table.

The ifIndex column has been removed from the ipInterface table.
To fetch the ifIndex, you need to join to the snmpInterface table by nodeId.

The nodeId and ipAddr columns have been removed from the ifServices table.
To fetch these columns, you need to join to the ipInterface table.

The nodeId, ipAddr and serviceId columns have been removed from the outages table.
To fetch these columns, you need to join to the ifServices table.

New Features

Newts Storage for Data Collection: In addition to RRD and JRobin, OpenNMS 17 data collection now supports our [Newts](http://opennms.github.io/newts/) time-series data store that uses the highly-scalable Apache Cassandra database as the storage backend.
This storage solution provides higher performance than the file-based RRD and JRobin databases and practically unlimited scalability when using a cluster of Cassandra nodes.
You can drastically reduce CPU and storage load on your OpenNMS system and increase the number of metrics stored per second by using the Newts storage engine.

Measurements REST API Filtering: The measurements REST API now supports the use of arithmetic filters on the returned datasets.
This allows you to perform calculations or statistical operations on the data via server-side processing.

Grafana Panel: An optional panel has been added to the UI to allow you to integrate links to Grafana graphs in the UI.

Streamlined UI Style: The style of the UI has been refined to provide a clearer, more modern look-and-feel.

Alarm Heatmap: A heatmap visualization has been added that lets you quickly visualize alarm status and outages within a category or on a node.

JMX Configuration UI and CLI: The JMX Configuration web UI and CLI have been rewritten to make it easier to generate complex JMX data collection configurations.

JMS Alarm Northbounder: The implementation of a JMS northbounder for sending OpenNMS Alarms to external JMS listeners has been completed. Thanks to David Schlenk (@dschlenk) for this contribution!

OTRS 3.1+ Ticketing Integration: Our OTRS ticketing integration has been updated to work with the API in OTRS 3.1 and higher. Thanks to Jonathan Sartin (@blackpoplar) for this contribution!

Easier Remote Poller Configuration: Monitoring locations can now be associated with multiple polling and collection packages. This can make some Remote Poller scenarios easier to configure.

Dependency Updates

Jasper Reports has been upgraded from 5.6.1 to 6.1.1.

Events

A10 AX Load Balancer

Avocent DSView

Dell Force 10

Evertz 7800FR Multiframe

7880-IP-ASI-IP

7881-DEC-MP2

7780-ASI-IP2

Infoblox

~50 new NetApp Events

Raytheon NXU-2A

Thanks to Marcel Fuhrmann (@mfuhrmann) and Cyrille Bollu (@StCyr).

Data Collection

Fortinet Fortigate

Sonicwall

Thanks to Marcel Fuhrmann (@mfuhrmann) and Cyrille Bollu (@StCyr).

Retired Features

Linkd: Linkd was the original implementation of the link scanning daemon for OpenNMS. It has been superseded by Enhanced Linkd (Enlinkd) in OpenNMS 14 and higher. Linkd has been removed as of OpenNMS 17.

SVG Maps: The SVG map feature relied on Linkd’s code for drawing links between items on the map so it was also removed in OpenNMS 17.

Xmlrpcd: Xmlrpcd was a daemon that relayed inventory and polling events to an external system over the XML-RPC protocol. Because you can accomplish almost all of its use cases by using the provisioning REST service, it has been removed.

MX4J: The MX4J HTTP interface has been removed in favor of using more modern JMX access methods that have been added in recent versions of the JVM.

Internal Updates

The Enlinkd link scanning code and topology code have been updated to provide higher performance.

The resource API for data storage has undergone heavy refactoring to provide changes necessary to support Newts.

The Jasper and statsd reports have been changed so that they use a new unified interface for fetching data from either RRD, JRobin, or Newts.

The Discovery engine has been refactored into its own project.

The REST interface has been refactored to be based on Apache CXF 3.1.4.

The Dashboard has been rewritten using the Vaadin toolkit to modernize its look-and-feel.

The opennms-assemblies/jmx-config-generator-onejar project has been moved to features/jmx-config-generator.

Changelog

Release 17.1.1

Release 17.1.1 is the latest stable release of OpenNMS. It contains a number of bug fixes and a few other changes.
For a high-level overview of what’s changed in OpenNMS 17, see major changes in OpenNMS 17.

Allows state names to be configured in the JIRA Ticketer Plugin (Issue NMS-8199)

Release 17.1.0

Release 17.1.0 is the latest stable release of OpenNMS. It contains a number of important bug fixes and a few new features.
For a high-level overview of what’s changed in OpenNMS 17, see major changes in OpenNMS 17.

Add all the services declared on Collectd and Pollerd configuration as available services on /opennms/rest/foreignSourceConfig/services (Issue NMS-8147)

Release 17.0.0

Release 17.0.0 is the latest stable release of OpenNMS. It contains a large number of bug fixes and new features.
For a high-level overview of what’s changed in OpenNMS 17, see What’s New in OpenNMS 17.

Iplike could not be installed following install guide (Issue NMS-8004)

What’s New in OpenNMS 16

Since OpenNMS 15, many features have been refactored to increase modularity of the OpenNMS code. New reporting capabilities have also been added to
support integration with external graphing engines such as Grafana.

Java 8

All build and dependency issues with Java 8 have been resolved and now OpenNMS 16 requires Java 8 as the runtime environment. To run OpenNMS 16,
we recommend the most recent version of Oracle JDK 8 for your platform.

Capsd Has Been Removed

The legacy capability scanner, Capsd, has been removed from OpenNMS. It was deprecated in OpenNMS 1.12 and disabled by default in
OpenNMS 14 in favor of the provisioning systems of OpenNMS. The Capsd code has now been removed completely which will enable us to
streamline the data access code of OpenNMS. This will make the system easier to maintain and may improve performance down the road.

Linkd is Deprecated

The original link scanning daemon, Linkd, has been superseded by Enhanced Linkd since it was introduced in OpenNMS 15.
Enhanced Linkd is a refactored replacement that is more efficient than the original Linkd code.
Linkd is disabled by default in OpenNMS 15 and 16 and we consider it deprecated.
The code for Linkd will be removed completely in OpenNMS 17.
All users should migrate over to using Enhanced Linkd as a replacement.

API Changes

Several classes changed location in OpenNMS 16 and these changes may require you to update configuration files or scripts with the new names.

The IndexStorageStrategy and PersistAllSelectorStrategy classes moved into the org.opennms.netmgt.collection.support Java package. These classes
are heavily referenced in data collection configuration files. There is an upgrade task that should update all data collection files when you
run the install command after upgrading OpenNMS.

All EventUtils class methods were consolidated inside the org.opennms.netmgt.model.events.EventUtils class.

New Features

There is a new REST service that can be used to export performance data. This service can be used to easily export OpenNMS metrics into external
graphing engines such as Grafana. See the REST API documentation for details.

Dependency Updates

A number of internal libraries have been upgraded for bugfixes and new features. None of these updates should require configuration changes.

Spring has been upgraded from 3.2.9 to 4.0.5.

Spring Security has been upgraded from 3.1.7 to 3.2.7.

Drools has been upgraded from 5.1.1 to 6.0.1.

Apache Camel has been upgraded from 2.13.2 to 2.14.1.

Smack (used for XMPP notifications) has been upgraded from 3.0.4 to 4.0.6.

The webapp schemas have all been updated to the Servlet 3.0 specification.

Internal Updates

Various parts of the OpenNMS system were rewritten in OpenNMS 16 to improve maintainability or performance of the code.

The JMX detector, monitor, and collector were refactored for modularity.

The Dashboard was rewritten using the Vaadin UI toolkit to improve and modernize its look-and-feel.

Bean Scripting Framework (BSF) notifications and the BSFMonitor were optimized and are now much more efficient. (Thanks to David Schlenk for this contribution!)

RTC, which calculates the availability percentages for the category panel on the main page, was rewritten using Spring for initialization and
using database calls to perform availability calculations. This will improve its maintainability.

The web controllers for provisioning, RANCID integration, reports, the node list, and Remote Poller administration were rewritten
to modernize their code.

The REST portion of the OpenNMS webapp was modularized into its own project.

The web UI service layer was separated from the main web UI to improve modularity.

Release 16.0.2

Release 16.0.2 is the latest stable release of OpenNMS. It is a repack of 16.0.1 with a missing bugfix included.

The codename for 16.0.2 is stillBananaman. It’ll be our secret.

Release 16.0.1

Release 16.0.1 is the latest stable release of OpenNMS. It contains a few small enhancements and a number of bugfixes, including
a fix to running OpenNMS on a system that cannot reach the public Internet.

Enhancement

Release 16.0.0

Release 16.0.0 is the latest stable release of OpenNMS. It is primarily a refactoring/cleanup release, but contains a number
of other bug fixes and enhancements. Note that as of OpenNMS 16.0.0, a Java 8 JDK is required. A high-level overview of what’s
changed since 15.x is available in the What’s New document.

The codename for 16.0.0 is Daredevil.

Bug

When removing nodes from a provisioning group, the removed nodes may still be referenced in KSC reports; thus resulting in errors accessing those reports until the nodes are manually removed (Issue NMS-4399

OpenNMS 15

Since OpenNMS 14, a number of backend architectural changes have occurred, as well as a
UI rewrite.

Java 7 and 8

OpenNMS 14 dropped support for Java 6, which has been EOL’d for some time now. OpenNMS 15
requires Java 7 or higher to run.

Note that building under Java 8 still has some known issues. It is strongly recommended
that you build and run under Java 7 until Java 8 has had enough time to be well-tested.

Core Updates

As always, many updates and cleanups have been made to the OpenNMS core, through refactoring,
addition of unit tests, and other code modernization.

A few subsystems have been updated to run properly under OSGi.

A large number of places where we were still using JDBC calls have been converted
to use our DAO infrastructure and Hibernate.

The OpenNMS ReST APIs now support CORS properly to aid in writing web applications that
consume or update OpenNMS data.

Events

New or updated trap definitions have been added for the following classes of devices:

Citrix NetScaler

Mikrotik RouterOS

OpenSSH syslog events

Procmail syslog events

Postfix syslog events

Siemens HiPath

Veeam Backup/Replication

Web UI and APIs

The Jetty container has been upgraded to use Jetty 8.

The entire web UI has been updated to use bootstrap themeing. While our initial
implementation was designed to match the existing OpenNMS UI as much as possible,
this now makes it MUCH easier to improve the UI more rapidly going forward.

Enhancement

Apply the auto-resize feature for the timeline charts (Issue NMS-7438)

Release 15.0.0

Release 15.0.0 is the latest stable release of OpenNMS. Alongside the usual enhancements and bug fixes, OpenNMS 15 gets a name (Horizon) and starts the process of finally modernizing the web UI. We have completely replaced our existing layout using Bootstrap. While it may look visually similar for now, this puts us on a footing to make better and more frequent UI changes going forward.

OpenNMS 14

Since OpenNMS 1.12, a large number of changes have occurred, including architectural
updates, major topology UI updates, a completely rewritten Linkd (called Enhanced Linkd),
and much more.

Licensing

As of OpenNMS 14, OpenNMS is now released under the [GNU Affero General Public License 3.0].
It is identical to the GPLv3 OpenNMS was previously licensed under, with the additional
caveat that users who interact with OpenNMS software over a network are entitled to receive
the source.

Java 7 and 8

OpenNMS 14 drops support for Java 6, which has been EOL’d for some time now. OpenNMS 14
requires Java 7 or higher to run.

Note that building under Java 8 still has some known issues. It is strongly recommended
that you build and run under Java 7 until Java 8 has had enough time to be well-tested.

Logging System Upgrade

Logging has been completely revamped in OpenNMS 14. The locations of various log output
are much more intuitive, and turning on DEBUG/TRACE for specific subsystems is simpler. The
old log4j.properties has been superseded by the log4j2.xml file.

Core Updates

As always, many updates and cleanups have been made to the OpenNMS core, through refactoring,
addition of unit tests, and other code modernization.

The embedded Karaf OSGi container has been updated to 2.4.0.

Many core OpenNMS modules are now capable of being loaded inside an OSGi container.

A large number of legacy Castor-based classes have been updated to use JAXB instead.

SNMP4J has been updated to version 2, which provides improved handling of SNMPv3, in
addition to a number of other bug fixes and improvements to SNMP handling.

JRobin graphing has had a number of graphical updates as well as bugfixes.

Events

New or updated trap definitions have been added for the following classes of devices:

Backup Exec

Broadcom

Dell

D-Link

Foundry

Intel (LAN adapters)

Konica

Trend Micro

Data Collection

New or updated collection definitions have been added for the following classes of
devices:

Foundry

Konica

Link Discovery

A much more efficient version of Linkd, called Enhanced Linkd (Enlinkd) has been
created. Traditionally, Linkd could be quite resource-intensive because it kept
large amounts of data in memory as it attempted to infer links between devices.
Enlinkd instead stores link information from each end separately and then correlates
them when it’s time to draw links on the topological maps. This is much less memory
intensive and keeps from using CPU until you are actually need link data.

Enlinkd can gather link information from:

Cisco Discovery Protocol (CDP)

Cisco VLAN Trunk Protocol (VTP)

MIB II 802.1D BRIDGE-MIB

MIB II ipNetToMediaTable

Intermediate-System-to-Intermediate-System (IS-IS)

Link Layer Discovery Protocol (LLDP)

Open Shortest Path First (OSPF)

Note that Enlinkd does not support IP Routes discovery, because it is difficult to
mine for correct data and sometimes ends up with false positives. The Linkd service
has not been removed in OpenNMS 14, so if you still need to generate link data based
on IP Routes discovery, you can re-enable Linkd in service-configuration.xml and
disable the Enlinkd service.

The configuration file for enhanced link scanning is enlinkd-configuration.xml.

Provisioning

You can now assign a foreign-source to discovered nodes by adding
foreign-source="foo" to the discovery-configuration tag in
$OPENNMS_HOME/etc/discovery-configuration.xml.

Categories are now handled better in provisiond, so they do not disappear and then
reappear during scan.

New provisioning adapter: opennms-snmp-hardware-inventory-provisioning-adapter
A provisioning adapter using the ENTITY-MIB for collecting hardware inventory while
doing a provisioning scan. For details, see [the Hardware Inventory wiki page].

In 1.12 we introduced the rescanExisting flag when performing an import. Previously
this would allow you to push nodes to Provisiond in batches and trigger imports, and it
would only import any new nodes that didn’t already exist in the database. In OpenNMS
14, this flag has been extended to have 3 choices:

true (default): Import all nodes in the requisition (and remove nodes no longer in
the requisition), then perform a scan to apply policies and additional detected
services to those nodes.

false: Import all new nodes in the requisition, skipping the scan phase.

dbonly: Import all nodes in the requisition (and remove nodes no longer in the
requisition), then skip the scan phase.

The Snmp Configuration by IP UI in the admin page has been improved and now supports SNMP v3 configurations.

Dashboard

A new dashboard (the "Ops Board") has been added. It allows you to create a custom UI
that cycles through interesting monitoring information. The different "boards" which
are shown are configurable in the admin page ("Ops Board Config Web UI").

The following dashlets are available:

Alarms (a list of alarms)

Alarm Details (a more detailed list of alarms)

Charts

Image (embed an arbitrary image)

KSC Report

Map (geographical maps)

RRD (RRD graph of your choice)

RTC (same as the front page availability view)

Summary (alarm trends by severity and UEI)

Surveillance

Topology (topology maps)

URL (embed an arbitrary URL)

Topology Maps

Per-user browser navigation and UI-selection history is now preserved.

Enhanced the topology view to include node and alarm data, synced with map selection.

Alarm, node, and link data can now auto-update without reloading the page.

The topology UI now supports search.

Links from Enhanced Linkd will be shown if it is enabled.

Many other bug fixes, performance updates, and visual enhancements.

Removals

The access-point-monitor and sms-reflector projects have been removed from the default
OpenNMS build, as they have not been used in production for quite some time, and
existed for very specific use cases.

The acl project has been removed as well. It was an unfinished attempt at implementing
ACLs in OpenNMS which are superseded by the [User Restriction Filters] feature first added
in OpenNMS 1.10.x.

Changelog

Release 14.0.3

Release 14.0.3 is the latest stable release of OpenNMS. It provides a few small fixes and enhancements over OpenNMS 14.0.2, and we believe we have truly squashed the wallboard memory leak this time. ;) It also includes an important security fix which affects all previous versions of OpenNMS for CVE-2015-0975, which can provide remote access to local system files. This upgrade is the STRONGLY recommended for all OpenNMS 14.x users. For an overview of the major changes since OpenNMS 1.12.x, see the What’s New in OpenNMS 14 page.

Enhancement

The Wallboard app makes OpenNMS unusable after a few days even if it is not used. (Issue NMS-7230)

Release 14.0.2

Release 14.0.2 is the latest stable release of OpenNMS. It provides a few small fixes and enhancements over OpenNMS 14.0.1, including a fix for a critical memory leak in the OpenNMS web UI. This upgrade is strongly recommended for all OpenNMS 14.x users. For an overview of the major changes since OpenNMS 1.12.x, see the What’s New in OpenNMS 14 page.

Release 14.0.1

Release 14.0.1 is the latest stable release of OpenNMS. It provides a few small fixes and enhancements over OpenNMS 14.0.0. For an overview of the major changes since OpenNMS 1.12.x, see the What’s New in OpenNMS 14 page.

Release 14.0.0

Release 14.0.0 is the latest stable release of OpenNMS. It would have been 1.14.0, but we have changed versioning conventions. There are a huge number of bug fixes and changes in this release since the last unstable version, 1.13.4. For an overview of the major changes since OpenNMS 1.12.x, see the What’s New in OpenNMS 14 page.

Bug

Release 1.13.2

Release 1.13.2 is the 3rd unstable release; it is a preview of what will eventually become the OpenNMS 1.14.x stable series.
It contains a large number of changes over 1.13.1, including collection updates, lots of refactoring, more topology UI enhancements, auto-acknowledge notification updates, Linkd updates, VMware graph enhancements, and many other small improvements.

The codename for 1.13.2 is Boston

Bug

Using the Sftp3gppXmlCollectionHandler affecting the XSLT pre processing. Both are not working together. (Issue NMS-6533)

ResourceDao.findTopLevelResources() is returning duplicated data because of storeByForeignSource (Issue NMS-6545)

Notifications are truncated at 4000 chars in database (Issue NMS-6562)

The SFTP Connection are not closed when an exception is thrown using 3GPP XML Collector (Issue NMS-6564)

Make visible the scheduled outages that are being executed. (Issue NMS-6558)

Release 1.13.1

Release 1.13.1 is the 2nd unstable release; it is a preview of what will eventually become the OpenNMS 1.14.x stable series.
It contains a large number of changes over 1.13.0, including Java 8 support, many core cleanups, support for running Camel and ActiveMQ in the OpenNMS Karaf container, MANY ReST-related cleanups for XML and JSON output, plus tons of other fixes and features.

Release 1.13.0

Release 1.13.0 is the first unstable release; it is a preview of what will eventually become the OpenNMS 1.14.x stable series.
It contains a number of enhancements, most notably GUI work in the topology UI, as well as some code cleanup and other updates that are too invasive to include in 1.12.

Release 1.12

Changelog

Release 1.12.9

Release 1.12.9 is the 10th in the stable 1.12 series of OpenNMS. It contains a number of important
fixes including handling jetty.xml upgrades better, and a fix for a bug in the rescanExisting flag when
provisioning. See What’s New in OpenNMS 1.12 for a general list of changes in the 1.12 series.

Enhancements

Asset page should not be in edit mode for requisitioned nodes (Issue NMS-6373)

If the HostResourceSwRunMonitor fails because of a timeout, the reason does not reflect it. (Issue NMS-6626)

Release 1.12.8

Release 1.12.8 is the 9th in the stable 1.12 series of OpenNMS.
It contains an important fix for a security issue that can expose files outside of the OpenNMS directory through the web interface.
See What’s New in OpenNMS 1.12 for a general list of changes in the 1.12 series.

The codename for 1.12.8 is John Petrucci

Bug

Release 1.12.7

Release 1.12.7 is the eighth in the stable 1.12 series of OpenNMS.
It contains a number of important fixes including a XSS vulnerability, and also introduces a potentially incompatible change to the way the web UI is configured.
For details on the web UI changes, see Changes to the Web UI Startup on the What’s New in OpenNMS 1.12 page.

Release 1.12.3

Release 1.12.3 is the fourth in the stable 1.12 series of OpenNMS.
It contains a critical bugfix to the upgrade tools added in 1.12.2, as well as a few small config updates.
See What’s New in OpenNMS 1.12.

Enhancements

Release 1.12.2

Release 1.12.2 is the third in the stable 1.12 series of OpenNMS.
It contains quite a few bug fixes and enhancements since the 1.12.1 release.
For a high-level overview of what has changed since OpenNMS 1.10, see What’s New in OpenNMS 1.12.

The codename for 1.12.2 is Liberace

Bug

Bean name with slashes must be escaped on jrb creation (Issue NMS-3485)

Release 1.12.1

Release 1.12.1 is the second in the stable 1.12 series of OpenNMS.
It contains a number of bug fixes and small enhancements since the 1.12.0 release.
For a high-level overview of what has changed since OpenNMS 1.10, see What’s New in OpenNMS 1.12.

Release 1.12.0

Release 1.12.0 is the first in the stable 1.12 series of OpenNMS.
It contains a number of bug fixes since the 1.11.94 release.
For a high-level overview of what has changed since OpenNMS 1.10, see http://www.opennms.org/wiki/What%27s_New_in_OpenNMS_1.12]What’s New in OpenNMS 1.12].

Release 1.11.93

Release 1.11.93 is the third release candidate for the OpenNMS 1.12 series.
It contains more bugfixes, and makes Provisiond the default for answering node newSuspect events, rather than Capsd.
To revert to the old behavior, set org.opennms.provisiond.enableDiscovery=false in opennms.properties.

JRobin 1.5.10 includes a new backend that can improve performance dramatically.
For safety’s sake, it is disabled by default, but users are encouraged on test systems to enable the new MNIO backend in rrd-configuration.properties and report issues.

Release 1.9.5

Release 1.9.5 is the latest in a series of development releases of OpenNMS.
This represents what will eventually become OpenNMS 1.10.0 when it is declared feature-complete and stable.