OpenNMS Meridian Development Team

Tarus Balog <tarus@opennms.org>

David Hustace <david@opennms.org>

Benjamin Reed <ranger@opennms.org>

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 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-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 http://issues.opennms.org.

OpenNMS Meridian 2018

System Requirements

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

  • PostgreSQL 9: Meridian 2018 requires PostgreSQL 9.x, version 9.2 or higher.

What’s New in Meridian 2018

The biggest addition in Meridian 2018 is official support for the Minion. Minion is an agent-like tool for remote monitoring isolated networks as if OpenNMS could reach them locally.

On top of that, there have been many smaller improvements and enhancements since Meridian 2017.

Meridian 2018 roughly matches the feature set available in Horizon 21 and parts of Horizon 22.

Important Upgrade Notes
  • 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=false in a file in opennms.properties.d.

  • Event parameters have been moved to their own table, rather than being embedded (preformatted) in the events table. If you have a large number of events and/or event parameters in your database, the conversion while running install may take as long as an hour or even more. It is recommended that you archive and delete old events you do not need anymore before upgrading.

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

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

  • Property format change of opennms.alarmTroubleTicketLinkTemplate: Originally the opennms.alarmTroubleTicketLinkTemplate defined in $OPENNMS_HOME/etc/opennms.properties requires the full <a href="…​">${id}</a> link to be configured. This is changed to the ticketer system url, e.g. https://issues.opennms.org/browse/${id} instead of <a href="https://issues.opennms.org/browse/${id}">${id}</a>. If the opennms.alarmTroubleTicketEnabled is true then the opennms.alarmTroubleTicketLinkTemplate must be updated as well in order to not break the link to an external ticketing system on the Alarm Details Page.

  • Event parameters: There are a few side-effects of the event parameter changes.

    • When you view or retrieve an alarm it will always have the parameters of the newest event associated with it.

    • Vacuumd no longer honors the add-all-parms attribute on an action-event.

  • Changes to TCPAddress and UDPAddress format in eventd-configuration.xml: When Eventd was converted to use Camel under the covers, the format for listening on all interfaces changed from a wildcard (*) to 0.0.0.0. Note that despite looking like an IPv4 format, the JVM interprets 0.0.0.0 as listening on all interfaces, IPv4 and IPv6.

New Features
  • Minion: OpenNMS Meridian now supports running Minions.

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

  • ReST Updates: A new experimental ReST API (/opennms/api/v2) has been enabled which supports JEXL.

  • The topology UI now supports scriptable vertex status.

  • Alarm Northbounders: There are new alarm northbounders for running arbitrary BSF scripts or forwarding to Drools.

  • Web UI: It is now possible to customize the date format used in the UI. You can configure it by overriding the org.opennms.ui.datettimeformat property in opennms.properties.

  • Hawtio: Hawtio is now included as an optional webapp package (opennms-webapp-hawtio) for convenience.

  • IFTTT: Support has been added for triggering IFTTT events based on alarms.

Events

New or updated trap definitions have been added for the following classes of devices:

  • IBM EIF

  • IETF DLSW

  • IETF DOCSIS

  • Other IETF traps

Other Improvements
  • The Karaf OSGi container has been upgraded from 2.x to 4.1.5.

  • The IPLIKE C and Pl/pgsql versions have been cleaned up and normalized to work the same between implementations.

  • Many ActiveMQ/Camel/Kafka/etc. RPC-related APIs have been cleaned up and improved.

  • Much of the data collection infrastructure has been updated and cleaned up as part of adding and improving Minion support.

  • Asset addresses are now resolved to coordinates during provisioning, rather than at runtime.

  • A number of improvements have been made to RADIUS support.

  • It is now possible to reload Drools configuration without restarting OpenNMS.

  • Many improvements were made to Enlinkd, especially in the bridge discovery code.

  • Drools has been updated to 7.x. It should be backwards compatible with existing 6.x-based Drools configurations.

  • Many other small enhancements and fixes for the topology UI.

Release Meridian-2018.1.5

Release 2018.1.5 is an update to Meridian 2018.1.4. It contains a number of bug fixes including fixes for sending notifications for events without associated nodes, XSS issues, and more. It also includes a number of performance improvements and and update to the latest Jetty web server framework.

The codename for 2018.1.5 is Fresh breeze.

