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.9.2
Release 1.9.1
Release 1.9.0
Release 1.8.5
Release 1.8.4
Release 1.8.3
Release 1.8.2
Release 1.8.1
Release 1.8.0
2. What's New?
Changes in OpenNMS 1.9.2
Changes in OpenNMS 1.9.1
New Features and Enhancements
Changes in OpenNMS 1.9.0
New Features and Enhancements
Changes in OpenNMS 1.8.5
New Features and Enhancements
Bug Fixes
Changes in OpenNMS 1.8.4
New Features and Enhancements
Bug Fixes
Changes in OpenNMS 1.8.3
Bug Fixes
Changes in OpenNMS 1.8.2
New Features and Enhancements
Bug Fixes
Changes in OpenNMS 1.8.1
New Features and Enhancements
Bug Fixes
Changes in OpenNMS 1.8 Since 1.6
Architectural Changes
New Features
Changes in OpenNMS 1.8.0
New Features and Enhancements
Bug Fixes
3. 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.9.2

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

The codename for 1.9.2 is Psaltery

Release 1.9.1

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

Since 1.9.0, a few new features were added.

The codename for 1.9.1 is Oboe

Release 1.9.0

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

Since 1.8, a few new features were added.

The codename for 1.9.0 is Timple

Release 1.8.5

Release 1.8.5 is the latest in the 1.8 series of production-ready OpenNMS releases.

Since 1.8.4, a number of bug fixes and enhancements were added, including a ton of Linkd fixes, a bunch of KSC report cleanups, and a tool for gathering useful debugging info when reporting issues.

The codename for 1.8.5 is Plover

Release 1.8.4

Release 1.8.4 is the latest in the 1.8 series of production-ready OpenNMS releases.

Since 1.8.3, a number of bug fixes were added, including a fix for filehandle leaks in the WMI monitor, and a cross-site-scripting vulnerability in the web UI.

The codename for 1.8.4 is Grey Goose

Release 1.8.3

Release 1.8.3 is the latest in the 1.8 series of production-ready OpenNMS releases.

Since 1.8.2, a few bug fixes were added, including a fix for an issue where snmp-graph.properties could cause OpenNMS not to start.

The codename for 1.8.3 is Least Tern

Release 1.8.2

Release 1.8.2 is the latest in the 1.8 series of production-ready OpenNMS releases.

Since 1.8.1, a number of bug fixes and features were added.

The codename for 1.8.2 is Spotted Sandpiper

Release 1.8.1

Release 1.8.1 is the latest in the 1.8 series of production-ready OpenNMS releases.

Since 1.8.0, a ton of bug fixes went in.

The codename for 1.8.1 is Lady Gould

Release 1.8.0

Release 1.8.0 is the first in the 1.8 series of production-ready OpenNMS releases.

Since 1.7.92, a few more bug fixes went in.

The codename for 1.8.0 is Cardinal

Chapter 2. What's New?

Changes in This OpenNMS

Changes in OpenNMS 1.9.2

Version 1.9.2 is identical to 1.9.1, except it contains the changes present in OpenNMS 1.8.5.

Changes in OpenNMS 1.9.1

