Copyright © 2004-2008 The OpenNMS Group, Inc.
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
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:
Copyright © 2002-2008 The OpenNMS Group, Inc.
Original code base for OpenNMS version 1.0.0 Copyright © 1999-2001 Oculan Corporation.
Mapping code Copyright © 2003 Networked Knowledge Systems, Inc.
ScriptD code Copyright © 2003 Tavve Software Company.
Please send any omissions or corrections to this document to Tarus Balog.
Table of Contents
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 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 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 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.
Table of Contents
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.
OpenNMS was updated to use Spring 2.5.
Many more parts of the OpenNMS data access layer have been updated to be compatible with Hibernate and database abstraction.
Some daemon architectural changes have happened to support an eventual integration with OSGi (post-1.8).
A number of handy annotation-based test framework changes have been made, using JUnit 4.
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.
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.
A RADIUS authentication provider has been added.
Some updates have been made to the web UI to make them more mobile-friendly.
An Adobe AIR based client was added.
Support has been added for polling and datacollection from Windows Management Instrumentation.
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)
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.
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)
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)
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.
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.
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.
Enables dotall mode. In dotall mode, the expression . matches any character, including a line terminator. By default this expression does not match line terminators.
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.
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.
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.
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.
Table of Contents
Here is the list of known issues in this release of OpenNMS.
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.
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.
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
Table of Contents
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.
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.
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