OpenNMS Release Notes

Cumulative Release History

OpenNMS Development Team

Tarus Balog

Matt Brozowski

David Hustace

Benjamin Reed

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


Table of Contents

Preface
1. Introduction
Release 1.7.6
Release 1.7.5
Release 1.7.4
Release 1.7.3
Release 1.7.2
Release 1.7.1
Release 1.7.0
Release 1.6.5
Release 1.6.4
Release 1.6.3
Release 1.6.2
Release 1.6.1
Release 1.6.0
2. What's New?
Changes in OpenNMS 1.7.x
Architectural Changes
New Features
Changes in OpenNMS 1.6.5
New Features and Enhancements
Bug Fixes
Changes in OpenNMS 1.6.4
Changes in OpenNMS 1.6.3
New Features and Enhancements
Bug Fixes
Changes in OpenNMS 1.6.2
New Features
Bug Fixes
Changes in OpenNMS 1.6.1
New Features
Bug Fixes
Configuration/Behavior Changes
Changes in OpenNMS 1.6.0
3. Known Issues and Caveats
Current Release
Previous Releases
4. Supported Systems
Fully Supported
Unsupported

Preface

OpenNMS is the creation of numerous people and organizations, operating under the umbrella of the OpenNMS project. The original code base was developed and published under the GPL by the Oculan Corporation until 2002, when the project administration was passed on to Tarus Balog.

The current corporate sponsor of OpenNMS is The OpenNMS Group, which also owns the OpenNMS trademark.

OpenNMS is a derivative work, containing both original code, included code and modified code that was published under the GNU General Public License. Please see the source for detailed copyright notices, but some notable copyright owners are listed below:

Please send any omissions or corrections to this document to Tarus Balog.

Chapter 1. Introduction

About This Release

Release 1.7.6

Release 1.7.6 is the latest in a series of development releases of OpenNMS. This represents what will eventually become OpenNMS 1.8.0 when it is declared feature-complete and stable.

Since 1.7.5, more bugfixing has been going on, in preparation for the 1.8 release.

The codename for 1.7.6 is Orange Chicken

Release 1.7.5

Release 1.7.5 is the latest in a series of development releases of OpenNMS. This represents what will eventually become OpenNMS 1.8.0 when it is declared feature-complete and stable.

Since 1.7.4, more bugfixing has been going on, in preparation for the 1.8 release.

The codename for 1.7.5 is ShamWow!

Release 1.7.4

Release 1.7.4 is the latest in a series of development releases of OpenNMS. This represents what will eventually become OpenNMS 1.8.0 when it is declared feature-complete and stable.

Since 1.7.3, more work has gone on in the Provisiond code, as well as ACLs, RANCID reports, thresholding fixes, enabling maps by default, and an entirely new way of creating the OpenNMS database under the covers.

The codename for 1.7.4 is eels

Release 1.7.3

Release 1.7.3 is the latest in a series of development releases of OpenNMS. This represents what will eventually become OpenNMS 1.8.0 when it is declared feature-complete and stable.

It contains a fully functional Provisiond, the only major missing feature is handling newSuspect events like Capsd does. It also contains initial support for ACLs in the web UI.

The codename for 1.7.3 is auto-tune

Release 1.7.2

Release 1.7.2 is the latest in a series of development releases of OpenNMS. This represents what will eventually become OpenNMS 1.8.0 when it is declared feature-complete and stable.

It contains a fully functional Provisiond, the only major missing feature is handling newSuspect events like Capsd does.

1.7.2 is nearly identical to 1.7.1, and was released because of a NullPointerException in the SNMP poller that was discovered shortly after the 1.7.1 release.

The codename for 1.7.2 is culpa

Release 1.7.1

Release 1.7.1 is the second in a series of development releases of OpenNMS. This represents what will eventually become OpenNMS 1.8.0 when it is declared feature-complete and stable.

