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.8.9 is the latest in the 1.8 series of production-ready OpenNMS releases.
Since 1.8.8, a few bug fixes were added, including a fix for a database check race condition that could cause OpenNMS to not start.
The codename for 1.8.9 is Dickcissel
Release 1.8.8 is the latest in the 1.8 series of production-ready OpenNMS releases.
Since 1.8.7, a number of bug fixes and enhancements were added, including many new reporting updates, and the ability to run system reports from the UI for debugging purposes.
The codename for 1.8.8 is Black-bellied Storm-petrel
Release 1.8.7 is the latest in the 1.8 series of production-ready OpenNMS releases.
Since 1.8.6, a number of bug fixes and enhancements were added, including new reports for Database Reporting
The codename for 1.8.7 is Chuck-will's-widow
Release 1.8.6 is the latest in the 1.8 series of production-ready OpenNMS releases.
Since 1.8.5, a number of bug fixes and enhancements were added, including SNMP and Linkd fixes, ACL fixes, and more.
The codename for 1.8.6 is King Rail
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 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 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 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 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 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
Release 1.7.92 is the second release candidate in the 1.8 series. It represents what will eventually become OpenNMS 1.8.0 when it is declared stable.
Since 1.7.91, more bugfixing has been going on in preparation for the 1.8 release.
The codename for 1.7.92 is FRIA
Release 1.7.91 is the second release candidate in the 1.8 series. It represents what will eventually become OpenNMS 1.8.0 when it is declared stable.
Since 1.7.90, more bugfixing has been going on in preparation for the 1.8 release.
The codename for 1.7.91 is JFGI
Release 1.7.90 is the first release candidate in the 1.8 series. It represents what will eventually become OpenNMS 1.8.0 when it is declared stable.
Since 1.7.10, more bugfixing and feature work has been going on in preparation for the 1.8 release.
The codename for 1.7.90 is Born Slippy
Release 1.7.10 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.9, more bugfixing has been going on in preparation for the 1.8 release, as well as the addition of a few new features.
The codename for 1.7.10 is Bebop
Release 1.7.9 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.8, more bugfixing has been going on in preparation for the 1.8 release, as well as the addition of a few new features.
The codename for 1.7.9 is Jack
Release 1.7.8 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.7, more bugfixing has been going on in preparation for the 1.8 release, as well as the addition of a few new features.
The codename for 1.7.8 is Serenity
Release 1.7.7 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.6, more bugfixing has been going on in preparation for the 1.8 release, as well as the addition of a few new features.
The codename for 1.7.7 is Clyde
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 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 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 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 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 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 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.10 is a minor feature release in the 1.6 series.
The codename for 1.6.10 is Cowboy.
Release 1.6.9 is a minor feature release in the 1.6 series.
The codename for 1.6.9 is Bauer.
Release 1.6.8 is a minor feature release in the 1.6 series.
The codename for 1.6.8 is Easy Button.
Release 1.6.7 is a minor feature release in the 1.6 series.
The codename for 1.6.7 is Bonnie.
Release 1.6.6 is a bugfix release in the 1.6 series. It is a recommended upgrade for all users.
The codename for 1.6.6 is Helmethead.
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 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 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 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
Installer still has RCS-style $Id$ tag in banner (Issue NMS-3922)
OpenNMS unable to connect to opennms database with opennms username (Issue NMS-4392)
Delete Nodes Button is a no-op (Issue NMS-4393)
Clicking the Delete Icon next to a entity (node, interface, service) defined in the Edit provisioning group page causes exception (Issue NMS-4394)
Attempting to delete a service on a provisioned node produces an error (Issue NMS-4395)
Liquibase: ERROR: there is no unique constraint matching given keys for referenced table "datalinkinterface" (Issue NMS-3465)
webapps won't deploy with Tomcat in 1.7.7 and 1.7.8-SNAPSHOT (Issue NMS-3469)
Can't proceed in Reports Database Run (Issue NMS-3717)
Invoking rest method with orderBy triggers sql error (Issue NMS-3756)
JRFontNotFoundException for Early-Morning-Report (Issue NMS-4102)
On IE8/Win7 the date in the page banner is shown twice (Issue NMS-4146)
"View Node Link Detailed Info" problem (Issue NMS-4243)
Date offsets incorrectly applied when batch reports (Issue NMS-4253)
calender report shows two month back outages (Issue NMS-4269)
Upgrade from jetty 6.1.24 to 6.1.26 breaks AJP13-connections from apache 2.2.x (Issue NMS-4275)
OpenJDK fails privatevoidcheckJvmName() check (Issue NMS-4277)
Missing fonts when running newly commited reporting stuff in 1.8.7 (Issue NMS-4286)
NPE when trying to generate reports from JRB datasources (Issue NMS-4287)
Build failure - NtpDetector tests fail (Issue NMS-4292)
Remove option C from SNMP Primary pick-list in provisioning groups editor (Issue NMS-4293)
Node-Availability-Report failing - possibly due to a parameter that should be marked notForPrompting (Issue NMS-4294)
JRobin VDEFs sometimes do not work (Issue NMS-4295)
Provisiond discovers services on capsd provisioned nodes (Issue NMS-4297)
Default categories for CIORPRTS (Issue NMS-4299)
linkd UndeclaredThrowableException (Issue NMS-4303)
"View Node Ip Route Info" link causes exception (Issue NMS-4305)
Topo map error popup: Load Label Map failed (Issue NMS-4306)
Provisioning Groups UI throws exception when trying to sync unmodified group (Issue NMS-4308)
duplicate jars in packages (Issue NMS-4310)
Asset adapter does not store Hex-STRINGs (Issue NMS-4312)
Dashboard loading image tag missing (Issue NMS-4314)
Serial Interface Utilization Report (Issue NMS-4315)
[Build] Some changes needed to get a clean build in Eclipse (Issue NMS-4320)
PSQLException - Configure SNMP Data Collection per Interface (Issue NMS-4321)
Fonts Very Large on KSC Reports and Admin Surveillance Categories (Issue NMS-4322)
Interface Page Broken in 1.8 Testing (Issue NMS-4323)
Opennms cannot start up without Internet access (Issue NMS-4341)
Make compile.pl / assemble.pl actually exit with maven exit code (Issue NMS-4349)
generic values wrong for certain OIDs in Cisco2.events.xml (Issue NMS-4351)
Package building fails on Ubuntu due to default shell usage (Issue NMS-4357)
Exception raised when trying to view ip route info (Issue NMS-4362)
Change the logmsg and description fields for events and alarms to text object. (Issue NMS-4369)
OpenNMS will not start if unable to connect to the database as "postgres" (admin) user (Issue NMS-4378)
Provisioner always punts on deleteService events when discovery not enabled (Issue NMS-4379)
Make sure tests pass on bamboo (Issue NMS-4384)
Upgrade JasperReports 3.6.0 to 3.7.4 (Issue NMS-4103)
Sort saved database Reports and display more than 10 of them (Issue NMS-4201)
dispatcher-servlet.xml should be listed as a 'config' file for debian package install (Issue NMS-4296)
reportd-configuration.xml, update quartz URL (Issue NMS-4318)
Customize Subject on Emailed Batch Reports (Issue NMS-4331)
Add a build script to clean everything (top-level and full assembly) (Issue NMS-4386)
make it easier to open support tickets from the web UI (Issue NMS-4307)
icmp and http thresholds not working properly (Issue NMS-1657)
Going to edit KSC reports generates an uncaught exception (Issue NMS-3414)
Going to edit KSC reports generates an uncaught exception (Issue NMS-3414)
Yet another uncaught exception, KSC reports (Issue NMS-3455)
Home / Admin / Provisioning Groups page generating bad HTML when a provisioning group has an apostrophe in the name (Issue NMS-3601)
DNS outage identified on interface X with reason code: IOException while polling address (Issue NMS-4071)
ThresholdingVisitor: create: Can't create ThresholdingVisitor for <IP ADDRESS> (Issue NMS-4233)
Two BGP-related SNMP graphs use daily RRAs (Issue NMS-4245)
Acknowledgement Service bails when an ack is sent for an invalid ID (Issue NMS-4248)
In-line thresholding should ignore Aliased Resources if they are not enabled (Issue NMS-4255)
Fix lower limit in Net-SNMP CPU graphs (Issue NMS-4257)
Make SNMPv2c the default in web SNMP config dialog (Issue NMS-4263)
build blacklists JDKs other than version 1.5 or 1.6 (Issue NMS-4270)
OpenJDK fails privatevoidcheckJvmName() check (Issue NMS-4277)
Wrongly substituted path in some reports ("last month")? (Issue NMS-4288)
SNMP Asset Provisioning Adapter: suppress output like No such instance (Issue NMS-4173)
Add new options for domain/ifalias resource collection (Issue NMS-4239)
Improve Liebert power-related SNMP data collection and resource graph definitions (Issue NMS-4241)
Create performance resource graphs for MS HTTP stats (Issue NMS-4242)
SNMP Asset Provisioning Adapter: suppress output like No such instance (Issue NMS-4173)
Add a few more Cisco Catalyst sysObjectIDs to default Linkd config (Issue NMS-4191)
Add events for Compuware ServerVantage traps (Issue NMS-4195)
Reportd should create events run or delivery failure (Issue NMS-4213)
make build system Maven3-compatible (Issue NMS-4235)
Web users can bypass ACLs by editing params of element/node.jsp URLs (Issue NMS-3184)
Home / Admin / Provisioning Groups page generating bad HTML when a provisioning group has an apostrophe in the name (Issue NMS-3601)
Bug in netapp.fsfile report (Issue NMS-4171)
deprecated -c installer option does not produce a warning or error (Issue NMS-4174)
Net-SNMP agent 5.5 always misreports sysObjectID as ".1.3" or ".0.1" (Issue NMS-4192)
Notifications fail when Notification name is longer than 63 chars (Issue NMS-4194)
NPE in "View Node Link Detailed Info" (Issue NMS-4215)
deleting old notifications is slow (Issue NMS-4217)
SNMP fails while accessing a Dell/Avocent 2161DS KVM Device (Issue NMS-4219)
1.8.5 Solaris package fails to install (Issue NMS-4227)
JMX datacollection aliases longer than 19 characters (Issue NMS-4236)
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)
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)
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)
It is now possible to search for a node by node ID and foreign source. (Bugs #2914 and #3796)
The Page Sequence Monitor now supports matching the Location: field of a 3xx REDIRECT. Note that the behavior of following a POST redirect with a GET automatically has changed. See the bug for more details. (Bug #3785)
The node page now displays the foreign source if it has one. (Bug #3789)
The "Delete Node" admin page would delete even if you clicked "Cancel." (Bug #3574)
Device icons stick when attempting to drag and drop in SVG maps. (Bug #3750)
Vacuumd would fail in some cases when for-each-result=false. (Bug #3786)
RADIUS authentication would fail because of a missing gnu-crypto dependency. (Bug #3801)
Liquibase sequence repair changeset could set sequences incorrectly on upgrade. (Bug #3810)
Exceptions on the server side could cause the remote monitor to exit. (Bug #3811)
Provisiond fires importSuccessful events now. (Bug #3518)
A number of bugs in IE's handling of window.location were fixed. (Bugs #3532 and #3729)
PDF availability reports now render properly. (Bug #3745)
RRD queueing threads now identify themselves properly in the logs. (Bug #3768)
The up button in SVG maps was failing when there was no up map. (Bug #3772)
Outages in the node page are now properly sorted. (Bug #3775)
An exception loading the RANCID API was fixed. (Bug #3776)
Provisiond was logging to output.log. (Bug #3791)
Classes logging through LogUtils.fatalf would lose the stack trace. (Bug #3792)
Exceptions which occurred in the poller back end could cause the remote poller to exit (Bug #3793)
Exceptions during remote poller map updates could cause future updates to fail. (Bug #3794)
Javamail was spitting out an insane amount of debug info. (Bug #3795)
Support for data collection from JMX MXBeans was added. (Bug #1444)
Support for adding asset data in a provisiond import was added. (Bug #2091)
JavaMail defaults to using quoted-printable encoding when sending mail. (Bug #2825)
Support for collecting JMX data over SSL was added. (Bug #3225)
The configuration files in examples/ have been updated to conform to current best practices. (Bug #3231)
It is now possible to send an event to reload the thresholding configuration. (Bug #3324)
You can now sort the alarms list by severity. (Bug #3553)
The node page now shows critical path information. #3674)
A remote poller map UI was added. See here for details.
A large number of enhancements were made to the maps.
The reporting engine has gone through a number of enhancements since 1.7.10.
A bug in handling tabs in include files was fixed. (Bug #735)
A bug where SVG availability reports would cause an acrobat error was fixed. (Bug #1247)
A bug in handling percent signs was fixed. (Bug #2856, #2888, and #3317, and #3429)
Encoding bugs in marshalling and unmarshalling config files were fixed. (Bug #3125)
A bug where OpenNMS would not shut down properly was fixed. (Bug #3261)
A bug where in-line thresholding would cause a large startup delay was fixed. (Bug #3554)
The event ID was missing from the notification list. (Bug #3558)
A bug that caused Jetty startup to take a long time was fixed. (Bug #3604)
The Debian packages were missing the RXTX library for the SMS monitor. (Bug #3648)
An exception in the dashboard was fixed. (Bug #3700)
Support for collecting MXBeans (composite attributes) was added to the JMX collector. (Bug #1444)
Support for thresholding without storing RRD/JRB data was added. (Bugs #2733 and #3575)
The remote monitor can now talk to the OpenNMS management system through HTTP or RMI. For details, see the Configurable Remoting specification.
It is now possible to push performance (RRD) data to an external daemon. For details, see the Performance Data Exporter specification.
Support for Jasper reports has been added, as well as a rework of the reporting daemon. For details, see the Jasper Report Integration specification.
The PageSequenceMonitor is now capable of capturing values and using them in a later part of the sequence. (Bug #3142)
Support for TIJMP and OProfile profiler have been added to the OpenNMS command-line. (Bug #3543)
The drop-down list of resource types in the threshold editor now shows labels instead of the resource type name. (Bug #3547)
The DNS monitor can now be configured to specify which return codes are considered a failed poll. (Bug #3564)
Resources from the apCntTable on Cisco (former Arrowhead) CSS load balancers now have human-readable indexes. (Bug #3577)
The web UI shows a less confusing/scary error message when exceptions occur. (Bug #3601)
Specific scheduled outages was showing dates as roman numerals for users in certain locales. (Bug #3312)
A performance issue in thresholding caused by excessive database traffic has been resolved. (Bug #3446)
KSC reports that referenced a deleted node would fail with an exception. (Bug #3535)
An exception when configuring discovery was fixed. (Bug #3580)
A regression in HTTP data collection that could occur with certain configurations was resolved. (Bug #3605)
In some cases, event handling code would use an invalid hostname when parsing addresses. (Bug #2587)
A bug in URL calculation was fixed. (Bug #3348)
A bug in the GpPoller's timeout management was fixed. (Bug #3401)
An error in the DHCP monitor was fixed. (Bug #3445)
An issue with walk="true" and match-all="count" in the SnmpPoller was fixed. (Bug #3447)
A number of performance and usability fixes were made to the scheduled outages editor. (Bug #3549)
Thresholding packages can now contain multiple thresholding groups. (Bug #3390)
HTTP data collection logs give better debug information. (Bug #3452)
Data collection and graphing has been added or updated for Liebert and Server Technology Sentry devices. (Bugs #3522, #3523, and #3538)
A new configurable sibling-column storage strategy was added. (Bug #3528)
The mock SNMP agent has proper command-line parsing and better resource location. (Bug #3546)
The remote poller now works better when behind restrictive firewalls. #2827)
Availability report sub-headers were missing spaces. (Bug #3486)
The NRPE Capsd plugin now properly detects services in a WARNING/CRITICAL state. (Bug #3521)
% symbols can now be properly expanded in notification commands. (Bug #3536)
Logging was improved for the LDAP monitor. (Bug #3381)
Data collection and graphing has been added or updated for AudioCodes DS1, Cisco, Riverbed Steelhead, SofaWare devices. (Bugs #3385, #3441, #3455, #3458, #3464, and #3465)
The documentation for the unix time monitor now includes persisting clock skew. (Bug #3388)
It is now possible to configure a list of fields which are allowed to contain raw HTML in node assets. (Bug #3392)
A null pointer exception when creating scheduled outages has been fixed in UI. (Bug #3456)
A new installation wizard has been added, which allows you to configure the administrator password, database configuration, etc. upon startup when not configured. (Bug #3321)
Thresholds for counter datasources didn't handle wrapping correctly. (Bug #3194)
The Capsd rescan queue now checks for an existing host entry before scheduling a new rescan. (Bug #3375)
The FTP monitor incorrectly expected a very specific error message when checking for "not logged in" errors. (Bug #3376)
Dhcpd now properly honors the extended mode configuration in
dhcpd-configuration.xml
.
(Bug #3448)
The OpenNMS startup script no longer exits because of a missing PostgreSQL, since it is possible to run OpenNMS and the database on separate hosts. (Bug #3461)
The SNMP collector would generate forceRescan events under certain conditions,
which can cause performance issues in Capsd. The default is now to not
send these events. To re-enable this behavior, set
"org.opennms.netmgt.collectd.SnmpCollector.forceRescan = true
" in your
opennms.properties
file.
(Bugs #3389
and #3459)
The new in-memory thresholder now supports non-IP interfaces. (Bug #2711)
Linkd was updated with support for a number of HP ProCurve switches. (Bug #3076)
The web UI now (configurably) supports asynchronously loading some parts of the front page. (Bug #3165)
Data collection and graphing has been added or updated for Trango, Cisco AP1200, Cisco UBR/DOCSIS, Cisco IP SLA, Cisco CSS, Cisco POE, Juniper J-Series, Dell DRAC, Kyocera MITA Printer, Motorola CPEi 150 WiMAX, Blackberry, Equallogic iSCSI, NetApp, AS/400, and ININ Interaction Center devices (Bugs #3167, #3210, #3213, #3252, #3253, #3254, #3262, #3269, #3272, #3280, #3281, #3285, #3293, and #3308)
When you add a new interface, the landing page provides a breadcrumb back to the add interface page. (Bug #3186)
OpenNMS now supports tuning (or disabling) the JVM's DNS cache. (Bug #3215)
The trivial time monitor can now persist clock skew data for data collection. (Bug #3234)
A new monitor has been added for monitoring Dell OpenManage Chassis. (Bug #3243)
It is now possible to configure the SSL ciphers accepted by the internal Jetty
web server in opennms.properties
. As of 1.6.6, by default, a
number of older, insecure ciphers are excluded. (Bug
#3307)
The installer now accepts PostgreSQL 8.4.1+ for use with OpenNMS. Please note that PostgreSQL 8.4.0 has a bug that causes invalid results in some cases, and will not be supported. (Bug #3342)
An occasional error caused by malformed DNS requests was fixed. (Bug #1295)
OpenNMS now handles a number of configuration errors more gracefully. (Bugs #1526 and #1776)
In some cases, the ifIndex OpenNMS stores would not get updated on a Capsd rescan. (Bug #1578)
A layout issue in the asset modification page has been fixed. (Bug #1771)
A potential threading issue in notifications was fixed. (Bug #1803)
The page counts in the event display were sometimes incorrect. (Bug #1843)
OpenNMS now validates that ds-names are not too long for RRDtool (and JRobin) to handle. (Bug #1846)
Adding users with non-ASCII names caused an exception. (Bug #2977)
Syslogd had a race condition which sometimes garbled incoming logs. (Bug #3079)
RPM upgrades no longer clobber a number of configuration files. (Bugs #3122 and #3166)
Linkd had a threading issue which could cause occasional exceptions. (Bug #3123)
A bug in database queries related to the SNMP interface table has been fixed. (Bug #3179)
A bug in thresholding that caused multiple thresholds using the same datasource to not trigger has been fixed. (Bug #3193)
The BgpSessionPlugin could throw an exception during a Capsd rescan in some cases. (Bug #3198)
The availability reports listed time in 12-hour format, but failed to say AM or PM. (Bug #3208)
The snmpphysaddr in the database was too small for some large MAC addreses. (Bug #3216)
The JMX monitor did not honor the "retries" config attribute. (Bug #3232)
SNMP data collection and graphing configs have been updated to handle Net-SNMP graphs for varying kernel implementations. (Bug #3248)
Rates are now treated as counters for the purposes of thresholding. (Bug #3263)
URL parameters were ignored for HTTP GET and POST methods in the HttpCollector. (Bug #3266)
A few NullPointerExceptions were fixed in various places. (Bugs #3271 and #3345)
A date-parsing bug in Tl1d was fixed. (Bug #3318)
It is now valid to have no http-collection tags in the
http-datacollection-config.xml
filename. (Bug
#3343)
Some versions of RPM automatically generated perl dependencies, even though it should be disabled since they come from contrib/ scripts. (Bug #3344)
The JDBC code was vetted for possible connection and handle leaks that could occur when a database exception is thrown. (Bug #3346)
An error in the build system that would cause intermittent failures was resolved. (Bug #3347)
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)
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.
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.
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)
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.
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
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