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.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 major changes in OpenNMS 17.

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.