OpenNMS 1.12 is the latest OpenNMS stable series.
Here is a high-level overview of what has changed since 1.10.
Java 6 or higher required
OpenNMS 1.10 still supported Java 5, but OpenNMS 1.12 now requires Java 6 or higher. It will run on Oracle's JDK, as well as any modern version of OpenJDK 6, although in all cases a Java 7 VM is recommended.
OpenNMS has begun transitioning to OSGi for managing internal services. In 1.12, the Karaf OSGi container is embedded inside the OpenNMS Jetty daemon so that portions of the web UI such as the new topology maps, geographical maps, NRTG, and the MIB compiler are run from inside the dynamic OSGi environment.
In OpenNMS 1.14, we plan to have all OpenNMS services running inside Karaf as OSGi services.
OpenNMS has internally upgraded from Spring 2.5 to Spring 3.0 which brings many new improvements under the covers.
Spring Security 3.1
Authentication to the web UI is controlled by Spring Security. We upgraded across several versions during the development process for 1.12 and these versions required changes to the
applicationContext-spring-security.xml file. If you have customized this file in order to integrate with an external authentication service (LDAP, RADIUS, Active Directory, etc.) then you will need to migrate your changes to Spring Security 3.1's format.
Spring Security 3.1 now contains native support for Active Directory so configuration of AD authentication should be much simpler. Please see the following links for more information:
- Spring Security 3.1 Active Directory Documentation
- ActiveDirectoryLdapAuthenticationProvider Javadoc
Incompatible File Changes
The 'non-ip-snmp-primary' and 'non-ip-interfaces' attributes in import files were deprecated in 1.10, and have been removed in 1.12. You should edit your import files in $OPENNMS_HOME/etc/imports to remove the attributes, or they will cause a startup issue.
JMX Config Generator
We've included a new tool for configuring collection of data available through JMX. While OpenNMS has supported JMX data collection for a long time, this tool greatly simplifies configuring that collection.
For details on usage, run "
$OPENNMS_HOME/bin/jmx-config-generator" without any arguments.
Nodes with Active Problems
OpenNMS 1.12 includes a new box that can be added to the main page as a replacement of the "Node with Outages" box.
This new box is based on the active alarms (i.e. unacknowledged) where the severity is greater than 3 (i.e., minor, warning, major and critical). Each row of this box is going to show the following:
- The node's label.
- The amount of active alarms on the node.
- The amount of time that has passed since the oldest active alarm for the node.
- The higher severity of the active alarms, will be used to color the row.
This feature can be enabled by editing opennms.properties.
Access Point Monitor
A new collection of code for monitoring WiFi access points has been added by Jesse White for DataValet. It includes a monitor daemon, a poller, and a ReST interface.
The idea is to define a special requisitions for the Controllers and the Access Points.
Then the AccessPointMonitor is going to use SNMP to retrieve the status of the APs from the controllers to update their status, so OpenNMS is not going to talk directly with the APs.
To use it, you enable the AccessPointMonitor in
$OPENNMS_HOME/etc/service-configuration.xml, create a service and package in
$OPENNMS_HOME/etc/access-point-monitor-configuration.xml that defines a grouping of controller(s) and APs, add the special service settings on
$OPENNMS_HOME/etc/poller-configuration.xml, enable a new set of automations related with the AccessPointMonitor on
$OPENNMS_HOME/etc/vacuumd-configuration.xml, and then will track which access points are available, based on the strategy defined in configuration.
Near Real-Time Graphing
OpenNMS 1.12 adds support for opening a special version of a resource graph which will live-update at a configurable interval. For details, see the NRTG page.
OpenNMS 1.12 includes a completely new dynamic HTML5 topology map implementation, which can display topology data provided by Linkd, the VMware integration, or anything else that conforms to our new topology API.
For details, see the Topology Maps page.
OpenNMS 1.12 also includes a set of geographical maps which can show nodes with address asset information on a world map, including dynamic alarm status. For a node to show up in the geographical maps, it needs a longitude and latitude in its assets, or an address that can be converted to longitude and latitude.
You can reach the geographical map UI by going to http://<your-opennms-ip>/opennms/node-maps or by going to the page of a node that has an address and/or longitude/latitude defined in its asset fields, and following the "View in Geographical Map" link.
Note that this is not the same as the remote poller geographical maps feature that has existed in previous OpenNMS versions. The plan is to merge the two codebases in a future release.
For more details, see the Geographical Maps page.
MIB "Compiler", Events, and Data Collection UI
OpenNMS now includes a GUI for importing and compiling SNMP MIBs to OpenNMS data collection configuration files and events configuration files.
For more detail, and a webcast describing their usage, see Tarus's blog post.
OpenNMS 1.12 supports a complete integration (polling, data collection, and provisioning) with VMware's vSphere vCenter server. The VMware integration also creates link information so that VM topology can be view in the new topological maps.
For more details, see this white paper.
Syslog Alarm Northbound Interface
The Syslog northbounder is used to send alarm data to a syslog log server.
To configure the northbounder, edit the
$OPENNMS_HOME/etc/syslog-northbounder-configuration.xml file. You can configure the format of the messages, as well as 1 or more servers to send the messages to.
Instrumentation Log Reader
The ILR now supports sorting by average persist time.
New integrations have been added to trouble ticketing:
A number of bug fixes and updates have been made to the Drools correlation engine, most notably the ability to have multiple engine configurations defined, using the
The JIRA trouble ticket integration has been updated to use the currently-supported REST API for JIRA. To use the JIRA ticket integration, you need to be running JIRA 5.0+ which has full support for the REST API.
Support has been added for the Remedy trouble ticketing system. It can be configured by editing the
Performance and Behavior Improvements
Much like 1.10, Provisiond has continued to be tuned and updated, including major updates to ReST interface performance.
Reverse DNS Provisioning Adapter
The reverse DNS provisioning adapter sets the IP hostname on interfaces based on a reverse DNS lookup during provisioning scans.
On large installations, when an event storm comes in it is possible for Eventd to consume all available memory. Eventd can now be configured to have a maximum queue size by setting the
queueLength="n" attribute in
eventd-configuration.xml, after which it will drop events.
Support for Many New Devices for Events, Data Collection and Graphing
- ACME Packet
- Cisco TelePresence
- Ericsson Juniper Networks GGSN
- Ericsson IPWorks
- VMware CIM
- VMware VirtualCenter 2.5
- VMware vCenter Server 4.1
- VMware vCenter Server 5.0
Special Characters in SNMP Responses
OpenNMS is better at handling special characters and Unicode text in SNMP responses now.
Split SNMP Graph Configuration
The SNMP graph configuration file (snmp-graph.properties) has now been split up into the $OPENNMS_HOME/etc/snmp-graph.properties.d directory, making it easier to manage modifications and additions to the graphing configuration.
Cleanup and Atom Support
Many cleanups in the ReST interfaces, normalizing responses, using "POST/Redirect/GET" when appropriate. Additionally, most ReST GET calls can now output Atom syndication XML, in addition to the existing JSON and XML interfaces.
DataLinkInterface ReST Interface
It is now possible to manipulate Linkd's data directly, through the DataLinkInterface ReST interface at
Requisition ReST Improvements
As mentioned earlier, the Requisition ReST interface has huge performance improvements, allowing you to manipulate provisioning requisitions and foreign sources much more quickly.
You can find upgrade information on the following in our Wiki