<preface>
<title>Preface</title><para>
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.
</para><para>
The current corporate sponsor of OpenNMS is
<ulink>The OpenNMS Group</ulink>,
which also owns the OpenNMS trademark.
</para><para>
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:
</para><itemizedlist>
<listitem>
<para>
<trademark>Copyright </trademark> 2002-2009
<ulink>The OpenNMS Group, Inc.</ulink>
</para>
</listitem><listitem>
<para>
Original code base for OpenNMS version 1.0.0
<trademark>Copyright </trademark> 1999-2001
<ulink>Oculan Corporation</ulink>.
</para>
</listitem><listitem>
<para>
Mapping code <trademark>Copyright </trademark> 2003
<ulink>Networked Knowledge Systems, Inc.</ulink>
</para>
</listitem><listitem>
<para>
ScriptD code <trademark>Copyright </trademark> 2003
<ulink>Tavve Software Company</ulink>.
</para>
</listitem>
</itemizedlist><para>
Please send any omissions or corrections to this document
to <ulink>Tarus Balog</ulink>.
</para>
</preface><chapter>
<title>Introduction</title><subtitle>About This Release</subtitle><section>
<title>Release 1.7.8</title><para>
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.
</para><para>
Since 1.7.7, <ulink>more bugfixing</ulink>
has been going on in preparation for the 1.8 release, as well as the addition of a few new features.
</para><para>
The codename for 1.7.8 is <emphasis>Serenity</emphasis>
</para>
</section><section>
<title>Release 1.7.7</title><para>
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.
</para><para>
Since 1.7.6, <ulink>more bugfixing</ulink>
has been going on in preparation for the 1.8 release, as well as the addition of a few new features.
</para><para>
The codename for 1.7.7 is <emphasis>Clyde</emphasis>
</para>
</section><section>
<title>Release 1.7.6</title><para>
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.
</para><para>
Since 1.7.5, more bugfixing has been going on, in preparation for the 1.8 release.
</para><para>
The codename for 1.7.6 is <emphasis>Orange Chicken</emphasis>
</para>
</section><section>
<title>Release 1.7.5</title><para>
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.
</para><para>
Since 1.7.4, more bugfixing has been going on, in preparation for the 1.8 release.
</para><para>
The codename for 1.7.5 is <emphasis>ShamWow!</emphasis>
</para>
</section><section>
<title>Release 1.7.4</title><para>
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.
</para><para>
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.
</para><para>
The codename for 1.7.4 is <emphasis>eels</emphasis>
</para>
</section><section>
<title>Release 1.7.3</title><para>
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.
</para><para>
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.
</para><para>
The codename for 1.7.3 is <emphasis>auto-tune</emphasis>
</para>
</section><section>
<title>Release 1.7.2</title><para>
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.
</para><para>
It contains a fully functional Provisiond, the only major missing feature is handling
newSuspect events like Capsd does.
</para><para>
1.7.2 is nearly identical to 1.7.1, and was released because of a <ulink>NullPointerException in the
SNMP poller</ulink> that was discovered shortly after the 1.7.1 release.
</para><para>
The codename for 1.7.2 is <emphasis>culpa</emphasis>
</para>
</section><section>
<title>Release 1.7.1</title><para>
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.
</para><para>
It contains a fully functional Provisiond, the only major missing feature is handling
newSuspect events like Capsd does.
</para><para>
The codename for 1.7.1 is <emphasis>Oops We Did It Again</emphasis>
</para>
</section><section>
<title>Release 1.7.0</title><para>
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.
</para><para>
The codename for 1.7.0 is <emphasis>GIRAFFES!</emphasis>
</para>
</section><section>
<title>Release 1.6.7</title><para>
Release 1.6.7 is a minor feature release in the 1.6 series.
</para><para>
The codename for 1.6.7 is <emphasis>Bonnie</emphasis>.
</para>
</section><section>
<title>Release 1.6.6</title><para>
Release 1.6.6 is a bugfix release in the 1.6 series. It is a recommended upgrade for all users.
</para><para>
The codename for 1.6.6 is <emphasis>Helmethead</emphasis>.
</para>
</section><section>
<title>Release 1.6.5</title><para>
Release 1.6.5 is a small bugfix release in the 1.6 series. It is a recommended upgrade for all users.
</para><para>
The codename for 1.6.5 is <emphasis>Eastern Conference Finals</emphasis>.
</para>
</section><section>
<title>Release 1.6.4</title><para>
Release 1.6.4 continues the 1.6 series with a fix for a showstopper exception
in OpenNMS 1.6.3. It is a <emphasis>strongly</emphasis> recommended upgrade
for all users.
</para><para>
The codename for 1.6.4 is <emphasis>mea</emphasis>.
</para>
</section><section>
<title>Release 1.6.3</title><para>
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.
</para><para>
The codename for 1.6.3 is <emphasis><ulink>waterfall</ulink></emphasis>.
</para>
</section><section>
<title>Release 1.6.2</title><para>
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.
</para><para>
The codename for 1.6.2 is <emphasis>software mercenaries</emphasis>.
</para>
</section><section>
<title>Release 1.6.1</title><para>
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.
</para><para>
The codename for 1.6.1 is <emphasis>bamboo army</emphasis>.
</para>
</section><section>
<title>Release 1.6.0</title><para>Release 1.6.0 is the first stable release in the OpenNMS 1.6 series.</para><para>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.
</para><para>In that time, the unstable codebase solidified to the point that The OpenNMS
Group supported it as if it were stable; it was <emphasis>at least</emphasis> as
stable as 1.2.x was, but many users held off on upgrading because of the unstable
moniker.</para><para>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.</para><para>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.</para><para>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.</para><para>Please, let us know if you have any problems at all in our <ulink>Bugzilla bug tracker</ulink>.</para>
</section>
</chapter><chapter>
<title>What's New?</title><subtitle>Changes in This OpenNMS</subtitle><section>
<title>Changes in OpenNMS 1.7.x</title><para>
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.
</para><section>
<title>Architectural Changes</title><glosslist>
<glossentry>
<glossterm>Database Schema Updates</glossterm><glossdef>
<para>The OpenNMS installer has been changed to use
<ulink>LiquiBase</ulink> for database
schema management. It has been tested with a number of upgrade paths, but
<emphasis>it is even more strongly recommended than usual that you back up
your database before upgrading</emphasis>.</para>
</glossdef>
</glossentry><glossentry>
<glossterm>DAO Updates</glossterm><glossdef>
<para>Many more parts of the OpenNMS data access layer have been updated to
be compatible with Hibernate and database abstraction.</para>
</glossdef>
</glossentry><glossentry>
<glossterm>OSGi Preparation</glossterm><glossdef>
<para>Some daemon architectural changes have happened to support an
eventual integration with OSGi (post-1.8).</para>
</glossdef>
</glossentry><glossentry>
<glossterm>Spring 2.5</glossterm><glossdef><para>OpenNMS was updated to use Spring 2.5.</para></glossdef>
</glossentry><glossentry>
<glossterm>Test Framework Updates</glossterm><glossdef>
<para>A number of handy annotation-based test framework changes have
been made, using <ulink>JUnit</ulink> 4.</para>
</glossdef>
</glossentry>
</glosslist>
</section><section>
<title>New Features</title><glosslist>
<glossentry>
<glossterm>Acknowledgement Daemon</glossterm><glossdef>
<para>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.</para>
</glossdef>
</glossentry><glossentry>
<glossterm>Adobe AIR Client</glossterm><glossdef>
<para>An Adobe AIR based client was added.</para>
</glossdef>
</glossentry><glossentry>
<glossterm>Asterisk Notification Support</glossterm><glossdef>
<para>It is now possible to send notifications through Asterisk.</para>
</glossdef>
</glossentry><glossentry>
<glossterm>Capsd Replacement</glossterm><glossdef>
<para>A complete replacement for Capsd, called
"<emphasis>Provisiond</emphasis>" 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.</para><para>This includes a highly-scalable, highly-parallelizable threading
architecture which will be used for other parts of OpenNMS in future
releases.</para>
</glossdef>
</glossentry><glossentry>
<glossterm>DNS Importing</glossterm><glossdef>
<para>Provisiond is able to provision nodes based on a DNS zone transfer.</para>
</glossdef>
</glossentry><glossentry>
<glossterm>Automatic Map Creation</glossterm><glossdef>
<para>Provisiond can automatically create maps and link nodes together when they
are provisioned.</para>
</glossdef>
</glossentry><glossentry>
<glossterm>Mobile Sequence and SMS Ping Monitors</glossterm><glossdef>
<para>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.</para>
</glossdef>
</glossentry><glossentry>
<glossterm>Map Updates</glossterm><glossdef>
<para>The topological map support has been updated to work properly in all
major browsers with SVG support.</para>
</glossdef>
</glossentry><glossentry>
<glossterm>Mobile Browser Cleanups</glossterm><glossdef>
<para>Some updates have been made to the web UI to make them more
mobile-friendly.</para>
</glossdef>
</glossentry><glossentry>
<glossterm>RADIUS Authentication</glossterm><glossdef>
<para>A RADIUS authentication provider has been added.</para>
</glossdef>
</glossentry><glossentry>
<glossterm>RANCID Integration</glossterm><glossdef>
<para>An integration with RANCID has been added. If configured, extra data
about node configuration, etc. will be available in the node UI and maps.</para>
</glossdef>
</glossentry><glossentry>
<glossterm>RESTful Interface</glossterm><glossdef>
<para>A number of interfaces to OpenNMS data have been made available
through a RESTful interface, using the
<ulink>Jersey</ulink> API.</para><para>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.</para>
</glossdef>
</glossentry><glossentry>
<glossterm>Web UI Updates</glossterm><glossdef>
<para>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.</para>
</glossdef>
</glossentry><glossentry>
<glossterm>Web UI ACLs</glossterm><glossdef>
<para>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.</para>
</glossdef>
</glossentry><glossentry>
<glossterm>WMI Support</glossterm><glossdef>
<para>Support has been added for polling and datacollection from <ulink>Windows
Management Instrumentation</ulink>.</para>
</glossdef>
</glossentry>
</glosslist>
</section>
</section><section>
<title>Changes in OpenNMS 1.6.7</title><section>
<title>New Features and Enhancements</title><itemizedlist>
<listitem>
<para>The Capsd SNMP Plugin can now scan an SNMP table value to determine the
existence of a service. (Bug
<ulink>#1596</ulink>)</para>
</listitem><listitem>
<para>Support for Cisco moduleUp/moduleDown events was added. (Bug
<ulink>#3363</ulink>)</para>
</listitem>
</itemizedlist>
</section>
</section><section>
<title>Changes in OpenNMS 1.6.6</title><section>
<title>New Features and Enhancements</title><itemizedlist>
<listitem>
<para>The new in-memory thresholder now supports non-IP interfaces. (Bug
<ulink>#2711</ulink>)</para>
</listitem><listitem>
<para>Linkd was updated with support for a number of HP ProCurve switches. (Bug
<ulink>#3076</ulink>)</para>
</listitem><listitem>
<para>The web UI now (configurably) supports asynchronously loading some parts
of the front page. (Bug <ulink>#3165</ulink>)</para>
</listitem><listitem>
<para>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
<ulink>#3167</ulink>,
<ulink>#3210</ulink>,
<ulink>#3213</ulink>,
<ulink>#3252</ulink>,
<ulink>#3253</ulink>,
<ulink>#3254</ulink>,
<ulink>#3262</ulink>,
<ulink>#3269</ulink>,
<ulink>#3272</ulink>,
<ulink>#3280</ulink>,
<ulink>#3281</ulink>,
<ulink>#3285</ulink>,
<ulink>#3293</ulink>,
and <ulink>#3308</ulink>)</para>
</listitem><listitem>
<para>When you add a new interface, the landing page provides a breadcrumb back
to the add interface page. (Bug
<ulink>#3186</ulink>)</para>
</listitem><listitem>
<para>OpenNMS now supports tuning (or disabling) the JVM's DNS cache. (Bug
<ulink>#3215</ulink>)</para>
</listitem><listitem>
<para>The trivial time monitor can now persist clock skew data for data
collection. (Bug <ulink>#3234</ulink>)</para>
</listitem><listitem>
<para>A new monitor has been added for monitoring Dell OpenManage Chassis. (Bug
<ulink>#3243</ulink>)</para>
</listitem><listitem>
<para>It is now possible to configure the SSL ciphers accepted by the internal Jetty
web server in <filename>opennms.properties</filename>. As of 1.6.6, by default, a
number of older, insecure ciphers are excluded. (Bug
<ulink>#3307</ulink>)</para>
</listitem><listitem>
<para>The installer now accepts PostgreSQL 8.4.1+ for use with OpenNMS. Please note
that PostgreSQL 8.4.0
<ulink>has a bug</ulink>
that causes invalid results in some cases, and will not be supported. (Bug
<ulink>#3342</ulink>)</para>
</listitem>
</itemizedlist>
</section><section>
<title>Bug Fixes</title><itemizedlist>
<listitem>
<para>An occasional error caused by malformed DNS requests was fixed. (Bug
<ulink>#1295</ulink>)</para>
</listitem><listitem>
<para>OpenNMS now handles a number of configuration errors more gracefully. (Bugs
<ulink>#1526</ulink> and
<ulink>#1776</ulink>)</para>
</listitem><listitem>
<para>In some cases, the ifIndex OpenNMS stores would not get updated on a Capsd
rescan. (Bug <ulink>#1578</ulink>)</para>
</listitem><listitem>
<para>A layout issue in the asset modification page has been fixed. (Bug
<ulink>#1771</ulink>)</para>
</listitem><listitem>
<para>A potential threading issue in notifications was fixed. (Bug
<ulink>#1803</ulink>)</para>
</listitem><listitem>
<para>The page counts in the event display were sometimes incorrect. (Bug
<ulink>#1843</ulink>)</para>
</listitem><listitem>
<para>OpenNMS now validates that ds-names are not too long for RRDtool (and
JRobin) to handle. (Bug
<ulink>#1846</ulink>)</para>
</listitem><listitem>
<para>Adding users with non-ASCII names caused an exception. (Bug
<ulink>#2977</ulink>)</para>
</listitem><listitem>
<para>Syslogd had a race condition which sometimes garbled incoming logs. (Bug
<ulink>#3079</ulink>)</para>
</listitem><listitem>
<para>RPM upgrades no longer clobber a number of configuration files. (Bugs
<ulink>#3122</ulink> and
<ulink>#3166</ulink>)</para>
</listitem><listitem>
<para>Linkd had a threading issue which could cause occasional exceptions. (Bug
<ulink>#3123</ulink>)</para>
</listitem><listitem>
<para>A bug in database queries related to the SNMP interface table has been
fixed. (Bug <ulink>#3179</ulink>)</para>
</listitem><listitem>
<para>A bug in thresholding that caused multiple thresholds using the same datasource
to not trigger has been fixed. (Bug
<ulink>#3193</ulink>)</para>
</listitem><listitem>
<para>The BgpSessionPlugin could throw an exception during a Capsd rescan in some
cases. (Bug <ulink>#3198</ulink>)</para>
</listitem><listitem>
<para>The availability reports listed time in 12-hour format, but failed to say
AM or PM. (Bug <ulink>#3208</ulink>)</para>
</listitem><listitem>
<para>The snmpphysaddr in the database was too small for some large MAC addreses. (Bug
<ulink>#3216</ulink>)</para>
</listitem><listitem>
<para>The JMX monitor did not honor the "retries" config attribute. (Bug
<ulink>#3232</ulink>)</para>
</listitem><listitem>
<para>SNMP data collection and graphing configs have been updated to handle Net-SNMP
graphs for varying kernel implementations. (Bug
<ulink>#3248</ulink>)</para>
</listitem><listitem>
<para>Rates are now treated as counters for the purposes of thresholding. (Bug
<ulink>#3263</ulink>)</para>
</listitem><listitem>
<para>URL parameters were ignored for HTTP GET and POST methods in the HttpCollector.
(Bug <ulink>#3266</ulink>)</para>
</listitem><listitem>
<para>A few NullPointerExceptions were fixed in various places. (Bugs
<ulink>#3271</ulink>
and <ulink>#3345</ulink>)</para>
</listitem><listitem>
<para>A date-parsing bug in Tl1d was fixed. (Bug
<ulink>#3318</ulink>)</para>
</listitem><listitem>
<para>It is now valid to have no http-collection tags in the
<filename>http-datacollection-config.xml</filename> filename. (Bug
<ulink>#3343</ulink>)</para>
</listitem><listitem>
<para>Some versions of RPM automatically generated perl dependencies, even though it
should be disabled since they come from contrib/ scripts. (Bug
<ulink>#3344</ulink>)</para>
</listitem><listitem>
<para>The JDBC code was vetted for possible connection and handle leaks that could
occur when a database exception is thrown. (Bug
<ulink>#3346</ulink>)</para>
</listitem><listitem>
<para>An error in the build system that would cause intermittent failures was resolved.
(Bug <ulink>#3347</ulink>)</para>
</listitem>
</itemizedlist>
</section>
</section><section>
<title>Changes in OpenNMS 1.6.5</title><section>
<title>New Features and Enhancements</title><itemizedlist>
<listitem>
<para>Capsd will now use ifHighSpeed instead of ifSpeed when available. (Bug <ulink>#1822</ulink>)</para>
</listitem><listitem>
<para>The SNMP configuration shipped with OpenNMS now uses SNMP v2c, fewer retries,
and a longer timeout by default, for more efficient scanning. (Bug
<ulink>#3050</ulink>)</para>
</listitem><listitem>
<para>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
<ulink>#3096</ulink>,
<ulink>#3099</ulink>,
<ulink>#3109</ulink>,
and <ulink>#3138</ulink>)</para>
</listitem><listitem>
<para>Support has been added for using raw instance identifiers in
thresholds when no data source label can be inferred (Bug
<ulink>#3108</ulink>)</para>
</listitem><listitem>
<para>Support was added for a number of new Cisco devices in Linkd (Bug
<ulink>#3110</ulink>)</para>
</listitem><listitem>
<para>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
<ulink>#3156</ulink>)</para>
</listitem><listitem>
<para>Some tools have been added to OpenNMS "contrib" for creating SNMP walk dumps
suitable for debugging with OpenNMS's mock SNMP server. (Bug
<ulink>#3173</ulink>)</para>
</listitem><listitem>
<para>The default "Database" category now includes MSSQL and Oracle in addition
to MySQL and PostgreSQL. (Bug
<ulink>#3175</ulink>)</para>
</listitem>
</itemizedlist>
</section><section>
<title>Bug Fixes</title><itemizedlist>
<listitem>
<para>The Capsd HTTP plugin now properly honors response-text parameters. (Bug
<ulink>#2774</ulink>)</para>
</listitem><listitem>
<para>The HTTP collector now properly honors the "retry" parameter. (Bug
<ulink>#3133</ulink>)</para>
</listitem><listitem>
<para>The Hyperic HQ service monitor definition now detects Hyperic HQ 4.x properly.
(Bug <ulink>#3106</ulink>)</para>
</listitem><listitem>
<para>Multiple nodes with the same name/label can now be distinguished from each other
in category views. (Bug
<ulink>#3112</ulink>)</para>
</listitem><listitem>
<para>Vacuumd cleans out old (invalid) nodes from topology map tables. (Bug
<ulink>#3121</ulink>)</para>
</listitem><listitem>
<para>The JMX collector now works when store-by-group persisting is enabled. (Bug
<ulink>#3160</ulink>)</para>
</listitem><listitem>
<para>Configuration file filtering has been fixed so that tags aren't properly
expanded in opennms.properties. (Bug
<ulink>#3174</ulink>)</para>
</listitem><listitem>
<para>The remote poller build now ensures it is compiled with the correct version
of Groovy. (Bug
<ulink>#3176</ulink>)</para>
</listitem>
</itemizedlist>
</section><para>The full list of changes is available in <ulink>bugzilla</ulink>.</para>
</section><section>
<title>Changes in OpenNMS 1.6.4</title><para>
A <ulink>NullPointerException in the
SNMP poller</ulink> was found in OpenNMS 1.6.3, relating to the enhancements in <ulink>bug #3065</ulink>. The only change
in OpenNMS 1.6.4 is a fix for that exception.
</para>
</section><section>
<title>Changes in OpenNMS 1.6.3</title><section>
<title>New Features and Enhancements</title><itemizedlist>
<listitem>
<para>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 <ulink>#2768</ulink>)</para>
</listitem><listitem>
<para>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
<ulink>#2990</ulink>,
<ulink>#2998</ulink>,
<ulink>#3012</ulink>,
<ulink>#3013</ulink>,
<ulink>#3025</ulink>,
<ulink>#3064</ulink>,
and <ulink>#3068</ulink>)</para>
</listitem><listitem>
<para>Enhanced string extraction support in resourceLabels has been added
(Bug <ulink>#2997</ulink>)</para>
</listitem><listitem>
<para>The KSC report list is now viewable by read-only users (Bug <ulink>#3005</ulink>)</para>
</listitem><listitem>
<para>XML configuration file XSDs are now included in the distribution (Bug <ulink>#3006</ulink>)</para>
</listitem><listitem>
<para>Event translator matches can be performed against the name rather than the
value (Bug <ulink>#3049</ulink>)</para>
</listitem><listitem>
<para>Event parameter names are can now be expanded using the %parm% syntax
(Bug <ulink>#3061</ulink>)</para>
</listitem><listitem>
<para>The SNMP monitor can now include operator, operand, and observed value
in results string (Bug <ulink>#3065</ulink>)</para>
</listitem><listitem>
<para>Syslogd now has an optional "discard-uei" option to discard matching
UEIs (Bug <ulink>#3066</ulink>)</para>
</listitem><listitem>
<para>The model importer now supports scanning the node for non-IP interfaces
(Bug <ulink>#3075</ulink>)</para>
</listitem><listitem>
<para><ulink>A new monitor</ulink>
has been added which supports checking that a BGP peering partner is functional
(Bug <ulink>#3080</ulink>)</para>
</listitem><listitem>
<para>JFreeChart 3D bar charts have been enabled
(Bug <ulink>#3086</ulink>)</para>
</listitem>
</itemizedlist>
</section><section>
<title>Bug Fixes</title><itemizedlist>
<listitem>
<para>Thresholding on JMX collection has been fixed (Bug <ulink>#2512</ulink>)</para>
</listitem><listitem>
<para>Using multiple <package> statements in
<filename>linkd-configuration.xml</filename> now works (Bug <ulink>#2818</ulink>)</para>
</listitem><listitem>
<para>A bug in filter-based expressions was resolved (Bug <ulink>#2966</ulink>)</para>
</listitem><listitem>
<para>A bug interacting with newer versions of NSClient++ has been fixed (Bug <ulink>#2983</ulink>)</para>
</listitem><listitem>
<para>Altiga authentication success traps are now ignored (Bug <ulink>#3004</ulink>)</para>
</listitem><listitem>
<para>The JFreeChart charts layout was fixed (Bug <ulink>#3040</ulink>)</para>
</listitem><listitem>
<para>The mail transport monitor now works in read-only mode (Bug <ulink>#3071</ulink>)</para>
</listitem>
</itemizedlist>
</section><para>The full list of changes is available in <ulink>bugzilla</ulink>.</para>
</section><section>
<title>Changes in OpenNMS 1.6.2</title><section>
<title>New Features</title><itemizedlist>
<listitem>
<para>Ticketing integration support was added for <ulink>RT (Request Tracker)</ulink> (Bug <ulink>#2278</ulink>)</para>
</listitem><listitem>
<para>Jabber notifications now support configurations where the XMPP domain
server hostname don't match, e.g. Google Talk (Bug <ulink>#1387</ulink>)</para>
</listitem><listitem>
<para>KSC reports now auto-refresh every 5 minutes (Bug <ulink>#2899</ulink>)</para>
</listitem><listitem>
<para>New data collections and traps were added for various IETF, Cisco,
Juniper, AIX, and SNMP Informant MIBs. (Bugs <ulink>#2933</ulink>,
<ulink>#2934</ulink>,
<ulink>#2947</ulink>,
and <ulink>#2954</ulink>)</para>
</listitem>
</itemizedlist>
</section><section>
<title>Bug Fixes</title><itemizedlist>
<listitem>
<para>Jabber notifications would stop sending if the connection to the XMPP
server failed; it now reconnects automatically. (Bug <ulink>#1860</ulink>)</para>
</listitem><listitem>
<para>A couple of unhandled exceptions were fixed. (Bugs <ulink>#1599</ulink> and
<ulink>#1748</ulink>)</para>
</listitem><listitem>
<para>The PL/pgsql version of IPLIKE did not work with expressions that used
multiple comma-separated values. (Bug <ulink>#2803</ulink>)</para>
</listitem><listitem>
<para>HTTP data collection only stored values for one URL, even if multiple
URLs were specified in the http-datacollection-config.xml. (Bug <ulink>#2940</ulink>)</para>
</listitem><listitem>
<para>The mail transport monitor would not always honor the delete-all-mail
attribute. (Bug <ulink>#2969</ulink>)</para>
</listitem>
</itemizedlist>
</section><para>The full list of changes is available in <ulink>bugzilla</ulink>.</para>
</section><section>
<title>Changes in OpenNMS 1.6.1</title><section>
<title>New Features</title><itemizedlist>
<listitem>
<para>KSC reports are now sorted by title. (Bug <ulink>#2817</ulink>)</para>
</listitem><listitem>
<para>You can now use ${ipaddr} in URLs for in the Page Sequence Monitor. (Bug <ulink>#2840</ulink>)</para>
</listitem><listitem>
<para>Support for new Fortinet traps was added. (Bug <ulink>#2847</ulink>)</para>
</listitem><listitem>
<para>A monitor for the trivial time service was added. (Bug <ulink>#2864</ulink>)</para>
</listitem>
</itemizedlist>
</section><section>
<title>Bug Fixes</title><itemizedlist>
<listitem>
<para>An error when attempting to delete URLs in the discovery admin page
was fixed. (Bug <ulink>#2829</ulink>)</para>
</listitem><listitem>
<para>The poller was no longer setting the reason on nodeLostService events.
(Bug <ulink>#2846</ulink>)</para>
</listitem><listitem>
<para>An exception in the path outages web UI when using PostgreSQL 8.3
was fixed. (Bug <ulink>#2866</ulink>)</para>
</listitem><listitem>
<para>A few issues with ticket and alarm triggers were fixed. (Bugs <ulink>#2868</ulink> and <ulink>#2869</ulink>)</para>
</listitem><listitem>
<para>A bug that would cause the OTRS ticketer plugin to ignore otrs.properties was
fixed (Bug <ulink>#2870</ulink>)</para>
</listitem><listitem>
<para>An invalid regular expression in the thresholding configuration could
cause thresholding not to happen and throw an exception. (Bug <ulink>#2873</ulink>)</para>
</listitem><listitem>
<para>The HTTP data collector now behaves properly when storeByGroup=true (Bug <ulink>#2875</ulink>)</para>
</listitem><listitem>
<para>The SSH monitor would cause a thread lock if a socket allowed connection
but never returned any data. (Bug <ulink>#2896</ulink>)</para>
</listitem><listitem>
<para>The mail transport monitor would not retry during the read test. (Bug <ulink>#2897</ulink>)</para>
</listitem>
</itemizedlist>
</section><section>
<title>Configuration/Behavior Changes</title><para>A number of changes were done to configs to clean up usage and get rid of old
unnecessary tags.</para><itemizedlist>
<listitem><para><filename>capsd-configuration.xml</filename>: capsd-configuration.xml no longer
requires the <code>user-defined</code> attribute. (Bug <ulink>#2872</ulink>)</para></listitem><listitem><para><filename>eventconf.xml</filename>: the <logmsg> tag now accepts an
optional attribute, <code>notify</code>, which can be set to <code>false</code>
to unilaterally suppress any notifications on that event. (Bug <ulink>#2891</ulink>)</para></listitem><listitem><para><filename>http-datacollection-config.xml</filename>: The <code>name</code> 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 <ulink>#2876</ulink>)</para></listitem><listitem>
<para><filename>http-datacollection-config.xml</filename>: The <code>url</code> tag can now take
a number of options relating to how regular expressions should be parsed. (Bug
<ulink>#2882</ulink>)</para><glosslist>
<glossentry>
<glossterm><ulink>canonical-equivalence</ulink></glossterm><glossdef><para>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.</para></glossdef>
</glossentry><glossentry>
<glossterm><ulink>case-insensitive</ulink></glossterm><glossdef><para>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 <code>unicode-case</code>
flag in conjunction with this flag.</para></glossdef>
</glossentry><glossentry>
<glossterm><ulink>comments</ulink></glossterm><glossdef><para>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.</para></glossdef>
</glossentry><glossentry>
<glossterm><ulink>dotall</ulink></glossterm><glossdef><para>Enables dotall mode. In dotall mode, the expression . matches any
character, including a line terminator. By default this expression does not match
line terminators.</para></glossdef>
</glossentry><glossentry>
<glossterm><ulink>literal</ulink></glossterm><glossdef><para>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 <code>case-insensitive</code> and
<code>unicode-case</code> retain their impact on matching when used in
conjunction with this flag. The other flags become superfluous.</para></glossdef>
</glossentry><glossentry>
<glossterm><ulink>multiline</ulink></glossterm><glossdef><para>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.</para></glossdef>
</glossentry><glossentry>
<glossterm><ulink>unicode-case</ulink></glossterm><glossdef><para>Enables Unicode-aware case folding. When this flag is specified then
case-insensitive matching, when enabled by the <code>case-insensitive</code>
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.</para></glossdef>
</glossentry><glossentry>
<glossterm><ulink>unix-lines</ulink></glossterm><glossdef><para>Enables Unix lines mode. In this mode, only the '\n' line terminator
is recognized in the behavior of ., ^, and $.</para></glossdef>
</glossentry>
</glosslist>
</listitem><listitem><para><filename>notifd-configuration.xml</filename>: 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 <code>skip-numeric-resolution-prefix</code> to the global
<notifd-configuration> tag at the top of the file, set to "<code>true</code>".</para></listitem>
</itemizedlist>
</section><para>The full list of changes is available in <ulink>bugzilla</ulink>.</para>
</section><section>
<title>Changes in OpenNMS 1.6.0</title><para>
OpenNMS 1.5.99 passed release candidate testing and was re-tagged as 1.6.0.
</para>
</section>
</chapter><chapter>
<title>Known Issues and Caveats</title><para>Here is the list of known issues in this release of OpenNMS.</para><section>
<title>Current Release</title><para>
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.
</para><para>
If it breaks in half, you get to keep both halves.
</para>
</section><section>
<title>Previous Releases</title><itemizedlist>
<listitem>
<formalpara>
<title>OpenNMS 1.6.0</title><para>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.</para><itemizedlist>
<listitem><para>KSC reports sort by ID rather than by name (Bug <ulink>#2817</ulink>)</para></listitem><listitem><para>Graphs for load averages should show typical units
rather than si units (Bug <ulink>#2824</ulink>)</para></listitem><listitem><para>A URL added in the discovery admin UI cannot be
deleted. (Bug <ulink>#2829</ulink>)</para></listitem>
</itemizedlist>
</formalpara><formalpara>
<title>OpenNMS 1.5.93</title><para>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
<ulink>here</ulink>,
but it is recommended that you stick with PostgreSQL 7.4 to 8.2 for production
environments until this issue is resolved.</para>
</formalpara>
</listitem><listitem>
<formalpara>
<title>OpenNMS 1.5.90 Known Issues</title><para>Editing scheduled outages in the web UI has a number of bugs.</para>
</formalpara>
</listitem><listitem>
<formalpara>
<title>OpenNMS 1.3.10 Known Issues</title><para>Events that reference an IP address that exists on more than one
node will not be processed. Fixed in 1.3.11.</para>
</formalpara>
</listitem><listitem>
<formalpara>
<title>OpenNMS 1.3.9 Known Issues</title><para>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.</para>
</formalpara>
</listitem><listitem>
<formalpara>
<title>OpenNMS 1.3.8 Known Issues</title><para>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 <ulink>wiki</ulink>) may be necessary.</para>
</formalpara>
</listitem><listitem>
<formalpara>
<title>OpenNMS 1.3.7 Known Issues</title><para>The zoom feature will not work on Windows using IE or Opera. The
workaround is to use Firefox. (corrected in 1.3.8)</para>
</formalpara>
</listitem><listitem>
<formalpara>
<title>OpenNMS 1.3.5 Known Issues</title><para>Notification on the "newSuspect" event will fail. Bug <ulink>#1954</ulink></para>
</formalpara>
</listitem>
</itemizedlist>
</section>
</chapter><chapter>
<title>Supported Systems</title><subtitle>Supported UNIX-like OSes</subtitle><para>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.</para><para>The following are the systems that support or are known to run
OpenNMS.</para><para>Windows 2000/XP/Vista are supported as of 1.3.8.</para><section>
<title>Fully Supported</title><para>The following systems are supported out-of-the-box with native installation packages:</para><itemizedlist>
<listitem>
<formalpara>
<title>RPM-based Distributions (Using Yum)</title><itemizedlist>
<listitem><para>Red hat Enterprise Linux 3 and higher</para></listitem><listitem><para>CentOS 3 and higher</para></listitem><listitem><para>Fedora Core 4 and higher (including 64-bit)</para></listitem><listitem><para>SuSE Linux 9 and 10 (Using the Yum repository through YAST)</para></listitem>
</itemizedlist>
</formalpara>
</listitem><listitem>
<formalpara>
<title>Other RPM-based Distributions</title><itemizedlist>
<listitem><para>Mandriva Linux 2007 and higher (Using URPMI)</para></listitem>
</itemizedlist>
</formalpara>
</listitem><listitem>
<formalpara>
<title>Debian and Ubuntu Linux</title><para>Debian packages for Etch and later are available at the following
apt repository:</para><programlisting>deb http://debian.opennms.org/ unstable main</programlisting><para>These same packages should work equally well with Ubuntu releases
6.10 (Edgy Eft) and higher.</para>
</formalpara>
</listitem><listitem><para>Solaris 10 (X86 and SPARC)</para></listitem><listitem>
<formalpara>
<title>MacOSX 10.4 (Tiger), 10.5 (Leopard)</title><para>On MacOSX, the Fink distribution <ulink>packages of OpenNMS</ulink>
are supported. See <ulink>the Fink web
site</ulink> for more information on installing and using Fink.</para><para>Also note that on MacOSX, PostgreSQL must be configured in the same
manner as above for Linux. <emphasis>However</emphasis>, 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.</para><para>There are details for configuring the shared memory segments on <ulink>the
Fink wiki</ulink>.</para>
</formalpara>
</listitem><listitem>
<formalpara>
<title>Windows Server and Desktop (Windows 2000+)</title><para>
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.
</para>
</formalpara>
</listitem>
</itemizedlist>
</section><section>
<title>Unsupported</title><para>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.</para><para>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.</para><para>A number of distributions that used to be supported are still able
to run OpenNMS but are not officially supported:</para><itemizedlist>
<listitem>
<formalpara>
<title>Gentoo</title><para>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.</para>
</formalpara>
</listitem><listitem>
<formalpara>
<title>Red Hat Linux</title><para>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.</para>
</formalpara>
</listitem><listitem><para>SuSE 8 and earlier</para></listitem><listitem><para>Solaris 9 and earlier</para></listitem>
</itemizedlist>
</section>
</chapter>