It contains a fully functional Provisiond, the only major missing feature is handling newSuspect events like Capsd does.

The codename for 1.7.1 is Oops We Did It Again

Release 1.7.0

Release 1.7.0 is the first in a series of development releases of OpenNMS. This represents what will eventually become OpenNMS 1.8.0 when it is declared feature-complete and stable.

The codename for 1.7.0 is GIRAFFES!

Release 1.6.5

Release 1.6.5 is a small bugfix release in the 1.6 series. It is a recommended upgrade for all users.

The codename for 1.6.5 is Eastern Conference Finals.

Release 1.6.4

Release 1.6.4 continues the 1.6 series with a fix for a showstopper exception in OpenNMS 1.6.3. It is a strongly recommended upgrade for all users.

The codename for 1.6.4 is mea.

Release 1.6.3

Release 1.6.3 continues the 1.6 series with a small set of bug fixes and minor feature enhancements. It is a recommended upgrade for all users.

The codename for 1.6.3 is waterfall.

Release 1.6.2

Release 1.6.2 continues the 1.6 series with a small set of bug fixes and minor feature enhancements. It is a recommended upgrade for all users.

The codename for 1.6.2 is software mercenaries.

Release 1.6.1

Release 1.6.1 continues the 1.6 series with a small set of bug fixes and minor feature enhancements. It is a recommended upgrade for all users.

The codename for 1.6.1 is bamboo army.

Release 1.6.0

Release 1.6.0 is the first stable release in the OpenNMS 1.6 series.

It's been 3 and a half years since the last OpenNMS stable version, 1.2, was branched and released as production-ready. In that time, OpenNMS as a project has changed tremendously, the community has grown exponentially, and massive numbers of new features have been incorporated into the "unstable" 1.3.x series.

In that time, the unstable codebase solidified to the point that The OpenNMS Group supported it as if it were stable; it was at least as stable as 1.2.x was, but many users held off on upgrading because of the unstable moniker.

After a lot of work, and a renewed focus on getting the next stable release out the door, we are now prepared to declare OpenNMS 1.6 release-candidate-ready.

Why 1.6 instead of 1.4? 3 years is a lot of time, and a lot has happened in that time. We're not ready to call it 2.0, we want to redo the web UI first, but 1.4 didn't really do the massive changes since 1.2 justice. So: 1.6 it is.

Since it is a lot easier to do a release than it was in the 1.2 series (now that the native code is moved out into separate packages, and OpenNMS itself is distributed as pure-java sources), the goal is to continue to be on a much faster 6-month or year cycle for new releases.

Please, let us know if you have any problems at all in our Bugzilla bug tracker.

Chapter 2. What's New?

Changes in This OpenNMS

Changes in OpenNMS 1.7.x

OpenNMS 1.7.x is an unstable series, meant to be a technology preview of what's to come in OpenNMS 1.8.0. Here is a high-level overview of what's changed since the 1.6.x series.

Architectural Changes

Database Schema Updates

The OpenNMS installer has been changed to use LiquiBase for database schema management. It has been tested with a number of upgrade paths, but it is even more strongly recommended than usual that you back up your database before upgrading.

DAO Updates

Many more parts of the OpenNMS data access layer have been updated to be compatible with Hibernate and database abstraction.

OSGi Preparation

Some daemon architectural changes have happened to support an eventual integration with OSGi (post-1.8).

Spring 2.5

OpenNMS was updated to use Spring 2.5.

Test Framework Updates

A number of handy annotation-based test framework changes have been made, using JUnit 4.

New Features

Adobe AIR Client

An Adobe AIR based client was added.

Asterisk Notification Support

It is now possible to send notifications through Asterisk.

Capsd Replacement

A complete replacement for Capsd, called "Provisiond" is introduced in this release. It allows you to define specific behaviors for detecting services and attributes of devices in manual, automated, and semi-automated ways, with simple APIs for writing your own custom scanning behavior and detectors.