New Features and Enhancements

  • Some of the groundwork for IPv6 support has been started.

  • Syslogd has been refactored and has a number of new features and parsing options. (Bug #4112)

  • You can now specify whether to be strict or loose when verifying HTTPS connections in the PageSequenceMonitor. (Bug #4113)

Changes in OpenNMS 1.9.0

New Features and Enhancements

  • You can now have syslogd bind to a specific IP address. (Bug #3192)

  • Threshold expressions have been enhanced and now use JEXL instead of JEP. (Bug #3413)

  • Data collection configuration has now been split out into multiple include files, like events. (Bug #4031)

Changes in OpenNMS 1.8.5

New Features and Enhancements

  • Forms involving adding/removing surveillance categories now redirects back to the referring page when submitted. (Bug #3028)

  • Data collection and resource graph definitions for AKCP sensorProbes was added. (Bug #4118)

  • The DNS service monitor now gives useful logging when set to INFO. (Bug #4142)

  • Events for Concord eHealth Health Report / LiveExceptions traps were added. (Bug #4145)

  • The Manage/Unmanage Interfaces form now validates IP addresses. (Bug #4146)

  • A tool for creating a detailed report of OpenNMS and system statistics was created. For details, see the feature specification here. (Bug #4167)

  • If the JDK has been forced with "runjava -f," the install and opennms scripts now warn, rather than error, if the JDK is invalid at runtime. (Bug #4168)

  • An example of how to monitor a specific virtual host has been added to the HttpMonitor examples. (Bug #4169)

  • The remote poller is now capable of reporting correct timestamps even if the host that it is running on is invalid. Note, this <bold>requires</bold> that you update remote pollers to the new version, the protocol between the remote poller and OpenNMS server has changed. (Bug #4172)

Bug Fixes

  • Some issues with field validation in the outage editor have been fixed. (Bug #1225)

  • While customizing an new/existing report from the KSC Reports page, it would lose the prefabricated report selection. (Bug #2230)

  • While modifying the first graph in a custom report, an exception was thrown. (Bug #2823)

  • Form submission bugs in the KSC reports, Add Interface, and a number of other places have been resolved. This mostly affects IE and some mobile browsers. (Bugs #1675, #3015, #3606, and #3729)

  • A number of exceptions have been cleaned up. (Bugs #3319, #3450)

  • A thread-contention bug that could cause it to take a long time for scheduled outages and potentially other code to lag was fixed. (Bug #3790)

  • A bug in "Check Notices" for a user was fixed. (Bug #3903)

  • A large number of outstanding issues with Linkd have been resolved. (Bugs #3989, #4051, #4055, #4133, #4149, and #4165)

  • The event configuration for the acknowledgement had incorrect formatting. (Bug #4114)

  • Latency thresholding is working properly again. (Bug #4117)

  • Modern versions of OpenJDK are properly detected by the install and runtime scripts again. (Bug #4129)

  • The Net-SNMP diskHighLow specification (for Net-SNMP 5.5+) was broken. (Bug #4131)

  • A bug in the runPageSequenceMonitor groovy script was resolved. (Bug #4170)

  • A workaround for Net-SNMP 5.5 on x86_64 was implemented. (Bug #4174)

Changes in OpenNMS 1.8.4

New Features and Enhancements

  • The ifIndex parm is now provided in events received as traps. (Bug #1145)

  • The Cisco firewall service module is now detected for data collection. (Bug #3120)

  • APC upsOnBattery and powerRestored events now have alarm-data annotations so they can be auto-cleared. (Bug #4054)

  • Notification text now preserves multi-line text formatting. (Bug #4056)

  • Data collection support for the Cisco C1250 was added. (Bug #4071)

  • Support for a number of new Cisco devices was added to Linkd. (Bug #4082)

  • Data collection and graph definitions were added for Force10 stack units. (Bug #4088)

  • Data collection definitions for Makelsan UPSes were added. (Bug #4090)

  • A shell script for calling the WMI validation/checker utility has been added. (Bug #4101)

  • foreignSource and foreignId can now be used when filtering nodes. (Bug #4102)

  • datacollection-config.xml can now modularly include configuration from multiple files, like eventconf.xml. (Bug #4109)

Bug Fixes

  • A typo in the example snmp-config.xml was fixed. (Bug #2909)

  • Paths are now substituted in files in etc/examples. (Bug #3140)

  • Colors were off in JFreeChart bar graphs in some instances. (Bug #3976)

  • Early morning reports could crash when fonts weren't installed. (Bug #4059)

  • Group names with spaces in them now work as expected. Unless you expected them to fail, in which case, expect the unexpected. (Bug #4095)

  • Renaming a group no longer creates duplicate groups in the XML. (Bug #4096)

  • Remote poller map markers are now ordered by severity, so low-severity markers aren't covered up by high-severity markers. (Bug #4105)

  • The TcpDetector now properly detects and open port even if it doesn't send a banner. (Bug #4107)

  • A number of WMI issues were fixed, including one that could cause file descriptor leaks. (Bug #4108)

  • A cross-site scripting vulnerability in the web UI was fixed. (Bug #4110)

Changes in OpenNMS 1.8.3

Bug Fixes

  • Performance in the outage editor has been improved. (Bug #1225)

  • The "move up" and "move down" buttons in group modification were broken. (Bug #4034)

  • Remote pollers cause excessive event logging. (Bug #4045)

  • OpenNMS logging was still set to DEBUG, even though we're in a stable cycle. (Bug #4047)

Changes in OpenNMS 1.8.2

New Features and Enhancements

  • It is now possible to schedule an outage for a node or interface directly from their respective UIs. (Bug #1225)

  • Linkd is now able to walk IpCidrRouteTable and InetCidrRouteTable as well as IpRouteTable for determining node links. (Bug #3773)

  • You can now configure the number of outages to show on the front page of the web UI. (Bug #3982)

  • A standalone tool for importing Spectrum traps is available in the opennms-tools directory of the OpenNMS source. (Bug #4025)

  • A standalone tool for parsing collection logs and providing stats on average collection time is available in the opennms-tools directory of the OpenNMS source. (Bug #4033)

  • It is now possible to pause and resume all remote pollers in the distributed poller status UI. (Bug #4026)

  • You can now populate asset data based on information retrieved from SNMP when provisioning a node. (Bug #4028)

  • New events and configurations for Junos devices were added. (Bug #4029)

  • Queued now gathers RRD queue statistics by default. (Bug #4030)

Bug Fixes

  • The thresholding for low memory now takes cached memory into account on Linux. (Bug #2910)

  • Editing a notification's name in the GUI now works again. (Bug #3570)

  • The custom resource performance report link now gives you a custom resource performance report, instead of a standard one. ;) (Bug #3573)

  • A resource filter with a negative look behind now renders properly in the UI. (Bug #3726)

  • Browser history buttons now work properly in maps again. (Bug #3734)

  • A bug in linkd that would prevent many nodes to fail to have proper links was fixed. (Bug #3989)

  • A regression from 1.6 where the "nodes with outages" box on the front page would show inconsistent results was fixed. (Bug #3981)

  • A bug was fixed in the code for editing node labels where it would previously cause a database handle leak (and eventually, errors accessing the database) in OpenNMS. (Bug #3991)

  • If you had a "." in a node label, maps would not populate their name properly. (Bug #3995)

  • A bug where saving maps could cause duplicates to be created was fixed. (Bug #3997)

  • A typo in the RANCID property used in opennms.properties was fixed. Please double-check your configuration after upgrading. (Bug #4004)

  • In some cases, code that handles new nodes could generate an inconsistent NodeGainedService event. (Bug #4022)

  • The distributed poller status legend needed clarification. (Bug #4027)

Changes in OpenNMS 1.8.1

New Features and Enhancements

  • Back by popular demand, it is again possible to show the number of events in the event listing. To enable it, edit opennms.properties. (Bug #3675)

  • The quick search box was moved to be below the current outages box on the front page. (Bug #3849)

  • Events for Net-SNMP diskTable DISMAN traps were added. (Bug #3850)

  • Query-by-example now lets you filter by node in the notification list. (Bug #3899)

  • The remote poller map's Mapquest implementation now supports click and double-click to mimic Mapquest's behaviour. (Bug #3901)

  • Next and previous links are now at the bottom of event, notification, and outage list pages, as well as the top. (Bugs #3910 and #3932)

  • You can now use %shorttime% in notifications for a more compact date. (Bug #3917)

  • A vacuumd automation has been added to automatically clean out old remote poller database entries. (Bug #3923)

  • Errors at startup relating to sockets (address already in use, etc.) will now appear in the manager.log alongside other startup errors to ease debugging. (Bug #3940)

Bug Fixes

  • Fix problems on system with incorrect IPv6 configuration. (Bug #1959)

  • Fixed incorrect "The database server's error messages are not in English" errors on installation. (Bug #3296)

  • The "Add Node" UI is now smarter about what it writes to disk. (Bug #3443)

  • Sorting was fixed on the advanced alarm search results. (Bug #3589)

  • The opennms-contrib debian package now properly depends on libxml-twig-perl. (Bug #3722)

  • The Solaris packages play better with system boot now. (Bug #3802)

  • The Debian and RPM packages are more explicit about what needs to be done on post-installation. (Bug #3848)

  • The data collection failed event tells you what failed again. (Bug #3869)

  • A number of null pointer issues that could cause linkd to not create links between nodes were fixed. (Bug #3871)

  • Spring security settings were fixed so dashboard-only users can properly connect to the dashboard again. (Bug #3900)

  • Inline thresholding is enabled by default again, as it was late in the 1.6.x series. (Bug #3912)

  • A number of regex pattern validation bugs in our config handling have been fixed. (Bug #3915)

  • The notification browser now properly shows only a given user's notifications when a filter has been applied. (Bug #3939)

  • The jar installer now handles errors a little more gracefully on Windows. (Bug #3953)

  • Syslogd had a number of line-matching bugs that have been fixed. (Bug #3958)

Changes in OpenNMS 1.8 Since 1.6

OpenNMS 1.8.x is the latest stable OpenNMS series. Here is a high-level overview of what's changed since the 1.6.x series.

Architectural Changes

DAO Updates

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

Database Versioning

The OpenNMS upgrade process now uses LiquiBase for managing schema changes between versions. It is even more strongly recommended than usual that you back up your database before upgrading.

OSGi Preparation

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

Spring 3.0

OpenNMS was updated to use Spring 3.0.

Test Framework Updates

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

New Features

Core and Infrastructure

Pinger

A new multithreaded, high-performance ping infrastructure was added used by all subsystems that talk ICMP.

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.

Discovery and Capability Scanning

Provisioning

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.

DNS Importing

Provisiond is able to provision nodes based on a DNS zone transfer.

Automatic Map Creation

Provisiond can automatically create maps and link nodes together when they are provisioned.

New Capsd Plugins

JDBCQueryPlugin, JMXSecurePlugin, WebPlugin, WmiPlugin, XmpPlugin

Monitoring and Data Collection

Mobile Sequence and SMS Ping Monitors

A new pair of monitors have been added that have the ability to perform monitoring of cellular networks with phones attached to the OpenNMS server.

Remote Monitor

The remote monitor has been enhanced to communicate with the OpenNMS server through HTTP (which makes it proxyable).

TCP RRD Strategy

A data collection strategy that allows pushing collected data over the network.

SNMP Poller

A service that let you snmp poll the interface operational and administration status (up/down) for selected interfaces

WMI Support

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

XMP Support

Support has been added for the XML Management Protocol (Cartographer).

New Poller Monitors

BSFMonitor, JDBCQueryMonitor, JMXSecureMonitor, MemcachedMonitor, WebMonitor, WmiMonitor, XmpMonitor

Events, Alarms, Notifications, and Acknowledgement

Acknowledgement Daemon

A daemon for interacting with acknowledgements programmatically has been added. This will open up APIs for acknowledging alarms through cell phone, IM, e-mail, and so on.

Asterisk Notifications Support

It is now possible to integrate with an Asterisk server to send notifications as phone calls.

Microblog Notifications Support

It is now possible to send notifications through Twitter, Identi.ca, and similar services.

User Interface and Reporting

Adobe AIR Client

An Adobe AIR based client was added.

SVG Map Updates

The topological map support has been updated to work properly in all major browsers with SVG support, and has had a significant number of other enhancements.

Remote Poller Maps

A new map displaying remote poller status was added.

Mobile Browser Cleanups

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

Reporting

Reporting has been enhanced greatly to support Jasper reports and better scheduling.

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.

Changes in OpenNMS 1.8.0

New Features and Enhancements

  • Support was added for notifications through microblogs like Twitter and Identi.ca. (Bug #3530)

  • Syslogd configuration group matching has been enhanced in a number of ways. (Bug #3831)

  • A number of data collection resources were changed to use the SiblingColumnStorageStrategy. (Bug #3842)

Bug Fixes

  • Some confusing output in the LiquiBase upgrade process was fixed. (Bug #3214)

  • Event listings did not allow filtering by date in 1.7. (Bug #3586)

  • "All items" in the event list would not list all items. (Bug #3590)

  • A provisiond rescan of nodes that were provisioned by Capsd would delete the nodes. (Bug #3819)

  • When Capsd is disabled, it was impossible to remove nodes through the UI. (Bug #3836)

Chapter 3. 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