Bug
  • JDBC collector event reason provides no useful information (Issue NMS-9633)

  • syslog events are creating notifications and disregarding rules in place (Issue NMS-10486)

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

  • SNMP configuration UI should select location "Default" by default, not the first location alphabetically (Issue NMS-10514)

  • Wallboard URLs with board name should be permalinks, but return "Nothing to display" instead (Issue NMS-10515)

  • Event parameters table have strong limits for the columns (Issue NMS-10525)

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

  • Cross-Frame Scripting (Issue NMS-10547)

  • syslog parsing of messages without a year will sometimes infer the wrong year (Issue NMS-10548)

Enhancement

Release Meridian-2018.1.4

Release 2018.1.4 is an update to Meridian 2018.1.3. It contains a number of bug fixes and a few enhancements, including a bunch of performance fixes to topology maps and a number of other smaller changes.

The codename for 2018.1.4 is Moderate breeze.

Bug
  • BestMatchPingerFactory returns NullPinger when better options are available (Issue NMS-9659)

  • When selecting a vertex which is neither visible nor in focus the ui state is stuck (Issue NMS-10451)

  • Building the menu takes forever if a visible node has an invalid ip address set (Issue NMS-10452)

  • "Use Default Focus" may not show the "add nodes manual" indicator if "getDefaults().getCriteria()" returns empty list rather than null (Issue NMS-10453)

  • Kafka Producer: Sync timing issues cause erroneous deletes (Issue NMS-10474)

  • When using the events:stress command, the node-id or interface passed as parameters are ignored when using jexl (Issue NMS-10475)

  • Alarm Dashlet CriteriaBuilder In-Restriction not working (Issue NMS-10479)

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

  • Find out why intial loading of the topology map takes so long, fix for CDP (Issue NMS-10398)

  • Apply initial loading improvements to IsIs, lldp, ospf protocols (Issue NMS-10439)

  • Allow PostgreSQL 11.x (Issue NMS-10450)

  • Support Additional EIF Protocol Version (Issue NMS-10454)

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

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

Release Meridian-2018.1.3

Release 2018.1.3 is an update to Meridian 2018.1.2. It contains a number of bug fixes and a few enhancements, including additional HTTP proxy support, reliability updates, and UI performance improvements.

The codename for 2018.1.3 is Gentle breeze.

Bug
  • Other classes that use Http (Issue NMS-10379)

  • Sink API drops messages when there is no connectivity with Kafka (Issue NMS-10395)

  • Discovery UI should not allow selection of Minions as Foreign Source (Issue NMS-10400)

  • Find out why selecting a node takes so long in a big topology (Issue NMS-10419)

  • Typo in BSFMonitor Documentation (Issue NMS-10428)

  • Default Metaspace configuration is insufficient (Issue NMS-10437)

  • Improve performance of node search (Issue NMS-10445)

Enhancement
  • Change eventconf for newSuspect to include location name in logmsg (Issue HZN-814)

  • Be able to use Proxy for any Monitor or Collector that uses HttpClient (Issue NMS-9710)

  • Detect and Attempt to Restart Failed Drools Engines (Issue NMS-10363)

Release Meridian-2018.1.2

Release 2018.1.2 is an update to Meridian 2018.1.1. It contains a number of bug fixes and a few enhancements, including improvements to VMware connection pooling.

The codename for 2018.1.2 is Light breeze.

Bug
  • Wrong data type for certain Cassandra JMX counters (Issue NMS-10352)

  • Cannot override TTL when running the Karaf Command collections:collect through Minions (Issue NMS-10367)

  • Erroneous INFO-level log messages during every forced node rescan (Issue NMS-10370)

  • Wrong JMX MBeans for minions (Issue NMS-10372)

  • find-java.sh doesn’t understand newer JDK output (Issue NMS-10401)

  • int overflow in InstallerDb causes bamboo failures (Issue NMS-10402)

Enhancement
  • Be able to use Proxy for any Monitor or Collector that uses HttpClientWrapper directly (Issue NMS-10312)

  • Be able to use Proxy for any Monitor or Collector that uses HttpClient via UrlFactory (Issue NMS-10313)

  • Improve concurrency in Vmware Connection Pool (Issue NMS-10373)

Release Meridian-2018.1.1

Release 2018.1.1 is an update to Meridian 2018.1.0. It contains a few bug fixes and enhancements.

The codename for 2018.1.1 is Light air.

Bug
  • Minions without nodes should show "unknown" status (Issue NMS-10338)

  • navbar.ftl not rendering (Issue NMS-10342)

