- 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.
- 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.shand 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.sqlto 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/etcto 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=falsein a file in
- IBM Tivoli Event Integration Facility: Support has been added to bridge EIF events into OpenNMS Horizon. (more details)
- Asset Topology Provider: The Asset Topology Provider generates a GraphML topology based on node metadata including asset fields. (more details).
- 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.
- 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.
- ActiveMQ: 5.10.0 → 5.13.3
- Camel: 2.14.4 → 2.16.5
- Log4J: 2.5 → 2.8.2
camel-nettyplugin has been superceded by the
- Collection APIs have been refactored and cleaned up immensely to support the Minion changes documented above.
- JSON datacollection now supports properly handling responses that return an array.
- Path handling for collection resources has been improved.
- 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
- 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.xmlthat 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.