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.
What’s New in OpenNMS 1/10
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 has been cleaned up significantly in a number of places since 1.8, which should make it easier to debug problems.
Each compile of OpenNMS 1.10.x contains 20% more love than 1.8.
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 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 data has been expanded to include a number of new attributes, and the asset management UI has been updated.
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:
Many Updates to Device Configuration
Many new additions and fixes have been made to event configurations, data collection, thresholding, and more.
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