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 http://www.gnu.org/copyleft/fdl.html 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 http://issues.opennms.org.

What’s New in OpenNMS Horizon 24

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

Package Dependencies

The dependencies for the OpenNMS packages have changed such that the JDK is no longer a hard dependency of the opennms-core (RPM) or libopennms-java and libopennmsdeps-java (Debian/Ubuntu). This allows you to install OpenNMS without package management forcing an install of a particular JDK, if you wish to run an alternate JDK or a JDK installed from tarball rather than packaging.

The opennms packages are a convenience wrapper that depend on a JDK for runtime to give you a simple starting point if you don’t care which JDK you use.

Karaf Container

The embedded Karaf has been upgraded to 4.2.

This changes the default users.properties file. Ensure that the admingroup in ${OPENNMS_HOME}/etc/users.properties contains the role ssh. You can use the new default users.properties file for comparison.

Other notable Karaf and OSGi-related changes include:

  • We now support adding OSGi-capable code at runtime by putting a .kar file in the deploy/ directory and adding relevant features to boot files in etc/featuresBoot.d/.

  • The usage of config:edit has changed in some cases. This affects all configuration edits, where the configuration contains 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).

    For example, this set of configuration commands:

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

    …​should now be written as:

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

Flows

Flows Grouped By Conversation

Flows are now grouped by conversations using applications instead of ports. This changes the way statistics about flows are presented and grouped.

Thus, 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'] + ',\"' + ((Objects.compare(ctx._source['netflow.src_addr'], ctx._source['netflow.src_addr'], String::compareTo) < 0) ? ctx._source['netflow.src_addr'] : ctx._source['netflow.dst_addr']) + '\",\"' + ((Objects.compare(ctx._source['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": {}
  }
}
EOF
Telemetryd Configuration Format Change

Since we have added support for more dynamic telemetryd configurations to support more complex listeners and adapters, the configuration format for telemetryd has changed.

The new configuration defines listeners containing parsers and queues containing adapters which are linked by the queues name.

For example, this old configuration:

<telemetryd-config>
  <protocol name="Netflow-5" description="Listener for Netflow 5 UDP packets" enabled="false">
    <listener name="Netflow-5-UDP-8877" class-name="org.opennms.netmgt.telemetry.listeners.udp.UdpListener">
      <parameter key="port" value="8877"/>
    </listener>

    <adapter name="Netflow-5-Parser" class-name="org.opennms.netmgt.telemetry.adapters.netflow.v5.Netflow5Adapter">
    </adapter>
  </protocol>
</telemetryd-config>

…​should now be written as:

<telemetryd-config>
  <listener name="Netflow-5-UDP-8877" class-name="org.opennms.netmgt.telemetry.listeners.UdpListener" enabled="false">
    <parameter key="port" value="8877"/>

    <parser name="Netflow-5-Parser" class-name="org.opennms.netmgt.telemetry.protocols.netflow.parser.Netflow5UdpParser" queue="Netflow-5" />
  </listener>

  <queue name="Netflow-5">
    <adapter name="Netflow-5-Adapter" class-name="org.opennms.netmgt.telemetry.protocols.netflow.adapter.netflow5.Netflow5Adapter" enabled="false">
    </adapter>
  </queue>
</telemetryd-config>

As you can see, the listeners become independent elements which contain parsers whereas the protocols are renamed to queues. Each parser must reference a queue by name to define which adapters are used to pick up the parsed data.

In addition, the listener configuration for minions has changed. The new minion configuration looks like the following and adapts the same set of structural changes:

admin@minion()> config:edit --alias Netflow-5-UDP-8877 --factory org.opennms.features.telemetry.listeners
admin@minion()> config:property-set name Netflow-5-UDP-8877
admin@minion()> config:property-set class-name org.opennms.netmgt.telemetry.listeners.UdpListener
admin@minion()> config:property-set parameters.port 8877
admin@minion()> config:property-set parser.0.name Netflow-5-Parser
admin@minion()> config:property-set parser.0.queue Netflow-5

