Copyright © 2004-2009 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-2009 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.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 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.4 is the fourth 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 is the fourth 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 is the third 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 is the second 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 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
Table of Contents
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)
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)
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)
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)
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)
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)
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.
Many more parts of the OpenNMS data access layer have been updated to be compatible with Hibernate and database abstraction.
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.
Some daemon architectural changes have happened to support an eventual integration with OSGi (post-1.8).
OpenNMS was updated to use Spring 3.0.
A number of handy annotation-based test framework changes have been made, using JUnit 4.
A new multithreaded, high-performance ping infrastructure was added used by all subsystems that talk ICMP.
A RADIUS authentication provider has been added.
An integration with RANCID has been added. If configured, extra data about node configuration, etc. will be available in the node UI and maps.
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.
Provisiond is able to provision nodes based on a DNS zone transfer.
Provisiond can automatically create maps and link nodes together when they are provisioned.
JDBCQueryPlugin, JMXSecurePlugin, WebPlugin, WmiPlugin, XmpPlugin
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.
The remote monitor has been enhanced to communicate with the OpenNMS server through HTTP (which makes it proxyable).
A data collection strategy that allows pushing collected data over the network.
A service that let you snmp poll the interface operational and administration status (up/down) for selected interfaces
Support has been added for polling and datacollection from Windows Management Instrumentation.
Support has been added for the XML Management Protocol (Cartographer).
BSFMonitor, JDBCQueryMonitor, JMXSecureMonitor, MemcachedMonitor, WebMonitor, WmiMonitor, XmpMonitor
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.
It is now possible to integrate with an Asterisk server to send notifications as phone calls.
It is now possible to send notifications through Twitter, Identi.ca, and similar services.
An Adobe AIR based client was added.
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.
A new map displaying remote poller status was added.
Some updates have been made to the web UI to make them more mobile-friendly.
Reporting has been enhanced greatly to support Jasper reports and better scheduling.
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.
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.
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)
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