This includes a highly-scalable, highly-parallelizable threading architecture which will be used for other parts of OpenNMS in future releases.

Map Updates

The topological map support has been updated to work properly in all major browsers with SVG support.

Mobile Browser Cleanups

Some updates have been made to the web UI to make them more mobile-friendly.

RADIUS Authentication

A RADIUS authentication provider has been added.

RANCID Integration

An integration with RANCID has been added. If configured, extra data about node configuration, etc. will be available in the node UI and maps.

RESTful Interface

A number of interfaces to OpenNMS data have been made available through a RESTful interface, using the Jersey API.

This includes simple web API access to alarms, events, nodes, notifications, and outages, and it is expected that this will be expanded in future releases.

Web UI Updates

A number of pages, most notably the node details page, have been updated to provide more detailed information thanks to the new REST service. These controls also support paging, sorting, etc.

Web UI ACLs

Support for basic access control has been added, which allows you to limit which nodes, interfaces, and services a user can view based on the surveillance categories their group is assigned to.

WMI Support

Support has been added for polling and datacollection from Windows Management Instrumentation.

Changes in OpenNMS 1.6.5

New Features and Enhancements

  • Capsd will now use ifHighSpeed instead of ifSpeed when available (Bug #1822)

  • The SNMP configuration shipped with OpenNMS now uses SNMP v2c, fewer retries, and a longer timeout by default, for more efficient scanning. (Bug #3050)

  • Data collection and graphing has been added or updated for Alcatel-Lucent, Allot, Alteon, Aruba, Ascend, Avocent, Bluecat, BlueCoat, Cisco Airespace, Lucent, NetApp, Overture, Packeteer, and Powerware devices (Bugs #3096, #3099, #3109, and #3138)

  • Support has been added for using raw instance identifiers in thresholds when no data source label can be inferred (Bug #3108)

  • Support was added for a number of new Cisco devices in Linkd (Bug #3110)

  • Support has been added for extracting the bgpPeerRemoteAddr instance identifier from the varbinds of the bgpEstablished and bgpBackwardTransition traps defined in the BGP4-MIB. This allows us to make meaningful alarm annotations for these events so that the resulting alarms can self-clear. (Bug #3156)

  • Some tools have been added to OpenNMS "contrib" for creating SNMP walk dumps suitable for debugging with OpenNMS's mock SNMP server. (Bug #3173)

  • The default "Database" category now includes MSSQL and Oracle in addition to MySQL and PostgreSQL. (Bug #3175)

Bug Fixes

  • The Capsd HTTP plugin now properly honors response-text parameters. (Bug #2774)

  • The HTTP collector now properly honors the "retry" parameter. (Bug #3133)

  • The Hyperic HQ service monitor definition now detects Hyperic HQ 4.x properly. (Bug #3106)

  • Multiple nodes with the same name/label can now be distinguished from each other in category views. (Bug #3112)

  • Vacuumd cleans out old (invalid) nodes from topology map tables. (Bug #3121)

  • The JMX collector now works when store-by-group persisting is enabled. (Bug #3160)

  • Configuration file filtering has been fixed so that tags aren't properly expanded in opennms.properties. (Bug #3174)

  • The remote poller build now ensures it is compiled with the correct version of Groovy. (Bug #3176)

The full list of changes is available in bugzilla.

Changes in OpenNMS 1.6.4

A NullPointerException in the SNMP poller was found in OpenNMS 1.6.3, relating to the enhancements in bug #3065. The only change in OpenNMS 1.6.4 is a fix for that exception.

Changes in OpenNMS 1.6.3

New Features and Enhancements

  • A thresholding evaluator has been added that uses the absolute value to compute deltas, and has the ability to rearm after a certain number of collections below the hysteresis point. (Bug #2768)

  • Data collection and graphing has been added or updated for BGP MIBs from Cisco and IETF, other Cisco equipment, Jupiter M-Router, Liebert UPSes, MPLS, MSDP, Net-SNMP, and Netenforcer Allot (Bugs #2990, #2998, #3012, #3013, #3025, #3064, and #3068)

  • Enhanced string extraction support in resourceLabels has been added (Bug #2997)

  • The KSC report list is now viewable by read-only users (Bug #3005)

  • XML configuration file XSDs are now included in the distribution (Bug #3006)

  • Event translator matches can be performed against the name rather than the value (Bug #3049)

  • Event parameter names are can now be expanded using the %parm% syntax (Bug #3061)

  • The SNMP monitor can now include operator, operand, and observed value in results string (Bug #3065)

  • Syslogd now has an optional "discard-uei" option to discard matching UEIs (Bug #3066)

  • The model importer now supports scanning the node for non-IP interfaces (Bug #3075)

  • A new monitor has been added which supports checking that a BGP peering partner is functional (Bug #3080)

  • JFreeChart 3D bar charts have been enabled (Bug #3086)

Bug Fixes

  • Thresholding on JMX collection has been fixed (Bug #2512)

  • Using multiple <package> statements in linkd-configuration.xml now works (Bug #2818)

  • A bug in filter-based expressions was resolved (Bug #2966)

  • A bug interacting with newer versions of NSClient++ has been fixed (Bug #2983)

  • Altiga authentication success traps are now ignored (Bug #3004)

  • The JFreeChart charts layout was fixed (Bug #3040)

  • The mail transport monitor now works in read-only mode (Bug #3071)

The full list of changes is available in bugzilla.

Changes in OpenNMS 1.6.2

New Features

  • Ticketing integration support was added for RT (Request Tracker) (Bug #2278)

  • Jabber notifications now support configurations where the XMPP domain server hostname don't match, e.g. Google Talk (Bug #1387)

  • KSC reports now auto-refresh every 5 minutes (Bug #2899)

  • New data collections and traps were added for various IETF, Cisco, Juniper, AIX, and SNMP Informant MIBs. (Bugs #2933, #2934, #2947, and #2954)

Bug Fixes

  • Jabber notifications would stop sending if the connection to the XMPP server failed; it now reconnects automatically. (Bug #1860)

  • A couple of unhandled exceptions were fixed. (Bugs #1599 and #1748)

  • The PL/pgsql version of IPLIKE did not work with expressions that used multiple comma-separated values. (Bug #2803)

  • HTTP data collection only stored values for one URL, even if multiple URLs were specified in the http-datacollection-config.xml. (Bug #2940)

  • The mail transport monitor would not always honor the delete-all-mail attribute. (Bug #2969)

The full list of changes is available in bugzilla.

Changes in OpenNMS 1.6.1

New Features

  • KSC reports are now sorted by title. (Bug #2817)

  • You can now use ${ipaddr} in URLs for in the Page Sequence Monitor. (Bug #2840)

  • Support for new Fortinet traps was added. (Bug #2847)

  • A monitor for the trivial time service was added. (Bug #2864)

Bug Fixes

  • An error when attempting to delete URLs in the discovery admin page was fixed. (Bug #2829)

  • The poller was no longer setting the reason on nodeLostService events. (Bug #2846)

  • An exception in the path outages web UI when using PostgreSQL 8.3 was fixed. (Bug #2866)

  • A few issues with ticket and alarm triggers were fixed. (Bugs #2868 and #2869)

  • A bug that would cause the OTRS ticketer plugin to ignore otrs.properties was fixed (Bug #2870)

  • An invalid regular expression in the thresholding configuration could cause thresholding not to happen and throw an exception. (Bug #2873)

  • The HTTP data collector now behaves properly when storeByGroup=true (Bug #2875)

  • The SSH monitor would cause a thread lock if a socket allowed connection but never returned any data. (Bug #2896)

  • The mail transport monitor would not retry during the read test. (Bug #2897)

Configuration/Behavior Changes

A number of changes were done to configs to clean up usage and get rid of old unnecessary tags.

  • capsd-configuration.xml: capsd-configuration.xml no longer requires the user-defined attribute. (Bug #2872)

  • eventconf.xml: the <logmsg> tag now accepts an optional attribute, notify, which can be set to false to unilaterally suppress any notifications on that event. (Bug #2891)

  • http-datacollection-config.xml: The name attribute on URI tags in the HTTP data collection configuration file is now required. It was common practice to do so anyways, but you will need to check your configs to make sure it is defined. (Bug #2876)

  • http-datacollection-config.xml: The url tag can now take a number of options relating to how regular expressions should be parsed. (Bug #2882)

    canonical-equivalence

    When this flag is specified then two characters will be considered to match if, and only if, their full canonical decompositions match. The expression "a\u030A", for example, will match the string "å" when this flag is specified. By default, matching does not take canonical equivalence into account.

    case-insensitive

    Enables case-insensitive matching. By default, case-insensitive matching assumes that only characters in the US-ASCII charset are being matched. Unicode-aware case-insensitive matching can be enabled by specifying the unicode-case flag in conjunction with this flag.

    comments

    Permits whitespace and comments in pattern. In this mode, whitespace is ignored, and embedded comments starting with # are ignored until the end of a line.

    dotall

    Enables dotall mode. In dotall mode, the expression . matches any character, including a line terminator. By default this expression does not match line terminators.

    literal

    Enables literal parsing of the pattern. When this flag is specified then the input string that specifies the pattern is treated as a sequence of literal characters. Metacharacters or escape sequences in the input sequence will be given no special meaning. The flags case-insensitive and unicode-case retain their impact on matching when used in conjunction with this flag. The other flags become superfluous.

    multiline

    Enables multiline mode. In multiline mode the expressions ^ and $ match just after or just before, respectively, a line terminator or the end of the input sequence. By default these expressions only match at the beginning and the end of the entire input sequence.

    unicode-case

    Enables Unicode-aware case folding. When this flag is specified then case-insensitive matching, when enabled by the case-insensitive flag, is done in a manner consistent with the Unicode Standard. By default, case-insensitive matching assumes that only characters in the US-ASCII charset are being matched.

    unix-lines

    Enables Unix lines mode. In this mode, only the '\n' line terminator is recognized in the behavior of ., ^, and $.

  • notifd-configuration.xml: The default behavior of the numeric page (-nm) field in notifications has been changed to prepend "RESOLVED:" to the message, just like other page types, since most people are using the numeric field for SMS pages. To restore the old behavior, add the skip-numeric-resolution-prefix to the global <notifd-configuration> tag at the top of the file, set to "true".

The full list of changes is available in bugzilla.

Changes in OpenNMS 1.6.0

OpenNMS 1.5.99 passed release candidate testing and was re-tagged as 1.6.0.

Chapter 3. Known Issues and Caveats

Here is the list of known issues in this release of OpenNMS.

Current Release

OpenNMS 1.7.x is a development release, and has not gone through the amount of testing that stable releases typically get. Development happens quickly, and it is quite likely there are bugs in any given unstable release.

If it breaks in half, you get to keep both halves.

Previous Releases

  • OpenNMS 1.6.0. A few small issues were found in the release candidates that did not make it into 1.6.0. They will be a part of the 1.6.1 release.

    • KSC reports sort by ID rather than by name (Bug #2817)

    • Graphs for load averages should show typical units rather than si units (Bug #2824)

    • A URL added in the discovery admin UI cannot be deleted. (Bug #2829)

    OpenNMS 1.5.93. OpenNMS is still not 100% compatible with PostgreSQL 8.3, because of a change in behavior regarding implicit casts. Until we can fix our code to not rely on implicit casts, a workaround is available here, but it is recommended that you stick with PostgreSQL 7.4 to 8.2 for production environments until this issue is resolved.

  • OpenNMS 1.5.90 Known Issues. Editing scheduled outages in the web UI has a number of bugs.

  • OpenNMS 1.3.10 Known Issues. Events that reference an IP address that exists on more than one node will not be processed. Fixed in 1.3.11.

  • OpenNMS 1.3.9 Known Issues. The User Account Self-Service window (i.e. the page that allows users to change their passwords) will cause a warning that the application is trying to close a window on IE6.

  • OpenNMS 1.3.8 Known Issues. The order of elements in some of the XML configuration files is enforced more strictly than before. This change may cause problems with customized OpenNMS configuration files (especially event definitions) that worked fine with previous releases. Correcting the ordering of elements in these files against the XML schema definitions (available from the wiki) may be necessary.

  • OpenNMS 1.3.7 Known Issues. The zoom feature will not work on Windows using IE or Opera. The workaround is to use Firefox. (corrected in 1.3.8)

  • OpenNMS 1.3.5 Known Issues. Notification on the "newSuspect" event will fail. Bug #1954

Chapter 4. Supported Systems

Supported UNIX-like OSes

OpenNMS is written almost entirely in Java, and should be able to run on any system that supports the Sun Java Virtual Machine -- OpenNMS 1.3.x and higher requires Java 5 or higher. There are requirements for other programs such as PostgreSQL and Perl, but the JDK is the key requirement as most of the other packages can be compiled from source.

The following are the systems that support or are known to run OpenNMS.

Windows 2000/XP/Vista are supported as of 1.3.8.

Fully Supported

The following systems are supported out-of-the-box with native installation packages:

  • RPM-based Distributions (Using Yum). 

    • Red hat Enterprise Linux 3 and higher

    • CentOS 3 and higher

    • Fedora Core 4 and higher (including 64-bit)

    • SuSE Linux 9 and 10 (Using the Yum repository through YAST)

  • Other RPM-based Distributions. 

    • Mandriva Linux 2007 and higher (Using URPMI)

  • Debian and Ubuntu Linux. Debian packages for Etch and later are available at the following apt repository:

    deb http://debian.opennms.org/ unstable main

    These same packages should work equally well with Ubuntu releases 6.10 (Edgy Eft) and higher.

  • Solaris 10 (X86 and SPARC)

  • MacOSX 10.4 (Tiger), 10.5 (Leopard). On MacOSX, the Fink distribution packages of OpenNMS are supported. See the Fink web site for more information on installing and using Fink.Also note that on MacOSX, PostgreSQL must be configured in the same manner as above for Linux. However, to do so you will need to update the SHM settings so that the OS allows enough resources for PostgreSQL to run with larger buffers.There are details for configuring the shared memory segments on the Fink wiki.

  • Windows Server and Desktop (Windows 2000+).  Note that while it is technically possible to install on FAT32, NTFS is the only officially supported filesystem for Windows installs. Additionally, while Windows is supported, OpenNMS is much more heavily tested (and easier to maintain) on UNIX, and it is recommended that unless you have a specific reason to go with Windows, that you use one of the supported UNIX-based operating systems.

Unsupported

OpenNMS 1.3.7 and up require Java 5 (a 1.5 JDK) and PostgreSQL 7.4 or higher. In addition, for native RRD support (as opposed to the builtin Java-based JRobin round-robin database), RRDTool 1.2 is required.

Any operating system that can support these dependencies should be able to run OpenNMS. However, since many older distributions do not support packages for these applications it will be much harder to get them installed, and so they are not officially supported.

A number of distributions that used to be supported are still able to run OpenNMS but are not officially supported:

  • Gentoo. Gentoo ebuilds used to be available but are no longer officially maintained, as we have no Gentoo packager volunteers to keep them up-to-date.

  • Red Hat Linux. While Red hat Linux 7, 8, and 9 (and potentially even others might still work, they have long gone untested and are not recommended for production use.

  • SuSE 8 and earlier

  • Solaris 9 and earlier