Plugins, Parsers, and Services

  • Cassandra JMX: The cassandra30x.xml datacollection config for thread pool metrics has been modified to be of type counter rather than type gauge. If you are using RRD or JRobin storage, you will need to delete any .jrb or .rrd files with both path_request and CurrentlyBlockedTasks in their filename (eg, org_apache_cassandra_metrics_type_ThreadPools_path_request_scope_MutationStage_name_CurrentlyBlockedTasks.jrb).

  • Pollerd and Collectd: Additional attributes for thread pool graphs have been added to the Pollerd and Collectd mbeans. If you are using storeByGroup=true with RRD or JRobin, you will need to delete the OpenNMS_Name_Pollerd and OpenNMS_Name_Collectd .jrb or .rrd files and let them be reinitialized. Newts and storeByGroup=false should be unaffected.

  • 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.

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

  • Plugins: The Plugin Manager is no longer distributed with OpenNMS. Features or bundles should be installed via the Karaf Shell.

Removed from Horizon 24

  • The Centric Trouble Ticketer plugin has been removed.

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

  • The remote poller map has been removed.

Developer Considerations

  • 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 now follow 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

New Features and Improvements

Correlation (ALEC, formerly OCE/Sextant)

The correlation feature introduced in Horizon 23 has been vastly improved and given a new name: ALEC (Architecture for Learning Enabled Correlation). Detailed documentation is available at the ALEC site.

It has a ton of bugfixes, as well as a host of new features, including:

  • Smart propagation of acknowledgements.

  • Support for embedding directly in OpenNMS’s Karaf.

  • ML-guided alarm correlation using Tensorflow.

  • APIs for user feedback training, including root cause (support for feedback will be a part of a future Helm release)

  • The web UI has been updated to show and filter situations in the alarm browser, and outstanding situations show on the front page.

Events and Alarms

  • The event correlator now supports a default parameter on <assignment> tags as a fallback when a value cannot be generated.

  • Event XML files now support an optional <priority> tag to allow easier customization/overriding of default events.

  • Syslogd can now be optionally configured to include the raw syslog message in resulting events as a parameter.

Datacollection, Thresholding, and Reporting

  • ssCpuRawSteal, ssCpuRawGuest, ssCpuRawGuestNice, and ssCpuNumCpus are now supported from Net-SNMP agents version 5.7.3 and higher.

  • A number of new views have been added to the database to facilitate SQL-based reporting:

    • node_categories: Nodes with categories

    • node_alarms: Alarm status from nodes and allow filtering on categories

    • node_outages: Outages of nodes and allow filtering on categories

    • node_ip_services: Denormalise Nodes and IP services

  • SnmpCollectorNG: An alternative to the SnmpCollector has been added which implements the internal CollectionSet APIs and is meant to eventually replace the existing SnmpCollector.

Karaf Command Line

A number of Karaf commands have been added or updated:

  • enlinkd:generate-topology: generates a test topology

  • enlinkd:delete-topology: delete generated topology

  • events:show-event-config: dumps events to XML (including those read from eventconf.xml as well as OSGi plugins that provide event configuration)

  • kafka-producer:push-topology-edges: push topology edges to a Kafka topic

  • meta:test: test a node/interface metadata query

Node and Interface Metadata

There is now experimental support for associating arbitrary metadata with nodes and interfaces. A full user-facing interface to configuring metadata in the provisioning UI should be available by Horizon 25.

In this release, there is no default metadata being collected, but there is a ReST interface to manipulate metadata, and metadata can be assigned to nodes and interfaces in requisitions.

For details on using the metadata APIs, see the Admin Guide and the Developer Guide.

Provisioning

A new adapter (WsManAssetProvisioningAdapter) has been added which can update asset information during provisioning based on WS-Man data. (Note: It does not currently support running on Minions.)

ReST

  • Measurements: Resource metadata is now returned along with measurements results.

  • Topology: User Defined Links (/opennms/api/v2/userdefinedlinks)

    Support was added 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.

