Copyright © 2004-2019 The OpenNMS Group, Inc.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts and with no Back-Cover Texts. A copy of the license is available at OpenNMS is the creation of numerous people and organizations, operating under the umbrella of the OpenNMS project. The source code is published under the GNU Affero GPL, version 3 or later and is Copyright © 2002-2019 The OpenNMS Group, Inc.

The current corporate sponsor of OpenNMS is The OpenNMS Group, which also owns the OpenNMS trademark.

Please report any omissions or corrections to this document by creating an issue at

What’s New in OpenNMS Horizon 24

  • Added support for browser notifications to notifd. The browser notification can be added to a notification path and desktop notifications will pop-up for currently logged in users if a notice is delivered.

  • Added support for user defined links (UDLs) in the Enhanced Linkd topology. Users may now programitically (using the REST API) create "manual" links between node and have them appear in the topology UI.

System Requirements

  • Java 8 through 11: OpenNMS Horizon 24 requires at least Java 8 as the runtime environment and now supports running on JDK 11 as well. To run Horizon 24, we recommend the most recent version of Oracle JDK 8 for your platform, or the latest OpenJDK 11.

  • PostgreSQL 9 or higher: Horizon 24 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.

Breaking Changes

  • Flows are grouped by conversations using applications instead of ports. This changes the way statistics about flows are presented and grouped. Therefore the elasticsearch storage has changed and old data must be converted to the new format. To adopt existing flows, the following command can be used (please be aware that this can take a long time and put your CPU and disk under high stress):

curl -v -X POST -H 'Content-Type: application/json' "http://${ES_HOST}:${ES_PORT}/netflow-*/_update_by_query?refresh=true" -d @- << EOF
  "script": {
    "lang": "painless",
    "source": "ctx._source['netflow.convo_key'] = '[\"' + ctx._source['location'] + '\",' + ctx._source['netflow.protocol'] + ',\"' + ((['netflow.src_addr'], ctx._source['netflow.src_addr'], String::compareTo) < 0) ? ctx._source['netflow.src_addr'] : ctx._source['netflow.dst_addr']) + '\",\"' + ((['netflow.src_addr'], ctx._source['netflow.src_addr'], String::compareTo) < 0) ? ctx._source['netflow.dst_addr'] : ctx._source['netflow.src_addr']) + '\",' + ((ctx._source['netflow.application'] != null) ? ('\"' + ctx._source['netflow.application'] + '\"') : 'null') + ']'"
  "query": {
    "match_all": {}
  • Dhcpd: The Dhcpd plugin (and its configuration) was removed in favor of a Minion-capable implementation. The new DhcpMonitor options can be set in the poller-configuration.xml file.

  • The default parser used for Syslog messages has been switched from the CustomSyslogParser to the RadixTreeSyslogParser.

New Features

Other Improvements

  • list of notable issues not covered elsewhere


Release 24.0.0

Release 24.0.0 is the latest stable release of OpenNMS. It contains a large number of bug fixes and enhancements, most notably adding support for real-time telemetry flow processing. For a high-level overview of what’s changed in OpenNMS 24, see What’s New in OpenNMS 24.

The codename for 24.0.0 is TODO NOT DEFINED YET.

Breaking Changes
  • The NCS-Alarm page and the NCS-Topology-Plugin have been removed. See issue HZN-1422.

  • The usage of config:edit may be changed. This affects all configuration edits, where the configuration consists a -, e.g. org.opennms.features.telemetry.listeners-udp-50003. See "Karaf configuration Command changed" for more details.

  • The Plugin Manager is no longer available. Features or bundles should be installed via the Karaf Shell.

  • The HttpService can no longer be consumed. This will only affect custom implementations of HTTP Servlets and Resources, but only if they are exposed via httpServices.register(…​). If you need those, please expose the according services via the OSGi Service Registration. Refer to the OSGi Http Whiteboard Specification for more details.

  • Exposing Servlets follow now the OSGi Specification. Refer to the OSGi Http Whiteboard Specification for more details.

  • Properties to expose Vaadin Applications have changed:

    • init.widgetset becomes servlet.init.widgetset

    • alias becomes osgi.http.whiteboard.servlet.pattern

  • We upgrade the Karaf Container to 4.2.3 and with that, the have changed. Ensure that the admingroup in ${OPENNMS_HOME}/etc/ contains the role ssh. If unsure here is the default one.

Karaf Configuration Command changed

In 24.0.0 we updates to a newer version of Apache Karaf. With that the config:edit command syntax changed in some cases. This affects all configuration edits, where the configuration consists a -, e.g. org.opennms.features.telemetry.listeners-udp-50003. If you are using Minion or Sentinel, you will most likely be affected (e.g. for Telemetry Listeners/Adapters).

The old format:

config:edit org.opennms.features.telemetry.listeners-udp-50003
config:property-set key value

The new format

config:edit --alias udp-50003 --factory org.opennms.features.telemetry.listeners
config:property-set key value