OpenNMS® Release Notes

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

Spring 2.5

OpenNMS was updated to use Spring 2.5.

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

Test Framework Updates

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

New Features

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.

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.

RADIUS Authentication

A RADIUS authentication provider has been added.

Mobile Browser Cleanups

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

Adobe AIR Client

An Adobe AIR based client was added.

WMI Support

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

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