Topology and Business Services

  • Enlinkd and other topology information have been refactored into a more generalized graph service that also includes other information like ALEC alarm and situation topology. This also means that topology data can be sent to Kafka alongside nodes, events, and alarms.

  • Performance: Huge improvements have been made to performance in Enhanced Linkd, including responsiveness of the Topology web UI.

  • BSM: Applications can now be added as an edge to a Business Service. This allows you to aggregate IP services.

Web UI

The web UI has gone through a major refresh. The HTML has been simplified, the UI wastes less space, and the login page features a fancy new look featuring our mascot, Ulf. ;)

  • Notifications: Browser notifications are now supported in the Web UI. 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.

  • Sessions: Browser session timeout is now disabled by default.

Geocoder Services

The Geocoder Service_s have been reworked and must be re-configured. The recommended way for this is to delete all etc/org.opennms.features.geocoder*.cfg files and Navigate the Configure Geocoder Services page from the Admin page and configure the _Geocoder Service of your choice.

Other Core Changes

Support was added for OpenTracing distributed tracing for RPC/Sink requests.

Developer APIs

A new API ("OpenNMS Integration API") has been introduced that presents a simplified interface to a number of integration points including subscribing to events and alarms, writing custom detectors and pollers, and more.

Changelog

Release 24.1.2

Release 24.1.2 is the latest stable release of OpenNMS. It contains bug fixes for flow processing, Debian package startup, the minion UI, and more.

For a high-level overview of what’s changed in OpenNMS 24, see What’s New in OpenNMS 24.

The codename for 24.1.2 is Watson.

Bug
  • HasFlows is not set when node was provisioned after first flow was received (Issue NMS-12106)

  • Wrong Wording for Empty Requisition (Issue NMS-12156)

  • Init script on Debian/Ubuntu does not start (Issue NMS-12161)

  • Minion not showing label correctly and label cannot be edited (Issue NMS-12164)

Enhancement
  • Add a command to show configuration diffs (Issue NMS-12129)

Release 24.1.1

Release 24.1.1 is the latest stable release of OpenNMS. It contains bug fixes to WS-Man, the web UI, flows, and more as well as a few small enhancements.

For a high-level overview of what’s changed in OpenNMS 24, see What’s New in OpenNMS 24.

The codename for 24.1.1 is GLaDOS.

Bug
  • WsMan Asset Adapter config contains an invalid resourceUri (Issue NMS-10682)

  • WsMan Asset Adapter should handle WQL filters returning more than one result (Issue NMS-10683)

  • WS-Man datacollection fail with OpenJDK11 (Issue NMS-10713)

  • Angular requests do not handle 401 responses from the OpenNMS backend (Issue NMS-10719)

  • sFlow: Type mismatch of VLAN value (Issue NMS-10775)

  • Timeline missing for service names including slashes (Issue NMS-12097)

  • CME in ProxyFilter (Karaf Web Bridge) (Issue NMS-12116)

  • Remove hack from opennms-spring-extender to expose ServiceRegistry (Issue NMS-12122)

  • Installing Minion on Debian with OpenJDK 11 installed tries to install Oracle JDK 8 (Issue NMS-12119)

  • Opennms 24.1.0 on Ubuntu 19.04 won’t install because of PostgresSQL 11 (Issue NMS-12121)

Enhancement
  • Increase logging clarity for flow processing (Issue NMS-10723)

  • Remove circleci build number as tags from container images (Issue NMS-12098)

  • Provide a mechanism to collect the count of objects collected by a wsman enumeration (Issue NMS-12115)

Release 24.1.0

Release 24.1.0 is the latest stable release of OpenNMS. It contains a bunch of bug fixes and a few enhancements, including support for OpenTracing in the sink API and a rework of geocoding services.

For a high-level overview of what’s changed in OpenNMS 24, see What’s New in OpenNMS 24.

The codename for 24.1.0 is J.A.R.V.I.S..

