Copyright © 2004-2018 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-2018 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

System Requirements

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

  • 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": {}

Manage Daemons Page

It is now possible to see a daemon's status and also reload its configuration via the "Manage Daemons" page from the Admin menu.
To support this each damon has now a `reloadable` flag in the `service-configuration.xml` indicating if the daemon can be reloaded from the UI.
If this value is not set, it defaults to `false`.
Besides this each daemon can now be reloaded using the `` UEI (in the past some used a different UEI).

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.