Enhancement
  • add polling interval definition on service UI (Issue NMS-9747)

  • Improve CDP topology calculation performance (Issue NMS-10317)

  • Memory related env-variables from /etc/sysconfig/minion are not honored (Issue NMS-10332)

  • Manage Minions page should link to the node for the minion (Issue NMS-10296)

Release Meridian-2018.1.0

Release 2018.1.0 is the first release in the Meridian 2018 series.

The codename for 2018.1.0 is Calm.

Bug
  • maxRetCode in HttpDetector does not work (Issue NMS-3974)

  • VMWare-Center-Monitoring make for every virtual machine a login/logout (Issue NMS-8204)

  • bridge topology is wrong on nodelink.jsp (Issue NMS-8295)

  • The ReST API used to return XMLs with namespace, and now it doesn’t (Issue NMS-8524)

  • Content-Type tag wrong in emailed reports (Issue NMS-9027)

  • The upgrade task for magic-users.properties fails because of the read-only attribute (Issue NMS-9267)

  • Topology on Map is not properly displayed (Issue NMS-9288)

  • Exceptions in Bridge Discovery (Issue NMS-9557)

  • Config-tester not validating varbind matching in event files (Issue NMS-9821)

  • Wrong initial message displayed on AngularJS based tables. (Issue NMS-9932)

  • Home Page Map does not display node details (Issue NMS-10008)

  • Asset record is not being updated with user name that performed the update (Issue NMS-10087)

  • wrong statement in event description for serviceDeleted (Issue NMS-10148)

  • Radius Login Problem (Issue NMS-10212)

  • Trapd does not validate config against XSD (Issue NMS-10242)

  • Drools correlation engine do not always respond to targeted reloadDaemonConfig events (Issue NMS-10257)

  • newSuspect events do not get processed when they reference a missing system id (aka distpoller) (Issue NMS-10261)

  • Change in JMS NBI Date Format (Issue NMS-10282)

  • NoClassDefFoundError for net/sf/json/JSONSerialize with the JSON collector on Minion (Issue NMS-10286)

  • DefaultProvisionService logs noisily for monitored service having state "N" (Issue NMS-10291)

  • Doughnut chart shows certain closed outages as "current" (Issue NMS-10293)

  • KSC Report Changes Destroys Existing Reports (Issue NMS-10309)

  • Minions can’t be deleted from minion menu (Issue NMS-10321)

Enhancement
  • Remove Telemetryd from the configuration files to avoid confusions (Issue LTS-223)

  • Release notes in Help / Support links to 2015 (Issue LTS-214)

  • UI stack trace is truncated (Issue NMS-7555)

  • Add Ironport AsyncOS Mail Gateway Events (Issue NMS-9794)

  • Make hawtio available for OpenNMS as installable RPM/DEB (Issue NMS-9858)

  • Upgrade Drools to 7.x (Issue NMS-9923)

  • Subsume "Event Configuration How-To" from wiki into admin guide (Issue NMS-9926)

  • Can’t receive SNMP v3 Trap (Issue NMS-10009)

  • Enhance AlarmPersisterImpl to support updating acknowledgment values on reduction (Issue NMS-10067)

  • Normalize date formats across the WebUI (Issue NMS-10072)

  • Support customizing the default time zone when parsing dates in syslog messages (Issue NMS-10164)

  • Consolidate Kafka client library versions (Issue NMS-10165)

  • Link to privacy policy from Data Choices UI elements (Issue NMS-10169)

  • Karaf shell command to enumerate nodes that match a given filter (Issue NMS-10172)

  • Optionally persist the results when calling collectors:collect (Issue NMS-10173)

  • Two Port Bridge - Topology mismatch (Issue NMS-10225)

  • use user defined time zone for date formatting (Issue NMS-10228)

  • render date for Javascript with moment.js (Issue NMS-10233)

  • plpgsql IPLIKE does not behave the same as the C version (Issue NMS-10238)

  • apply centralized datetime rendering to freemarker template(s) (Issue NMS-10239)

  • apply custom tag to ncs-alarms.jsp (Issue NMS-10243)

  • Update log4j2.xml with kafka logging (Issue NMS-10269)

  • Syslog messages should default to using the time at which they were received (Issue NMS-10271)

  • Syslog messages should default to being associated with the hosts from which they were received (Issue NMS-10272)

  • implement minion "status" field (Issue NMS-10295)

  • expose datetimeformat in InfoService REST Endpoint (Issue NMS-10301)

  • Set the default resource graph time range to "Last Day" (Issue NMS-10324)