Bug
  • Thresholds should work without restart when putting nodes into categories (Issue NMS-9811)

  • When editing a surveillance category from Admin flow, lists of nodes are not sorted by node label (Issue NMS-10654)

  • health:check command times out when a health check command gets stuck (Issue NMS-10667)

  • Vaadin bundles stuck intermittently stuck in "Waiting" state (Issue NMS-10668)

  • Table in "Manage Minions" page fails to load (Issue NMS-10670)

  • Default load threshold contains caluculation error (Issue NMS-10671)

  • Can not delete node due to database table constraint (Issue NMS-10674)

  • Missing Indication of Sync Needed for Requisitions (Issue NMS-10675)

  • .rpmnew, .rpmsave, and .dpkg-dist files not erroring out properly (Issue NMS-10676)

  • Some config files should be marked %config (rather than %config(noreplace)) in RPMs (Issue NMS-10677)

  • Memory Leak on Drools while reloading config (Issue NMS-10678)

  • Node detail page renders with no content when invalid node ID specified (Issue NMS-10679)

  • Installing the opennms package installs Oracle JDK 8 instead of OpenJDK 11 on Ubuntu (Issue NMS-10680)

  • Apparent memory leak in JMX collector, possibly restricted to "weird" JMX transports (Issue NMS-10684)

  • Install guide for Java versions is misleading (Issue NMS-10688)

  • Java configuration is ignored on Ubuntu/Debian (Issue NMS-10693)

  • CVE-2018-20433: XXE Vulnerability in c3p0 < 0.9.5.3 (Issue NMS-10694)

  • Memory leak in WS-Man (Issue NMS-10696)

  • EditInRequisitionIT flapping (Issue NMS-10698)

  • Jetty HTTPS selectors can become unresponsive following CancelledKeyException (Issue NMS-10701)

  • Reflected XSS vulnerability in notification/detail.jsp and outage/detail.htm (Issue NMS-10707)

Enhancement
  • Enable extraction of match groups from regex matches in Event.Mask.Varbind.Vbvalue (Issue NMS-10626)

  • Tag "root cause" alarm when providing feedback (Issue HZN-1492)

  • Rework the GeocoderService-Implementations (Issue HZN-1520)

  • Meta-Data Documentation Format Wrong (Issue HZN-1557)

  • Add OpenTracing support for Sink API (Issue HZN-1558)

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 machine-learning-guided correlation of alarms, and many improvements to Netflow/IPFIX/sFlow support.

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 Hal 9000.

Epic
  • Java 9 Support (Issue HZN-1078)

  • Enhanced Alarm Life Cycle and Service Layer (Issue HZN-1317)

  • Topology and model enhancements for correlation (Issue HZN-1320)

