This Week in OpenNMS: Lies, Damn Lies, and Release Dates
by Benjamin Reed: August 2, 2011
So I guess it’s been a while since the last TWiO, we’ve been pretty dang busy. I’m told I should call it “TQiO” (This Quarter In OpenNMS). Matt says “Well, you don’t call it *Every* Week in OpenNMS, just *this* one.” Touché.
Aaaaanyways, without further ado, here’s what we’ve done since, uh, well, May 16th. =)
We had a total blast at Dev-Jam 2011. If you’re interested in catching up on what went on, check out Tarus’s Dev-Jam blog posts.
We’ve been slowly working our way towards a 1.10 release candidate. The only things left are to go over the remainder of the IPv6 infrastructure (which I am spending this week on), and to then spend some time giving some attention to pending stuff in JIRA.
At the high level, there is a lot of exciting stuff coming in 1.10:
- IPv6 Support
- The obvious one: support for IPv6. We have done a ton of work to add support for passing around IPv6 addresses in the code at all levels, as well as adding specific support for ICMPv6.
We’ve actually got 2 different strategies for IPv6 ping:
- JNA – Uses embedded native code which is distributable. This means that ping will be supported from remote pollers!
- JICMP6 – A port of the our internal JNI ICMP code to support IPv6. This will be the default in 1.10 for polling ICMP, as it is faster than the JNA implementation.
- The new JasperReports-based reports introduced later in the 1.8 series has gone through a ton of improvements in 1.10, including a number of new reports, support for passing arguments to reports (date ranges, etc.), and other nifty stuff. Many other general updates to the reporting infrastructure have been added as well.
- Installer Updates
- The Liquibase database upgrade tools introduced in 1.8 have been updated to the latest (2.0.1) version, which is considerably faster than the 1.9.x version we used previously.
- New XML Processing Infrastructure
- While we haven’t finished converting all of our code to use it, we have started moving our Castor-based XML processing code to use JAXB instead. This provides a speed improvement when processing XML (including events posted to Eventd). This includes support for validation of inputs in the ReST interface.
- Drools Support is Back
- OpenNMS used to have support for using Drools for doing complex correlation of events. Due to dependency conflicts with other things we used in OpenNMS, it has been non-functional for quite some time. As of 1.10, this facility is working again, and will let you create code or scripts to do event correlation. Examples of a simple event correlation can be found in the $OPENNMS_HOME/etc/examples/ directory.
- UI Updates
- Many new UI changes have been made which give searchable controls for reports, nodes, etc., thanks to Donald’s new code for embedding GWT widgets in the OpenNMS UI.
- Instrumentation Log Reader
- Philip’s Instrumentation Log Reader tool has been updated with a number of new features, including sorting. It’s a great way to investigate data collection issues.
- Syslogd Improvements
- The Syslog infrastructure has been retooled to support a wider variety of input styles, as well as providing more optimized parsers for the most common Syslog formats. Using one of the specific parsers (Syslog-NG or RFC 5424) should provide performance improvements for handling large amounts of Syslog messages.
- Data Collection and Thresholding Updates
- Many improvements to data collection and thresholding have been made, including support for using regular expressions against column names when determining data to persist. Also, data collection configuration files have now been split like events are.
- Many New Detectors
- We’re adding detectors for everything that has a Capsd plugin, so you should be able to completely migrate to Provisiond.
- Provisiond Updates
- The provisioner has had a number of updates, including:
- UI changes
- Support for enabling or disabling polling and data collection through policies
- Support for scanning the IP-MIB ipAddressTable, which detects IPv6 interfaces on an SNMP-enabled device
- Updates to the DNS requisition import including IPv6 support, support for specifying the default services to apply to DNS-imported nodes, and the ability to determine how to compute the foreign ID (“ipAddress” or “nodeLabel”).
This is not an exhaustive list, but just what I came across doing some ‘git diff’ magic between the 1.8 and 1.10 trees. For a giant list of all of the issues closed against 1.10, see this link.
- 1.8: Current Release is 1.8.12 (Black-capped Petrel)
1.8.12 is the current stable release, tagged 10 May, 2011. For a complete list of changes and updates, see the “New and Noteworthy” page on the OpenNMS wiki. As always, it is recommended that you back up your database before upgrading.
- 1.9: Current release is 1.9.8 (Pulalu)
1.9.8 is the current unstable release, tagged 10 May, 2011. This release is not recommended for production use, but for developers and users who want to try out the very latest features. For a list of changes and updates, see the “New and Noteworthy” page on the OpenNMS wiki.
- [JRB-12] – Vertical labels disappear on a certain graphs
- [NMS-1275] – eventd truncates the length of trap messages to 256 bytes
- [NMS-2834] – Enhancement – Assets with clean date input
- [NMS-2895] – The method sanitizeString(String) is undefined for the type WebSecurityUtils
- [NMS-3164] – Implement PersistenceSelectorStrategy framework
- [NMS-3322] – XMPPNotificationStrategy (or JavaMailNotificationStrategy) does not utilise the “Numeric Message” field -nm
- [NMS-3516] – auto-clean=”true” suddenly is not working
- [NMS-3722] – Link with parentifindex -1 are not displayed in jsp pages
- [NMS-3956] – allow trapd to bind to specific address
- [NMS-3982] – Interface Deleted with SNMP supported and no ipAddrTable
- [NMS-3997] – Provisiond Deleting IpAddr On Nodes After Rescan
- [NMS-4034] – SNAPSHOT installer scripts are faulty
- [NMS-4039] – provisioning node with NodeCategorySettingPolicy policy in foreign source does not work if node has no SNMP available
- [NMS-4047] – Win32ServiceDetector fails to detect services
- [NMS-4106] – We need a WmiDetector
- [NMS-4114] – Support relativetime in graph URL
- [NMS-4208] – Memcached graph definitions left out of default configuration
- [NMS-4244] – threshd process wrong counter-type SNMP data after SNMP data collection failed or restored
- [NMS-4261] – In-line thresholder ignores scheduled outages
- [NMS-4295] – JRobin VDEFs sometimes do not work
- [NMS-4339] – Update Copyright Notice to include 2011
- [NMS-4375] – jetty allows directory listings
- [NMS-4376] – Problems adding nodes during discovery
- [NMS-4423] – Provisiond NodeCategorySettingPolicy. Nodes lose categorization in subsequent Synchronizations
- [NMS-4463] – SnmpAsset Adapter has dependency on Trapd
- [NMS-4483] – Services drop down list not alphabatized
- [NMS-4494] – SiblingIndexStorageStrategy does SNMP Queries and makes collection VERY slow
- [NMS-4500] – Collectd’s ServiceCollector class was erroneously changed to take Map<String, String>
- [NMS-4530] – IPAddress class overrides equals but not hashCode
- [NMS-4545] – Importer doesn’t log to correct log4j category
- [NMS-4546] – Provisiond silently fails to import an invalid model importer file but reports importSuccessful anyway.
- [NMS-4568] – Policy Rule using ipAddress with Match Snmp Policy does not work
- [NMS-4569] – ipinterface.jsp and snmpinterface.jsp does not show snmp poller data
- [NMS-4570] – link.jsp does not show interface details for some entries
- [NMS-4572] – Let the Snmp Poller send down event the first time an interface is found “Down”
- [NMS-4585] – hardware asset fields need more space and one more field
- [NMS-4590] – Node label changes ourside requisition editor on nodes with a foreign-source ID
- [NMS-4623] – Provision Groups do not synchronize on startup
- [NMS-4633] – Add an optional services field to the query string of the DNS URL
- [NMS-4655] – Returns directory of “opennms/admin/notification/” when required fields are not provided for notification destination paths.
- [NMS-4657] – Outstanding notice page not aligning correctly
- [NMS-4663] – Capsd may reparent duplicate interfaces from requisitioned nodes
- [NMS-4682] – Permissions on multiple files/directories are poor (allow world-write, have setuid)
- [NMS-4691] – OpenNMS GoogleMaps geo-enocder no longer functioning and creates a 503 error in UI
- [NMS-4692] – Email Notifications are not properly encoded when the message contains non us-ascii characters.
- [NMS-4694] – Better provisiond debugging
- [NMS-4695] – Provisiond allows duplicate nodes
- [NMS-4697] – Path not filtered correctly during build, etc/response-graph.properties
- [NMS-4698] – Surveilance part of WEB GUI crashes after all default categories were removed and custom ones were created
- [NMS-4700] – snmpStorageFlag=”all” is being ignored by the threshold procesing
- [NMS-4701] – Unable to add IPv6 address for discovery via web UI
- [NMS-4703] – Data Collection Broken for some nodes in testing
- [NMS-4705] – Add time it takes to persist the data to the ILR
- [NMS-4706] – Enable support for filtering the displayed data
- [NMS-4707] – Add ability for HttpMonitor to use node label as virtual host for HTTP polls
- [NMS-4708] – MicroBlog doesn’t support -nm
- [NMS-4710] – Erroneous text on a node resource graph selection page
- [NMS-4712] – Add the possibility to modify eventparms (as text) from Vacuumd
- [NMS-4717] – race condition in Provisiond IPv6 scanning
- [NMS-4719] – Persist and Error Messages do not Take Date into Account
- [NMS-4721] – DbHelper class should use dao’s
- [NMS-4722] – Add new opennms mib events definition
- [NMS-4728] – Sort by Stat
- [NMS-4734] – When using the GoogleMaps remote poller interface, unchecked markers are visible on initialization
- [NMS-4742] – Add Label to thresholds for display on “Edit Group” page
- [NMS-4752] – Event Analysis Report should be usable on postgres older than 8.4
- [NMS-4753] – Event Analysis report is missing in default configuration
- [NMS-4770] – Traffic Report for last month returns data from the current month
- [NMS-4772] – Add support for matching syslog messages by process name, severity, facility in ueiMatch
- [NMS-4776] – Alphabetize group names in the Users/Groups list
- [NMS-4777] – nodeList page fails to pass the foreignSource when “show interfaces” is selected
- [NMS-4778] – Time zone WEST is not able to cast in a postgres date
- [NMS-4779] – Split syslogd-configuration.xml
- [NMS-4783] – DNS provisioning expression matching matches hostname but not record data
- [NMS-4784] – Warning and Critical thresholds in InterfaceAvailabilityReport and SnmpInterfaceOperAvailabilityReport
- [NMS-4785] – Standardize the time zone format reports
- [NMS-4801] – DNS provisioning needs to allow foreign ID to be a hash of IP address instead of nodeLabel if administrator so chooses
- [NMS-4808] – ICMP concurrency issue in JnaPinger, JniPinger, Jni6Pinger
- [NMS-4809] – collectd log entries could be enhanced
- [NMS-4819] – SELECT tag not closed in asset/modify.jsp
- [NMS-4820] – Reportd JavaMailDeliveryService always copies address in sendmail-message “to” attribute or root@localhost
- [NMS-4822] – Trapd node-matching should prefer SNMP primary ifaces
- [NMS-4832] – AttributeGroup and SiblingColumnStorageStrategy are producing a StackOverflowError
- [NMS-4837] – Add a BSF (bean scripting framework) notification strategy
- [NMS-4846] – Provisiond leaks file handles, eventually causing “Too many open files” crashes
- [NMS-4847] – Upgraded to 1.8.12 and I started to recieve an error when I try to see node information
- [NMS-4850] – Convert Linkd to use Hibernate
- [RANCID-4] – RWS does not support inventory for ios-xr devices
Until Next Week…
As always, if there’s anything you’d like me to talk about in a future TWiO, or you just have a comment or criticism that you’d like to share, don’t hesitate to say hi.
Tags: 1.10, capsd, castor, Data Collection, dev-jam, dns, Drools, gwt, ILR, installer, ipv6, jasper, JAXB, jicmp, JICMP6, jna, JNI, liquibase, provisiond, reporting, rest, snmp, Syslog, This Week in OpenNMS, thresholding, XML
Recent News and Events
- OpenNMS Sponsors barCampRDU
- OpenNMS Brings MC Frontalot to SELF
- Tarus Balog and MC Frontalot at Ohio Linuxfest
Subscribe to this site and get the latest project and event updatesSubscribe via RSS