OpenNMS Version 1.10 Released

I am happy to announce that we have officially released OpenNMS 1.10 – the first new stable release since June of 2010. A lot of work went into this release, and although the web user interface has not changed much, this version of OpenNMS should be more stable and better performing than any version before it.

We delayed the release by 10 days in order to improve the documentation on the wiki, where you can also get the full release notes

What’s New in OpenNMS 1/10

Architectural Changes

IPv6 Support

The OpenNMS core was completely refactored in 1.10 to deal with IP addresses in a consistent manner, including adding complete IPv6 support. You should now be able to use IPv6 addresses anywhere you would use IPv4 addresses in 1.8. Additionally, Provisiond can scan the newer IPv6-capable IP-MIB to detect IPv6 interfaces on provisioned nodes.

IPv4 and IPv6 ICMP (ping) support can be configured in the “opennms.properties” file in $OPENNMS_HOME/etc.

Database Schema Management Improvements

The Liquibase database management introduced in 1.8 has been improved, and thanks to a newer Liquibase core, is much faster.

XML Serialization Updates

A number of configuration classes which used Castor for serializing configuration files have been updated to use JAXB instead, which gives us a lot more flexibility in how the configuration objects are dealt with.

Web UI Infrastructure Updates

A number of changes have happened in the Web UI core, including more GWT-based components, and removing our old Ext-JS-based UI elements.

Logging Updates

Logging has been cleaned up significantly in a number of places since 1.8, which should make it easier to debug problems.

Love

Each compile of OpenNMS 1.10.x contains 20% more love than 1.8.

Updated Features

Drools

While there has previously been support for Drools for doing complex business logic based on OpenNMS events, it was non-functional in 1.8 because of some incompatibilities in a number of OpenNMS’s dependencies. The Drools engine has been cleaned up and is working properly. An overview of using Drools in a modern OpenNMS install is available in the March 14th, 2011 TWiO.

Major Reporting Engine Updates

The Jasper reports introduced in OpenNMS 1.8 have gone through a number of significant updates, including adding support for report parameters, as well as retrieving RRD data in reports.

Instrumentation Log Reader Updates

The instrumentation log reader (used for evaluating collection performance) has been updated to include a web UI. It also supports a number of options for filtering and sorting collection times.

Link Daemon Refactoring

Linkd, the OpenNMS link daemon, has gone through a huge refactoring. While the existing Linkd in 1.8 worked for some people, there were a large number of use cases that should have worked that just plain failed. Linkd went through a lot of cleanup, and should work to detect links for a lot more devices, especially with force-ip-route-discovery-on-ethernet set to true.

Provisiond Overhaul

Provisiond has been through a ton of cleanups and fixes. Besides IPv6 support, a lot of corner cases in provisiond behavior have been resolved.

Also, detectors have been implemented for every service that Capsd supports.

Asset Management

Asset management data has been expanded to include a number of new attributes, and the asset management UI has been updated.

Syslogd Overhaul

Syslogd has been refactored to improve performance and add support for better parsing of known formats including SyslogNG and RFC 5424 messages. See the comments in “syslogd-configuration.xml” for details.

HTTP API Updates

Our HTTP code has been updated to use Apache HTTP Components rather than the older HTTPClient API. In addition, we support relaxed standards for SSL certificates when making HTTPS connections.

Data Collection Updates

In addition to the configuration file changes, support for the new “PersistRegexSelectorStrategy” gives you more control over what data is persisted when doing data collection. And example would be the Net-SNMP configuration for disk IO, in “$OPENNMS_HOME/etc/datacollection/netsnmp.xml”, which lets you ignore “ram” and loopback devices when persisting.

Configuration File Updates

Split Configuration Files

A number of configuration files now support being split up into multiple files for ease of maintenance, to continue work done to the event configuration in 1.8:

  • datacollection-config.xml
  • snmp-graph.properties
  • syslogd-configuration.xml

Many Updates to Device Configuration

Many new additions and fixes have been made to event configurations, data collection, thresholding, and more.

New Features

JNA-Based ICMP

While ICMP (ping) still relies on some native code, we have added an alternate ICMP strategy which uses JNA. It supports both IPv4 and IPv6, and can be run straight from Java code without installing a corresponding native component. While it is not enabled by default (the JNI implementation of ping is still more performant), it can be used by remote pollers for doing ICMP availability.

New Plugins and Monitors

  • DNS resolution monitor, for testing V4 or V6 DNS resolution
  • LDAPS plugin and monitor, for monitoring LDAP-over-SSL
  • Selenium monitor, for doing complex scripted web site monitoring using Selenium

ReST Service Additions

A number of new ReST services have been added:

  • /rest/stats/alarms – retrieve statistics on alarms (newest, oldest, acknowledged and unacknowleged)
  • /rest/remotelocations – retrieve remote poller availability information
  • /rest/sched-outages – retrieve scheduled outage information