Bug
  • ROLE_PROVISION doesn’t work on the UI when the ACL feature is enabled. (Issue NMS-9786)

  • Performance problems with the Topology Map on large networks (Issue NMS-10369)

  • Search on KSC Reports page in WebUI does not work (Issue NMS-10416)

  • Wrong data type for Cassandra Thread Pool performance metrics (Issue NMS-10420)

  • broken xml code in foreign source/imports is not being detected (Issue NMS-10426)

  • Minion Status showing wrong in Manage Minions and service minion status out put is empty (Issue NMS-10435)

  • Use MoreObjects.ToStringHelper instead of Spring ToStringCreator (Issue NMS-10455)

  • Alarm list pagination broken with situations (Issue NMS-10461)

  • Wrong time in 'last' column for related alarms when viewing situation details (Issue NMS-10462)

  • Cleared situations show up on home page (Issue NMS-10463)

  • Track (flow) conversations by application instead of src/dst port (Issue NMS-10497)

  • Health Check should not fail for JMS connectivity if Kafka is enabled both for RPC/Sink (Issue NMS-10499)

  • Node page very slow to load for nodes with more than 1000 events (Issue NMS-10506)

  • Situation Severity is not adjusted downward as related alarms clear (Issue NMS-10522)

  • Cross-Site Scripting: Reflected (Issue NMS-10546)

  • Cross-Frame Scripting (Issue NMS-10547)

  • Typo in Northbound registerNorthnounders method (Issue NMS-10549)

  • JDBC via Minion fails to find 3rd party classes (Issue NMS-10559)

  • Not able to install sentinel-core feature on sentinel container (Issue NMS-10561)

  • add runjava unit tests for detecting the correct java in a range (Issue NMS-10565)

  • Browser crashes when browser notifications are enabled and OpenNMS gets unreachable (Issue NMS-10567)

  • Leaking logs from HELM performance data source requests to OpenNMS standard out (Issue NMS-10568)

  • Tables do not space columns out correctly (col-* is no longer supported) (Issue NMS-10569)

  • Alarm details page has problem with footer (Issue NMS-10570)

  • The categories card on the node details page has no spacing above the bottom border (Issue NMS-10571)

  • Appears to be extra whitespace above bottom border on cards in the Admin page (Issue NMS-10572)

  • The table on the Node list page has no cell borders (Issue NMS-10573)

  • Severity tables do not show cell border (Issue NMS-10574)

  • KSC Create Custom Graph Prefabricated Report selection is too small and wraps (Issue NMS-10575)

  • Documentation has not addressed refactoring of Single-Port flow listener (Issue NMS-10576)

  • Start with the start script throws bad substitution error (Issue NMS-10579)

  • Stop gracefully when running in container environment (Issue NMS-10581)

  • LazyInitializationException when using ticketing and alarm history in Elastic (Issue NMS-10594)

  • @PreserveOnRefresh not working for embedded Vaadin UIs (Issue NMS-10601)

  • Incorrect date formatting in send-event.py (Issue NMS-10602)

  • Fix ack Event Supporting AckAction (Issue NMS-10603)

  • The MIB Compiler is unable to parse certain MIBs (Issue NMS-10609)

  • Button arrangement on alarm detail page is broken (Issue NMS-10612)

  • Sticky and Journal Memo icons look out of place (Issue NMS-10613)

  • Alarm Details page is not rendering related alarms and parent situations correctly (Issue NMS-10614)

  • Notification switcher is broken (Issue NMS-10615)

  • Init script errors when starting Sentinel on RHEL 6.6 (Issue NMS-10619)

  • KSC resource selection is not shown/visualized (Issue NMS-10623)

  • Errors in Minion startup script (Issue NMS-10625)

  • Configuration directives in /etc/sysconfig/sentinel are not being applied (Issue NMS-10631)

  • The navigation sidebar on the resource graph page is not working after the Bootstrap 4 changes (Issue NMS-10632)

  • Allow Java 8-11 by default (Issue NMS-10638)

  • OpenNMS Horizon installs OpenJDK 1.8.0 even OpenJDK 11 is already installed (Issue NMS-10639)

  • DNSResolutionMonitor incorrectly sets port number (Issue NMS-10642)

  • The evaluation layer that helps sizing Cassandra is broken (Issue NMS-10646)

  • ArrayIndexOutOfBoundsException during error handling in SNMP MIB Compiler (Issue NMS-10647)

  • Vaadin geographical maps broke in Chrome (Issue NMS-10650)

  • logging methods have incorrect number of arguments. (Issue NMS-10651)

  • When editing a surveillance category from Admin flow, lists of nodes are not sorted by node label (Issue NMS-10654)

  • bin/runjava tries to evaluate an empty value as a candidate JVM pathname (Issue NMS-10663)

  • Karaf shell history thrown out with bathwater on upgrade (Issue NMS-10664)

  • "Change Icon" In Topology Map Fails (Issue HZN-1333)

  • Situation model - prevent cyclic graphs (Issue HZN-1398)

  • Prevent alarms from being correlated again after being removed from a situation (Issue HZN-1400)

  • Older Alarms will Not Un-Acknowledge Situations (Issue HZN-1426)

  • Clearing a situation should clear all the related alarms (Issue HZN-1439)

  • Telemetry UdpListener - False Positive Log Message Condition (Issue HZN-1480)

  • Templates are dropped if intermixed with data in wrong order (Issue HZN-1484)

  • Minion - RPM Upgrade does not clear out .m2 local directory (Issue HZN-1485)

  • ON DELETE CASCADE missing in Metadata database changelog (Issue HZN-1499)

  • Webapp fails to start on Java 9 (Issue HZN-1500)

  • Related alarms are not deleted from situations (Issue HZN-1503)

  • Meta-data gets deleted when requisition is modified in UI (Issue HZN-1511)

  • Random compilation failures in opennms-base-assembly (Issue HZN-1533)

Enhancement
  • Update to Vaadin to version 8.5.2 (Issue NMS-7797)

  • "Event text contains" should search beyond eventlogmsg (Issue NMS-8444)

  • Create Topology Service Updates in enlinkd (Issue NMS-9273)

  • DHCP monitoring issue (Issue NMS-9806)

  • Alarm Clear Trigger query language performance improvement (Issue NMS-9893)

  • Extend system statistic metrics from UCD SNMP agents (Issue NMS-10159)

  • Improve Collectd and Pollerd’s ThreadPool graphs (Issue NMS-10357)

  • Enlinkd and Topologies under features (Issue NMS-10375)

  • Support provisioning asset information via wsman (Issue NMS-10404)

  • Allow Applications to be added as an edge to a Business Service (Issue NMS-10405)

  • Add SQL views to simplify SQL based reporting (Issue NMS-10418)

  • Handle Flapping Tests in Bamboo More Gracefully (Issue NMS-10424)

  • Remove RemotePollerMap (Issue NMS-10440)

  • Enhance onms-topology-generator to support isi, ospf, lldp protocols (Issue NMS-10444)

  • Use the DaemonService to reload a daemon instead of the DaemonNameEnum (Issue NMS-10449)

  • Meassure and improve performance of Interface loading and mapping (Issue NMS-10459)

  • Event configuration should be able to match event parameters by key & value (Issue NMS-10465)

  • Use a utility function instead of Integer.getInteger (Issue NMS-10477)

  • Meassure and improve performance of Cdp/Lldp/IsIsElement loading (Issue NMS-10487)

  • linkDown alarms are not generated for unknown ifIndex values (Issue NMS-10495)

  • Update flow classification rules to match either the src or dst ports (Issue NMS-10496)

  • Make sure toString methods are implemented in a consistent way (Issue NMS-10500)

  • Create Application Icon for BSM Topology (Issue NMS-10502)

  • DhcpMonitor does not work on Minion (Issue NMS-10504)

  • Add karaf logging configuration for Minion/Sentinel (Issue NMS-10505)

  • Disable session timeout by default (Issue NMS-10511)

  • refactor/clean up opennms script (Issue NMS-10518)

  • Remove unused Topology Plugin "org.opennms.features.topology.plugins.ssh" (Issue NMS-10527)

  • Make Topology Creator as Karaf command available (Issue NMS-10533)

  • Upgrade to Karaf 4.2.3 (Issue NMS-10539)

  • Upgrade PostgreSQL JDBC driver to 42.x (Issue NMS-10543)

  • Upgrade liquibase to 3.x (Issue NMS-10557)

  • Update default Syslog parser to use the RadixTreeSyslogParser (Issue NMS-10566)

  • Add node/interface/service details as scopes to Meta-DSL (Issue NMS-10598)

  • Improve test coverage of SNMPv3 traps and informs (Issue NMS-10630)

  • Allow the "step" (or interval) to be referenced from a Measurement API expression (Issue NMS-10633)

  • IFTTT feature should also support BSM alarms (Issue NMS-10640)

  • add isAcknowledged to the alarm model for the rest interface (Issue NMS-10653)

  • remove centric troubleticket plugin (Issue NMS-10656)

  • Support Browser Notification API (Issue HZN-956)

  • Upgrade the maven-war-plugin (Issue HZN-1231)

  • Netflow - Support multiple protocols with a single UDP port (Issue HZN-1270)

  • Forward enlinkd link data via Kafka (Issue HZN-1393)

  • UI enhancements for handling Situations (Issue HZN-1394)

  • The alarm_situations table should contain a timestamp (Issue HZN-1397)

  • Ticketing support for situations (Issue HZN-1404)

  • Increment Severity of Situations (Issue HZN-1417)

  • OpenNMS Integration API (Issue HZN-1418)

  • Add support for prioritizing the event definitions (Issue HZN-1419)

  • Index alarms and alarm history in Elasticsearch (Issue HZN-1420)

  • Remove NCS components and tables from source (Issue HZN-1422)

  • Migrate bootstrap 3 to bootstrap 4 and revert custom stylings (Issue HZN-1423)

  • Refactor alarmd scenario & test driver so that it can be used by other modules (Issue HZN-1429)

  • Update OpennmsKafkaProducer to handle alarm feedback (Issue HZN-1431)

  • Update OCE OpennmsDatasource to subscribe to alarm feedback topic (Issue HZN-1432)

  • Update integration api to handle alarm feedback without Kafka (Issue HZN-1433)

  • Remove feedback submission actions from Opennms so that OCE is the authoritative source of situation changes (Issue HZN-1435)

  • Packaging OpenNMS plugins (Issue HZN-1436)

  • Create tool to audit syslog message parsing (Issue HZN-1440)

  • Send inventory to OCE without Kafka using integration API (Issue HZN-1441)

  • Update the SnmpCollector to use the CollectionSetBuilder (Issue HZN-1442)

  • Improve performance of DroolsAlarmContext alarm snapshot handling (Issue HZN-1449)

  • Prevent CME in OSGI service binding (Issue HZN-1451)

  • POC of a Graph Service which tackles all existing issues with the current Topology appraoch + allows exposing graphs via Rest (Issue HZN-1452)

  • Update startup script to bootstrap with Java 9+ (Issue HZN-1455)

  • Use mapstruct for mapping to protobuf objects in the kafka producer (Issue HZN-1459)

  • Add option to syslogd to include the raw syslog message as a parameter in the generated event (Issue HZN-1460)

  • View event configuration definitions from the Karaf shell (Issue HZN-1461)

  • Upgrade Elasticsearch test server to use v6.5.x (Issue HZN-1467)

  • Remove features-maven-plugin from the build (Issue HZN-1468)

  • Leverage new topology generator to test the LinkdTopologyProvider (Issue HZN-1469)

  • Node Meta-Data / KVP Support (Issue HZN-1474)

  • Extend topology generator and test suite to support bridge topology (Issue HZN-1475)

  • Upgrade CXF to 3.2.x or greater (Issue HZN-1478)

  • Enable instant refresh in topology generator based on the recent changes in the topology code (Issue HZN-1479)

  • Show managed object type and instance on alarm details page (Issue HZN-1481)

  • Update the topology generator so that topology is sent to the TopologyDAO (Issue HZN-1482)

  • Update topology code to make the topology that is sent via Kafka more convenient for consumption (Issue HZN-1483)

  • Maximum number of services in node details page should be configurable (Issue HZN-1487)

  • Use node category membership in Drools rules for alarms (Issue HZN-1489)

  • User defined links (Issue HZN-1498)

  • Enhance RadixTreeSyslogParser to ignore specific characters (Issue HZN-1504)

  • Remove PluginManager (Issue HZN-1506)

  • Remove unused indexNew.jsp files (Issue HZN-1512)

  • circleci packaging strategy (Issue HZN-1513)

  • Add OpenTracing support for Camel (JMS) RPC (Issue HZN-1516)

  • Add ability to provide custom tags to OpenTracing by RPC Modules (Issue HZN-1519)

  • Wrap Sink Message in Protobuf (Issue HZN-1529)