Planet OpenNMS

August 15, 2019

OpenNMS Horizon 24.1.3 (WOPR) Released

Release 24.1.3 is a stable release of OpenNMS. It contains a few enhancements including JMS RPC improvements, as well as a bunch of bug fixes.

For a high-level overview of what’s changed in OpenNMS 24, see What’s New in OpenNMS 24.

The codename for 24.1.3 is WOPR

Bug
  • Possible Memory Leak in Ops Board (Issue NMS-8283)
  • Heatmap in CenterURL not functioning properly (Issue NMS-8884)
  • importFailed exposes the vcenter credentials (Issue NMS-9535)
  • Node label accepts ampersand (&) symbol, but it breaks graphing (Issue NMS-9904)
  • Default eventconf for clogMessageDiscarded has invalid snmphost mask (Issue NMS-10162)
  • Netflow 9 graphs do not line up with MIB2 data (Issue NMS-10721)
  • DNS Requisition import fails if location is specified (Issue NMS-11748)
  • Group Duty Schedules Formatting Issues (Issue NMS-12155)
  • Topology/Geographical map: Header not hidden when displayed inside iFrame (Issue NMS-12166)
  • Nodes and alarms disappear from Geo Map after few seconds (Issue NMS-12171)
  • Kafka RPC shouldn’t set default auto.offset.reset to earliest (Issue NMS-12172)
  • find-java.sh does not canonicalize all symlinks in java path (Issue NMS-12176)
  • Drools engine hangs on shutdown (Issue NMS-12201)
  • Minion can’t be started after installation from RPM/DEB with OpenJDK 11 (Issue NMS-12206)
  • Can’t connect to Karaf Shell in Minion on Debian/Ubuntu (Issue NMS-12211)
  • Date handling broken in OpsBoard’s criteria builder component (Issue NMS-12223)
Enhancement
  • %interface% & %interfaceresolve% variables should resolve nodes managed IP address (Issue NMS-10657)
  • Remove the /etc/default/opennms from Debian/Ubuntu installs (Issue NMS-12183)
  • Improve diagnostics and resiliency of JMS RPC (w/ embedded ActiveMQ) (Issue NMS-12222)
  • Track and display timestamps for the last polls (Issue NMS-12225)

by RangerRick at August 15, 2019 07:24 PM

OpenNMS Meridian 2018.1.11 Released

Release 2018.1.11 is a small update to 2018.1.10 that adds improved diagnostics for JMS RPC and fixes a few other small bugs.

The codename for 2018.1.11 is Violent Storm.

NOTE: This update modifies the custom.properties file in $OPENNMS_HOME/etc. This is generally not a user-modified file and should always be overwritten, but if you are in the unlikely situation of modifying custom.properties in your local environment, make sure you incorporate the update.

Bug
  • DNS Requisition import fails if location is specified (Issue NMS-11748)
  • Drools engine hangs on shutdown (Issue NMS-12201)
Enhancement
  • Improve diagnostics and resiliency of JMS RPC (w/ embedded ActiveMQ) (Issue NMS-12222)

by RangerRick at August 15, 2019 03:23 PM

August 12, 2019

OpenNMS On the Horizon – August 12th, 2019 – Sentinel, Flows, CI, Testing, Reporting, and Helm!

It’s time for OpenNMS On the Horizon!

In the last week we did more work on Sentinel and flow backend code, tests and CI, reporting, and Helm.

Github Project Updates

  • Internals, APIs, and Documentation
    • Jesse did more work stabilizing smoke tests.
    • Sean continued his work improving the CircleCI workflow.
    • Dustin did more work on validating Netflow 9 graphing/data.
    • Ron Roskens continued to work on getting builds/tests running under JDK 11.
    • Dustin fixed the metadata DSL to work with PageSequenceMonitor configs.
    • Ronny worked on converting container images to use Confd rather than custom shell scripting.
    • Jesse worked around a potential deadlock in Drools while shutting down.
    • Sean worked on updating our Kafka components to 2.3.0.
    • Matt continued his work persisting threshold config to PostgreSQL and syncing across Sentinel/OpenNMS.
    • Sean added some configurable enhancements to the new DNS resolver.
    • Jesse worked on improving diagnostics and performance of the JMS (ActiveMQ) RPC.
  • Web, ReST, and UI
    • Markus did more work on simplifying the UI for scheduling reports.
    • I worked on updating OpenNMS.js and Helm to use Dependabot to keep dependencies up-to-date.
    • I added support for customizing column centering in the Helm alarm table.
    • Jesse updated the Grafana reports to show the time range in the header.
    • Jesse fixed some Helm compatibility issues with Grafana 6.3.
    • Patrick continued his work on making filter priority customizable.
    • Christian fixed a memory leak in the ops board.

Tarus Balog Out On Medical Leave

On the morning of Friday, July 26th, a driver crossed the centerline and hit the Ford F-150 Tarus was driving nearly head on. He sustained several injuries included a fractured vertebrae and a crushed left ankle.

He has reluctantly gone on Medical leave and while we hope to have him back soon he will most likely be out until the end of September. He is still checking email but please understand his responses may be delayed while we wish him a full recovery.

Upcoming Events and Appearances

Until Next Week…

If there’s anything you’d like me to talk about in a future OOH, or you just have a comment or criticism you’d like to share, don’t hesitate to say hi.

– Ben

Resolved Issues Since Last OOH

  • HELM-137: Create a filter panel
  • HELM-166: Grafana integration seems to be broken since v6.3.0
  • JS-36: Update to TypeScript 3 and Babel 7
  • JS-37: remove typescript-logging from OpenNMS.js
  • JS-40: Enable Dependabot on OpenNMS.js
  • NMS-8283: Possible Memory Leak in Ops Board
  • NMS-9535: importFailed exposes the vcenter credentials
  • NMS-10376: Document RPC TTL tuning
  • NMS-12058: Customize priority of flow classification rules
  • NMS-12065: Flow classification role
  • NMS-12150: Add ability to edit existing scheduled reports
  • NMS-12170: Grafana reporting: Render exceptions in images instead of aborting
  • NMS-12194: Update warmerge plugin dependency to 0.5
  • NMS-12195: Enhance Jaeger OpenTracing Logging with tag for thread name
  • NMS-12200: Grafana Reporting: Add time to date range in report header of template
  • NMS-12201: Drools engine hangs on shutdown
  • NMS-12206: Minion can’t be started after installation from RPM/DEB with OpenJDK 11
  • NMS-12207: Minion memory leak related to new DNS lookup functionality
  • NMS-12211: Can’t connect to Karaf Shell in Minion on Debian/Ubuntu

by RangerRick at August 12, 2019 02:20 PM

August 06, 2019

Dev-Jam 2019

Time flies and we have just finished our fourteenth Dev-Jam in fifteen years. We call it the fifth season- a group of full-time contributors, core community members, and power users get together for our annual OpenNMS Developers Conference. Our venue this year was the Yudof Hall on the University of Minnesota campus in Minneapolis. We are very happy and have to thank Mike Huot and his family, who make this happening for all of us very easy.

This year we got 24 people from Australia, the United States, Germany, the UK, and Canada for a whole week together – so what could go wrong?

The Dev-Jam concept is very easy, we use the time to learn, share experiences and experiment on things with others face to face. We work on stuff that we usually don’t have time for and it is not as fun to dig into new things alone. To get things kicked-off, we started this year on Monday with a short introductory tutorial. The idea is to give new attendees entry points to each topic, where to start with development, and how to get things running quickly.

At the end of the week, we make very short presentations to share what we have or haven’t achieved. We recorded these talks so if you are interested in certain topics, you can talk to the right people in our chat. We have added projects in Discourse and videos from results as a demo can be found on Youtube.

by mfuhrmann at August 06, 2019 10:27 PM

August 05, 2019

OpenNMS.js v1.2.0

This is a small release which adds support for a default timeout in GrafanaHTTP, as well as adding X-Requested-With headers to requests (NMS-9783).

Bug Fixes

  • http: add timeout to GrafanaHTTP (22bdd70)

Features

  • rest: NMS-9783: add X-Requested-With header to requests (e803726)

by RangerRick at August 05, 2019 07:57 PM

OpenNMS On the Horizon – August 5th, 2019 – Updating Dependencies, Fixing Bugs, Enhancing Flows and Reporting, Helm Improvements

It’s time for OpenNMS On the Horizon!

In the last week we did a ton of work modernizing some dependencies in OpenNMS and Helm, fixed a bunch of bugs, and continued work to enhance flows reporting, and UIs on the road to Horizon 25.

Github Project Updates

  • Internals, APIs, and Documentation
    • Matt continued his work on persisting threshold state to the database and sharing that state across Sentinels.
    • Jesse worked on wrapping up his high-performance DNS hostname resolution integration.
    • Chandra finished some changes to Kafka initialization settings.
    • Jesse updated the Elasticsearch integration so you can set a prefix, allowing multiple “namespaces” for data persisted to ES.
    • Ronny wrapped up his work to make our continuous integration containers run as non-root. He also made it so branch builds can be tagged in CI for release to dockerhub.
    • Jesse updated our Elasticsearch support to ES 7.2.0. Note that Horizon 25 (and Meridian 2019) will require ElasticSearch 7.
    • Chandra continued his work on an optimized off-heap storage on the Minion (to replace H2).
    • Christian added support for %interface% and %interfaceresolve% on node events, using the primary IP when available.
    • I fixed an issue with find-java.sh failing when java is behind multiple levels of symlinks.
    • Alejandro updated the NXOS GPB parser to provide more info on configuring the Nexus switch to work with it.
    • Jesse fixed the snmphost mask in clogMessageDiscarded in the default eventconf.
    • Sean did more work on improving our CircleCI workflow.
    • Ron Roskens continued to work on getting the build and tests running under JDK 11.
    • Justin Wood contributed a patch to fix provision:show-import when using the DNS importer.
    • Jesse updated our embedded Drools to 7.24.
    • Chandra worked on adding support for “profiles” when attempting to connect to new SNMP hosts.
    • Sean contributed an update to Jaeger tracing with current thread info in the Camel and Kafka IPC bits.
  • Web, ReST, and UI
    • Markus did more work on simplifying the UI for scheduling reports.
    • Patrick updated his branch to make flow classification rule priority customizable.
    • I fixed some issues with DAOs and property caching in OpenNMS.js.
    • I cleaned up some authorization-management code in OpenNMS.js after the recent refactor.
    • I updated OpenNMS.js to use dependabot to update dependencies semi-automatically.
    • Christian fixed a bug with displaying headers in Vaadin apps when embedded in an <iframe> tag.
    • I added support for configuring alignment (left, center, right) in Helm Alarm Table columns.

Upcoming Events and Appearances

Until Next Week…

If there’s anything you’d like me to talk about in a future OOH, or you just have a comment or criticism you’d like to share, don’t hesitate to say hi.

– Ben

Resolved Issues Since Last OOH

  • HELM-163: Enhance CircleCI workflow to capture test metadata for Helm
  • JS-38: PropertiesCache implementation can return the wrong cache
  • JS-39: basic auth does not initialize properly in GrafanaHTTP
  • NMS-9318: Traps failing to be ingested by Elasticsearch
  • NMS-9702: GenericResourceType is altering index names on class object initialization
  • NMS-10657: %interface% & %interfaceresolve% variables should resolve nodes managed IP address
  • NMS-11720: Run container image as non-root
  • NMS-11748: DNS Requisition import fails if location is specified
  • NMS-11759: Improve the sample content for the NXOS GPB Parser Groovy Script.
  • NMS-11995: Run system tests using OpenJDK 11
  • NMS-12082: Configurable index name for Event & Alarm Forwarder
  • NMS-12099: Update Elasticsearch integrations to support ES 7.x
  • NMS-12154: Easier Schedule Definition
  • NMS-12157: Improve performance of hostname resolution for flows
  • NMS-12163: Add SonarQube Code Coverage to CircleCI Workflow
  • NMS-12166: Topology/Geographical map: Header not hidden when displayed inside iFrame
  • NMS-12172: Kafka RPC shouldn’t set default auto.offset.reset to earliest
  • NMS-12176: find-java.sh does not canonicalize all symlinks in java path
  • NMS-12183: Remove the /etc/default/opennms from Debian/Ubuntu installs
  • NMS-12187: Allow developer to push OCI’s to docker hub from arbitrary branches
  • NMS-12189: The Cron Expression is only shown for reports which are created with the new UI
  • NMS-12191: Upgrade Drools to latest 7.x release
  • NMS-12195: Enhance Jaeger OpenTracing Logging with tag for thread name
  • NMS-12196: Fix typo in sonar.sh
  • NMS-12199: Fix CircleCI Test Gathering for Smoke Tests

by RangerRick at August 05, 2019 04:37 PM

July 29, 2019

OpenNMS On the Horizon – July 29th, 2019 – Thresholding, Bug Fixing, Scheduling UI, and More!

It’s time for OpenNMS On the Horizon!

In the last week we continued to work on getting thresholding into Sentinel, fixed a bunch of minor bugs, worked on a new scheduling UI, and a whole lot more.

Github Project Updates

  • Internals, APIs, and Documentation
    • Patrick did more work on making graph API objects immutable.
    • David and Matt continued their work adapting thresholding to work on Sentinel.
    • Jesse worked on adding instrumentation to Telemetryd to so packet reception rates can be graphed.
    • Patrick worked on flow classification rule prioritization.
    • Christian did more work on fixing some flow persistence.
    • I fixed an issue with find-java.sh and multiple recursive JDK symlinks.
    • Dino fixed an issue with WsMan and ActiveMQ detectors handling configuration properties.
    • Chandra worked on making it possible to import a requisition from the Karaf CLI.
    • Dustin worked on fixing some graphing issues with flow data.
    • Sean did more fixes to his code coverage CircleCI changes.
    • Jesse continued his work on a high-performance DNS resolver for flow (and other) data.
  • Web, ReST, and UI
    • Chandra fixed some issues in the group duty schedule UI.
    • I continued to work on wrapping up my Helm entity and filter panel updates.
    • Christian fixed a potential NPE in the node maps.
    • Markus worked on an update to the report scheduling UI to support easier configuration.
    • Christian fixed an issue with embedding vaadin apps in iframes.

Upcoming Events and Appearances

Until Next Week…

If there’s anything you’d like me to talk about in a future OOH, or you just have a comment or criticism you’d like to share, don’t hesitate to say hi.

– Ben

Resolved Issues Since Last OOH

  • NMS-12105: AS is stored as signed int in flow doc
  • NMS-12135: Add the ability to trigger a requisition import via the Karaf shell
  • NMS-12143: Share thresholding state across Sentinels
  • NMS-12155: Group Duty Schedules Formatting Issues
  • NMS-12171: Nodes and alarms disappear from Geo Map after few seconds
  • NMS-12175: WsManWQLDetector, ActiveMQDetector missing setBeanProperties
  • NMS-12182: Collect and graph packet reception rates for telemetryd listeners

by RangerRick at July 29, 2019 07:03 PM

July 22, 2019

OpenNMS On the Horizon – July 22nd, 2019 – Bug Fixes, Thresholding, Kafka, OpenNMS & Helm UI Improvements

It’s time for OpenNMS On the Horizon!

In the last week we fixed bugs in preparation for release day, and continued to work on thresholding and Kafka backend code, as well as a number of OpenNMS and Helm UI improvements.

Github Project Updates

  • Internals, APIs, and Documentation
    • Dustin did more work on supporting service wildcarding in the poller configuration.
    • Chandra made a few more fixes to his changes to allow importing requisitions from the Karaf shell.
    • David and Matt continued their work on refactoring thresholding state to be shared across OpenNMS and Sentinel.
    • Jesse worked on implementing a high-performance hostname resolution API.
    • Chandra updated some default Kafka RPC settings.
    • Christian made some updates to fix integer wraps in flow handling code.
    • Sean did more work on supporting Sonar code coverage in our CircleCI build.
    • Patrick worked on making flow classification rule priority customizable.
    • Chandra worked on updating offheap storage to use rocksdb instead of H2.
  • Web, ReST, and UI
    • Chandra fixed a bug in the KSC report search box.
    • Matt added a legend to the new flow histogram panel.
    • Markus did more work updating report UI code.
    • Jesse did more work speeding up the new Grafana report code.
    • I did a bunch of audit updates to JS dependencies in OpenNMS.js and Helm.
    • Markus fixed an issue editing Minion labels in the web UI.
    • I wrapped up my filter panel changes for Helm.

OpenNMS Horizon and Meridian July Releases

July gave us only minor bugfix updates, with the release of Horizon 24.1.2 and Meridian 2018.1.10.

For a list of what’s changed, see the release announcements:

Upcoming Events and Appearances

Until Next Week…

If there’s anything you’d like me to talk about in a future OOH, or you just have a comment or criticism you’d like to share, don’t hesitate to say hi.

– Ben

Resolved Issues Since Last OOH

  • NMS-10716: rancid-api version mismatch
  • NMS-11985: Make Graph immutable
  • NMS-12142: Stickiness for distributed processing in telemetryd
  • NMS-12144: Create Jasper report templates for Grafana dashboards
  • NMS-12145: Improve Grafana report rendering speed
  • NMS-12160: Outage timeline is empty
  • NMS-12161: Init script on Debian/Ubuntu does not start
  • NMS-12164: Minion not showing label correctly and label cannot be edited

by RangerRick at July 22, 2019 04:18 PM

July 18, 2019

OpenNMS Horizon 24.1.2 (Watson) Released

Release 24.1.2 is the latest stable release of OpenNMS. It contains bug fixes for flow processing, Debian package startup, the minion UI, and more.

For a high-level overview of what’s changed in OpenNMS 24, see What’s New in OpenNMS 24.

The codename for 24.1.2 is Watson.

Bug
  • HasFlows is not set when node was provisioned after first flow was received (Issue NMS-12106)
  • Wrong Wording for Empty Requisition (Issue NMS-12156)
  • Init script on Debian/Ubuntu does not start (Issue NMS-12161)
  • Minion not showing label correctly and label cannot be edited (Issue NMS-12164)
Enhancement
  • Add a command to show configuration diffs (Issue NMS-12129)

by RangerRick at July 18, 2019 08:24 PM

OpenNMS Meridian 2018.1.10 Released

Release 2018.1.10 is a small update to 2018.1.9 that fixes a KSC report search issue, and adds a tool for evaluating config changes.

The codename for 2018.1.10 is Storm.

Bug
  • KSC Reports search box on home page is case sensitive (Issue NMS-12137)
Enhancement
  • Add a command to show configuration diffs (Issue NMS-12129)

by RangerRick at July 18, 2019 04:16 PM

July 16, 2019

OpenNMS On the Horizon – July 16th, 2019 – CI Updates, Flows, UI and Reporting, and Bugfixes!

It’s time for OpenNMS On the Horizon!

Between the July 4th holiday in the US, and then personal vacation, this one’s getting out pretty late.
Luckily, no one did anything while I was out. :grimacing:

OK, fine, in the last couple of weeks we did a bunch more improvements to continuous integration, continued to work on flow fixes and updates, fixed a bunch of UI bugs and wrapped up some reporting updates, plus a bunch of other stuff.

Github Project Updates

  • Internals, APIs, and Documentation
    • Ronny finished up his scripts to compare configuration changes.
    • Ron Roskens made some changes to update core Maven plugins.
    • Dustin worked on some changes to how flow data is calculated based on session metadata.
    • Ronny did more work on the smoke tests and their Docker containers.
    • Sean finished his work speeding up CircleCI builds.
    • David worked on supporting thresholding of telemetry data on Sentinel.
    • Dustin and Jesse continued their work on supporting hostname lookups for flows.
    • Matt worked on refactoring OIA types out of OpenNMS and into the API.
    • Patrick worked on maging graph service model objects immutable.
    • Ronny worked on changes to the Docker containers to make them runnable on OpenShift.
    • Chandra continued working on his improvements to support large message sizes on Kafka.
    • Patrick did more work adding support for graph service searching.
    • Chandra worked on making it possible to change a node’s location within a requisition.
    • Chandra added support for sending events into OpenNMS from Sentinel.
    • Christian worked on detecting and reporting clock skew in flows.
    • Ron Roskens worked on fixing a regression in the ObjectNameStorageStrategy.
    • Jeff did more work on his project to enumerate system info for support use.
    • Matt worked on making it possible to share thresholding state across Sentinel instances.
    • Ronny fixed the Debian packages to properly find Java 11.
    • Chandra worked on refactoring some of the RPC code to make it more manageable.
    • Jesse fixed a number of flapping tests.
    • Chandra added support for triggering a requisition import from the Karaf command line.
  • Web, ReST, and UI
    • Markus continued his work on a universal Spotlight-like search box.
    • I worked on an OpenNMS.js HTTP plugin using cordova-plugin-advanced-http rather than AJAX.
    • Matt finished up and merged the flow histogram panel for Helm.
    • Chandra updated the time-series graph page to lazy-load graphs and support search-in-page.
    • Markus added an improved date/time chooser to the web UI.
    • Jesse did more work on supporting Graphana dashboards as reports.
    • Markus finished the work removing the old report UI in favor of the new JS-based one.
    • Christian fixed an issue that could cause the node detail outage timeline to be empty.
    • Christian added support for filtering alarms by surveillance category.
    • Markus fixed an issue with minion labels not showing/being editable.
    • Chandra fixed some issues with the duty schedule UI.

Upcoming Events and Appearances

Until Next Week…

If there’s anything you’d like me to talk about in a future OOH, or you just have a comment or criticism you’d like to share, don’t hesitate to say hi.

– Ben

Resolved Issues Since Last OOH

  • ALEC-72: Deep learning engine vectorizer does not calculate distance correctly
  • ALEC-73: Performance improvements for DBScan engine
  • ALEC-75: Upgrade Alec Kafka Components to 2.2.0 on Scala 2.12
  • HELM-159: CSV / XLS export in alarm table panel
  • HELM-160: Move timestamps to top of alarm table details dialog
  • HELM-162: Add legend controls to the “flow histogram” panel
  • NMS-7188: Add a JMS broker monitor
  • NMS-10695: Filter alarm list by surveillance categories
  • NMS-11723: Replace current (Spring Webflow) Reporting UI with an angular implementation
  • NMS-11776: Design thresholding support for telemetryd on Sentinel
  • NMS-11797: Thresholding support for push metrics
  • NMS-11993: Skew detection for flow timestamps
  • NMS-12053: Dynamically change a node’s location
  • NMS-12080: Support wildcards in service names
  • NMS-12087: Hostname resolution for flows
  • NMS-12092: Provide search capabilities
  • NMS-12095: KPIs for resource graphs
  • NMS-12129: Add a command to show configuration diffs
  • NMS-12133: Allow tarball installation in Docker images for Horizon
  • NMS-12136: Enhance CircleCI workflow to reduce build times and tests
  • NMS-12137: KSC Reports search box on home page is case sensitive
  • NMS-12141: Add support for sending events from Sentinel
  • NMS-12147: Implement easier datetime selection
  • NMS-12156: Wrong Wording for Empty Requisition
  • NMS-12158: Remove Legacy Database Reports (Web Flow)
  • NMS-12159: UsersRestService: /users/whoami returns 404 on ldap authenticated user (not in users.xml)
  • OIA-17: Move implementations for API types from Opennms to integration API
  • OIA-19: Fix TicketerPlugin to return Ticket ID that is created

by RangerRick at July 16, 2019 08:51 PM

July 01, 2019

OpenNMS On the Horizon – July 1st, 2019 – Dev-Jam! Dev-Jam! Dev-Jam!

It’s time for OpenNMS On the Horizon!

Last week was Dev-Jam. There’s a lot to catch up on, so here we go!

Github Project Updates

  • Internals, APIs, and Documentation
    • Christian worked on some fixes to processing of Netflow v9 flows.
    • Dustin worked on hostname resolution when processing flows.
    • Jesse fixed a concurrent modification issue in the Karaf web bridge.
    • Jesse and David did more work on the Threshd refactor.
    • I fixed the Debian/Ubuntu package dependencies to mirror the way the work in RPM.
    • Markus added a ReST API for a “spotlight” search service.
    • Jeff did documentation updates for the RADIUS plugin, as well as some other doc cleanups.
    • Jesse did more work on smoke tests for the CircleCI builds.
    • Carlo Caminati contributed a fix to the Debian packages for PostgreSQL 11 support.
    • Matt fixed a bug where Sentinel would be missing the integration API on install.
    • Ronny added a health-checking wrapper to the Minion and Sentinel Docker images.
    • Chandra fixed the OIA ticketer plugin to return the ticket ID when it’s created.
  • Web, ReST, and UI
    • Markus worked on a single search box in the web UI for searching nodes, alarms,
      etc. in one place.
    • Chandra worked on adding searching/filtering to the graph results in the web UI.
    • Markus continued his work on the Grafana dashboard report UI.
    • Jesse made some fixes to the new metadata edit UI in develop.
    • Matt wrapped up his histogram panel enhancements for Helm.
    • I added CSV and Excel export support to the alarm table in Helm, as well
      as a few other alarm table UI tweaks.
    • Markus worked on an updated navbar for the web UI.
    • I worked on modernizing/cleaning up our web UI javascript build.

Dev-Jam 2019

Introducing Dev-Jam

Dev-Jam is our annual hackathon and developer conference where the OpenNMS Group, the Order of the Green Polo, and other OpenNMS contributors join each other in one place and work on whatever project tickles our fancy.

This Year at Dev-Jam

This year we were again at the University of Minnesota’s Minneapolis campus.

On Monday, some folks did presentations to launch Dev-Jam, including catching up on the last year of OpenNMS changes, tips on getting started with OpenNMS development, and more. Then we settled in for a week of hacking on code, socializing, and generally having a great time. On Friday, many folks gave presentations on what they worked on for the week.

If you want a feel for what the day-to-day is like during Dev-Jam, our CEO Tarus has been chronicling it on his blog starting at day 0 (Sunday night).

Projects

People worked on all kinds of projects, including but not limited to:

  • finishing a years-long refactor of the database infrastructure in our integration tests
  • modernizing OpenNMS Compass’s build infrastructure and backend code to use OpenNMS.js
  • sending Kubernetes events to OpenNMS
  • integrating PRIS into the OpenNMS core as a Karaf/OIA plugin
  • an Alexa skill for querying alarms and outages from OpenNMS
  • a demo of the MQTT plugin integration
  • a visualization framework for topology and alarms using GL and VR
  • a new “spotlight” search bar that searches nodes, alarms, categories, and more
  • massive performance improvements to ALEC processing
  • a tool for evaluating configuration changes to aid in upgrading
  • CircleCI performance improvements to bring the pipeline time down to a couple of hours
  • a Cisco APIC controller plugin for importing inventory and receiving faults as events
  • building and running tests under OpenJDK 11

Most of the projects had Friday video presentations, and we will work to get those out to you soon.

Upcoming Events and Appearances

Until Next Week…

If there’s anything you’d like me to talk about in a future OOH, or you just have a comment or criticism you’d like to share, don’t hesitate to say hi.

– Ben

Resolved Issues Since Last OOH

  • HELM-133: Convert the fault datasource to a more general entity (node + alarm) datasource
  • HELM-145: Histogram panel for flows
  • NMS-10652: Failed to fetch store:/var/lib/apt/lists/partial/debian.opennms.org_dists_stable_main_Contents-amd64.gz Hash Sum mismatch
  • NMS-10682: WsMan Asset Adapter config contains an invalid resourceUri
  • NMS-10683: WsMan Asset Adapter should handle WQL filters returning more than one result
  • NMS-10713: WS-Man datacollection fail with OpenJDK11
  • NMS-11766: Sentinel container does not contain integration API in maven repository
  • NMS-12081: Refactor threshd out of opennms-services
  • NMS-12083: Add a UI to edit meta-data in requisition
  • NMS-12107: Migrate system tests to use TestContainers framework
  • NMS-12109: Hash Sum mismatch
  • NMS-12115: Provide a mechanism to collect the count of objects collected by a wsman enumeration
  • NMS-12116: CME in ProxyFilter (Karaf Web Bridge)
  • NMS-12117: Add local cache to reverse hostname resolution in flows
  • NMS-12119: Installing Minion on Debian with OpenJDK 11 installed tries to install Oracle JDK 8
    Wide character in print at scripts/twio-issues-list.pl line 85.
  • NMS-12121: Opennms 24.1.0 on Ubuntu 19.04 won’t install because of PostgresSQL 11
  • NMS-12122: Remove hack from opennms-spring-extender to expose ServiceRegistry
  • NMS-12123: exception adding data from snmp scan
  • NMS-12130: Update Webpack Build to Latest Babel and TypeScript

by RangerRick at July 01, 2019 07:41 PM

June 29, 2019

2019 Dev-Jam – Day 4

The next to the last day of Dev-Jam was pretty much like the one before it, except now it was quite clear that Dev-Jam was coming to a close (sniff).

I actually managed to get some of the work done that I wanted to do this week, namely to start working on the next version of my OpenNMS 101 video series. A lot changed in Horizon 24 and now the videos are a little off (especially when it comes to alarms) and I want to fix that soon.

2019 Dev-Jam: Group of People Hacking Away

I did make one bad decision when I purchased take-away sushi from the Union, but I was lucky that I got over it quickly (grin)

2019 Dev-Jam: Jesse Talking About ALEC

It’s so nice to be able to break out into little groups and share what is going on in OpenNMS. Jesse gave an in-depth talk on ALEC (and I’ll be presenting it at this year’s All Things Open conference).

It wasn’t all work, though.

2019 Dev-Jam: Table with Snacks and Ulf

A group of people had gone to the Mall of America on Sunday, and Markus bought a Rick and Morty card game that seemed pretty popular. Parasites!

For dinner I ordered some delicious pizza from Punch as many people wanted to stay in and finish up their projects in time for tomorrow’s “Show and Tell”.

It’s hard to believe Dev-Jam is almost over.

by Tarus at June 29, 2019 02:24 PM

June 27, 2019

2019 Dev-Jam – Day 3

Not much to add on Day 3 of Dev-Jam. By now the group has settled into a routine and there’s lots of hacking on OpenNMS.

As part of my role as “cruise director” Mike and I ran out for more snacks.

2019 Dev-Jam: Table with Snacks and Ulf

On the way we stopped by the Science Museum of Minnesota to pick up a hoodie for Dustin. As fans of Stranger Things we thought we should get our Dustin the same hoodie worn by Dustin in the show. The one in the show was apparently an actual hoodie sold by the museum in the 1980s, but it was so popular they brought it back.

2019 Dev-Jam: Dustin and Dustin in Brontosaurus Hoodie

While not exactly the “Upside Down” in the evening the gang descended on Up-Down, a barcade located a few miles away. Jessica organized the trip and folks seemed to have a great time.

2019 Dev-Jam: Selfie of Folks at Up-Down.

The combination bar and arcade features vintage video games

2019 Dev-Jam: People Playing Video Games at Up-Down.

as well as pinball machines

2019 Dev-Jam: Selfie of Folks at Up-Down.

Of course, there was also a bar

2019 Dev-Jam: People at the Bar at Up-Down.

Good times.

by Tarus at June 27, 2019 04:52 PM

June 26, 2019

2019 Dev-Jam – Day 2

While the OpenNMS team does a pretty good job working remotely, it is so nice to be able to work together on occasion. Here is an example.

I wanted to explore the current status of the OpenNMS Selenium monitor. My conclusion was that while this monitor can probably be made to work, it needs to be deprecated and probably shouldn’t be used.

I started off on the wiki page, and when I didn’t really understand it I just looked at the page’s history. I saw that it was last updated in 2017 by Marcel, and Marcel happened to be just across the room from me. After talking to him for awhile, I understood things much better and then made the decision to deprecate it.

The idea was that one could take the Selenium IDE, record a session and then export that to a JUnit test. Then that output would be minimally modified and added to OpenNMS so that it could periodically run the test.

The main issue is that the raw Selenium test *requires* Firefox, and Firefox requires an entire graphics stack, i.e. Xorg. Most servers don’t have that for a number of good reasons, and if you are trying to run Selenium tests on a large number of sites the memory resources could become prohibitive.

An attempt to address this was made using PhantomJS, another Javascript library that did not require a graphical interface. Unfortunately, it is no longer being maintained since March of 2018.

We’ve made a note of this with an internal OpenNMS issue. Moving forward the option looks like to use “headless Chrome” but neither OpenNMS nor Selenium support that at the moment.

We still have the Page Sequence Monitor. This is very efficient but can be difficult to set up.

Playing with that took up most of my morning. It was hard staying inside because it was a beautiful day in Minneapolis.

2019 Dev-Jam: Picture of Downtown Minneapolis from UMN

Most of my afternoon was spent working with OpenNMS customers (work doesn’t stop just because it is Dev-Jam) but I did wander around to see what other folks were doing.

2019 Dev-Jam: Jesse White with VR headset

Jesse was playing with a VR headset. The OpenNMS AI/Machine Learning module ALEC can create a visualization of the network, and he wrote a tool that lets you move through it in virtual reality (along with other people using other VR headsets). Not sure how useful it would be on a day to day basis, but it is pretty cool.

That evening most of us walked down the street to a pretty amazing Chinese restaurant. I always like bonding over food and we had discovered this place last year and were eager to return. I think the “bonding” continued after the meal at a bar across the street, but I ended up calling it a day.

2019 Dev-Jam: People at a table at a Chinese restaurant

2019 Dev-Jam: People at a table at a Chinese restaurant

by Tarus at June 26, 2019 01:54 PM

June 25, 2019

2019 Dev-Jam – Day 1

Dev-Jam officially got started Monday morning at 10:00.

I usually kick off the week with a welcome and some housekeeping information, and then I turn it over to Jesse White, our project CTO. We do a roundtable introduction and then folks break off into groups and start working on the projects they find interesting.

This year we did something a little different. The development team scheduled a series of talks about the various things that have been added since the last Dev-Jam, and I spent most of the day listening to them and learning a lot of details about the amazing platform that is OpenNMS. While we had some technical difficulties, most of these presentations were recorded and I’ll add links to the videos once they are available.

2019 Dev-Jam: Graph of Main Projects Over the Last Year

Jesse started with an overview of the main development projects over the last year. Sentinel is a project to use the Kafka messaging bus to distribute OpenNMS functionality over multiple instances. While only implemented for telemetry data at the moment (flows and metrics) the goal is to enable the ability to distribute all of the functionality, such as service assurance polling and data collection, across multiple machines for virtually unlimited scalability.

After the Sentinel work, focus was on both the OpenNMS Integration API (OIA) and the Architecture for Learning Enabled Correlation (ALEC).

The OIA is a Java API to make it easier to add functionality to OpenNMS. While it is used internally, the goal is to make it easier for third parties to integrate with the platform. ALEC is a framework for adding AI and machine learning functions to OpenNMS. It currently supports two methods for the correlation of alarms into situations: DBScan and TensorFlow, but is designed to allow for others to be added.

The current development focus is on the next version of Drift. Drift is the feature that does flow collection, and there are a number of improvements being worked on for “version 2”.

2019 Dev-Jam: Title Slide for the Contributing to OpenNMS talk

Markus von Rüden gave the next talk on contributing to OpenNMS. He covered a number of topics including dealing with our git repository, pull requests, test driven development and our continuous integration systems.

2019 Dev-Jam: Title Slide for the Karaf/OSGi talk

Matt Brooks presented an overview on how to leverage Karaf to add functionality to OpenNMS. Karaf is the OSGi container used by OpenNMS to manage features, and Matt used a simple example to show the process for adding functionality to the platform.

2019 Dev-Jam: Title Slide for the OIA talk

Extending on this was a talk by Chandra Gorantla about using the OIA with an example of creating a trouble ticketing integration. OpenNMS has had a ticketing API for some time but this talk leveraged the improvements added by the new API to make the process easier.

2019 Dev-Jam: Title Slide for the ALEC talk

Following this was a talk by David Smith on ALEC. He demonstrated how to add a simple time-based correlation to OpenNMS which covered a lot of the different pieces implemented by the architecture, including things like feedback.

That ended the development overview part of the presentation but there were two more talks on Docker and Kubernetes.

2019 Dev-Jam: Slide showing Useful Docker Commands for OpenNMS

Ronny Trommer gave a short overview of running OpenNMS in Docker, covering a lot of information about how to deal with the non-immutable (mutable?) aspects of the platform such as configuration.

2019 Dev-Jam: Kubernetes Diagram

This was followed by an in-depth talk by Alejandro Galue on Kubernetes, running OpenNMS using Kubernetes and how OpenNMS can be used to monitor services running in Kubernetes. While Prometheus is the main application people implement for monitoring Kubernetes, it is very temporal and OpenNMS can augment a lot of that information, especially at the services level.

These presentations took up most of the day. Since it is hard to find places where 30 people can eat together, we have a tradition of getting catering from Brasa, and we did that for Monday night’s meal.

2019 Dev-Jam: Table Filled with Food from Brasa

Jessica Hustace, who did the majority of the planning for Dev-Jam, handed out this year’s main swag gift: OpenNMS jackets.

2019 Dev-Jam: OpenNMS logo jacket

Yup, I make this look good.

by Tarus at June 25, 2019 03:08 PM

June 24, 2019

2019 Dev-Jam – Day 0

For the fourteenth time in fifteen years, a group of core community members and power users are getting together for our annual OpenNMS Developers Conference: Dev-Jam.

This is one of my favorite times of the year, probably second only to Thanksgiving. While we do a good job of working as a distributed team, there is nothing like getting together face-to-face once in awhile.

We’ve tried a number of venues including my house, Georgia Tech and Concordia University in Montréal, but we keep coming back to Yudof Hall on the University of Minnesota campus in Minneapolis. It just works out really well for us and after coming here so many times the whole process is pretty comfortable.

My role in Dev-Jam is pretty much just the “cruise director”. As is normal, other people do all the heavy lifting. I did go on a food and drink run which included getting “Hello Kitty” seaweed snacks.

2019 Dev-Jam: Hello Kitty Seaweed Snacks

Yudof Hall is a dorm. The rooms are pretty nice for dorm rooms and include a small refrigerator, two burner stove, furniture and a sink. You share a bathroom with one other person from the conference. On the ground floor there is a large room called the Club Room. On one side is a kitchen with tables and chairs. On the other side is a large TV/monitor and couches, and in the middle we set up tables. There is a large brick patio that overlooks the Mississippi River.

2019 Dev-Jam: Yudof Hall Club Room

The network access tends to be stellar, and with the Student Union just across the street people can easily take a break to get food.

We tend to eat dinner as a group, and traditionally the kickoff meal is held at Town Hall Brewery across the river.

2019 Dev-Jam: UMN Bridge Over the River

It was a pretty rainy day but it stopped enough for most of us to walk over the bridge to the restaurant. You could feel the excitement for the week start to build as old friends reunited and new friends were made.

2019 Dev-Jam: Town Hall Brewery

When we were setting up the Club Room tables, we found a whiteboard which is sure to be useful. I liked the fact that someone had written “Welcome Home” on it. Although I don’t live here, getting together with these people sure feels coming home.

2019 Dev-Jam: Welcome Home on Whiteboard

by Tarus at June 24, 2019 02:13 PM

June 20, 2019

OpenNMS Horizon 24.1.1 (GLaDOS) Released

Release 24.1.1 is the latest stable release of OpenNMS. It contains bug fixes to WS-Man, the web UI, flows, and more as well as a few small enhancements.

For a high-level overview of what’s changed in OpenNMS 24, see What’s New in OpenNMS 24.

The codename for 24.1.1 is GLaDOS.

Bug
  • WsMan Asset Adapter config contains an invalid resourceUri (Issue NMS-10682)
  • WsMan Asset Adapter should handle WQL filters returning more than one result (Issue NMS-10683)
  • WS-Man datacollection fail with OpenJDK11 (Issue NMS-10713)
  • Angular requests do not handle 401 responses from the OpenNMS backend (Issue NMS-10719)
  • sFlow: Type mismatch of VLAN value (Issue NMS-10775)
  • Timeline missing for service names including slashes (Issue NMS-12097)
  • CME in ProxyFilter (Karaf Web Bridge) (Issue NMS-12116)
  • Remove hack from opennms-spring-extender to expose ServiceRegistry (Issue NMS-12122)
  • Installing Minion on Debian with OpenJDK 11 installed tries to install Oracle JDK 8 (Issue NMS-12119)
  • Opennms 24.1.0 on Ubuntu 19.04 won’t install because of PostgresSQL 11 (Issue NMS-12121)
Enhancement
  • Increase logging clarity for flow processing (Issue NMS-10723)
  • Remove circleci build number as tags from container images (Issue NMS-12098)
  • Provide a mechanism to collect the count of objects collected by a wsman enumeration (Issue NMS-12115)

by RangerRick at June 20, 2019 09:12 PM

OpenNMS Meridian 2018.1.9 Released

Release 2018.1.9 is a small update to 2018.1.8 that fixes an issue with timeline graphs in the node details page.

The codename for 2018.1.9 is Strong/Severe Gale.

Bug
  • Timeline missing for service names including slashes (Issue NMS-12097)

by RangerRick at June 20, 2019 06:10 PM

OpenNMS Meridian 2017.1.18 Released

Release 2017.1.18 is a small update to 2017.1.17 that fixes an issue with timeline graphs in the node details page.

The codename for 2017.1.18 is Kyoto.

Bug
  • Timeline missing for service names including slashes (Issue NMS-12097)

by RangerRick at June 20, 2019 05:45 PM

OpenNMS Meridian 2016.1.22 Released

Release 2016.1.22 is a small update to 2016.1.21 that fixes an issue with timeline graphs in the node details page.

The codename for 2016.1.22 is Prof. Orlando Ferguson’s Map of the Square and Stationary Earth, 1893.

Bug
  • Timeline missing for service names including slashes (Issue NMS-12097)

by RangerRick at June 20, 2019 04:17 PM

June 17, 2019

OpenNMS On the Horizon – June 17th, 2019 – Flow Hostname Resolution, Helm and UI Enhancements, and More!

It’s time for OpenNMS On the Horizon!

Sorry I missed one, I am pretty sure I wrote it but left it in a tab and never hit “save” or something. ¯\_(ツ)_/¯

In the last two weeks we worked on a number of flow-related changes including bug fixing, resolving hostnames, and new Helm features. We also worked on a number of other UI enhancements relating to topology graphs, reporting, and authentication.

Github Project Updates

  • Internals, APIs, and Documentation
    • Christian worked on some fixes to Netflow 9 value scaling.
    • Chandra did more work on sending events from Minions.
    • Matt worked on adding search support to the new graph service.
    • Dustin and Christian continued to work on adding hostname resolution during flow processing.
    • Ronny and Jesse worked on CircleCI and test environment changes.
    • Chandra started work on supporting moving a (provisioned) node to a new location.
  • Web, ReST, and UI
    • Matt wrapped up his changes to add flow conversation, application, and host queries to OpenNMS.js and Helm.
    • Markus worked on rewriting the reporting UI in Angular.
    • Markus worked on adding support for generating reports from Grafana dashboards.
    • Markus fixed some issues with 401 authentication handling in Angular-based apps in the web UI.
    • Matt created a new histogram panel to Helm.
    • I updated a number of dependencies in OpenNMS.js and Helm to fix security alerts.
    • Markus worked on a UI to interact with Matt’s graph service search API.
    • Christian fixed a bug that would keep services with slashes in their name from showing timelines in the node detail page.
    • I worked on refactoring the experimental inventory datasource with the faults datasource into a new entity datasource.
    • Chandra worked on making the web UI graph page lazy-load graphs as well as support searching.

Upcoming Events and Appearances

Until Next Week…

If there’s anything you’d like me to talk about in a future OOH, or you just have a comment or criticism you’d like to share, don’t hesitate to say hi.

– Ben

Resolved Issues Since Last OOH

  • HELM-148: Control resolution when using the flow datasource
  • HELM-155: Error on all panels and Grafana Home
  • NMS-10719: Angular requests do not handle 401 responses from the OpenNMS backend
  • NMS-10775: sFlow: Type mismatch of VLAN value
  • NMS-11760: Fix version range for maven-jaxb-schemagen-plugin version in root pom
  • NMS-12074: View traffic for specific conversations over time (flows) (frontend work)
  • NMS-12075: Provide possibility to add Grafana Instances
  • NMS-12076: View traffic for specific applications over time (flows) – front end work
  • NMS-12077: View traffic for specific hosts over time (flows) (frontend work)
  • NMS-12078: Add support for sending events from a Minion
  • NMS-12096: Custom TTLs for detectors, monitors and collectors
  • NMS-12097: Timeline missing for service names including slashes
  • NMS-12098: Remove circleci build number as tags from container images
  • NMS-12102: Windows is failing tests due to spurious cleanup errors
  • NMS-12107: Migrate system tests to use TestContainers framework

by RangerRick at June 17, 2019 04:05 PM

June 07, 2019

OpenNMS.js v1.5.0

This release includes support for some additional flow queries, as well as a few security updates and a fix for CLI formatting.

Bug Fixes

  • cli: fix broken table formatting in prod cli build (JS-33) (db50724)
  • security: update handlebars, js-yaml, and marked (f5f4ad2)
  • security: upgrade to Axios 0.19.0 (a731c60)

Features

by RangerRick at June 07, 2019 09:56 PM

June 03, 2019

OpenNMS On the Horizon – June 3rd, 2019 – Flows, Minion, Graph Services, UI Improvements, and More!

It’s time for OpenNMS On the Horizon!

In the last week we fixed some bugs, continued working on flow, Minion, and graph service backend improvements, and made a number of UI improvements.

Github Project Updates

  • Internals, APIs, and Documentation
    • Christian and Dustin continued their work on hostname resolution for flows.
    • Sean worked on flow logging to make diagnosing issues easier.
    • Chandra did more work on supporting originating events on the Minion.
    • Ron Roskens did a number of fixes and cleanups in the Maven build system.
    • Jesse did more work on updating smoke tests for the new CI infrastructure.
    • Chandra did more work on making TTLs configurable in detectors, monitors, and collectors.
    • Patrick worked on graph service search capabilities.
    • David continued his work refactoring Threshd out of opennms-services.
  • Web, ReST, and UI
    • Markus did more work on adding Grafana report support to the reporting UI.
    • Markus worked on fixing issues in Angular UIs when the backend returns authorization errors.
    • I did more work on refactoring entity datasource access in Helm.
    • I fixed a number of build and related bugs in Helm.

Upcoming Events and Appearances

Until Next Week…

If there’s anything you’d like me to talk about in a future OOH, or you just have a comment or criticism you’d like to share, don’t hesitate to say hi.

– Ben

Resolved Issues Since Last OOH

  • NMS-10281: We have a regression in the SNMP core API for get effective address (snmp-proxy)
  • NMS-10717: use sevntu-checkstyle-maven-plugin from maven-central
  • NMS-10718: use org.asteriskjava:asterisk-java from maven-central
  • NMS-10723: Increase logging clarity for flow processing
  • NMS-10775: sFlow: Type mismatch of VLAN value
  • NMS-10834: [circleci] Building container images fails intermittently
  • NMS-11153: View traffic for specific hosts over time (flows) (backend work)
  • NMS-11169: Update flow indicators for SNMP interfaces to link to deep dive tool
  • NMS-11372: Intermittent 404s from maven.opennms.org
  • NMS-11458: View traffic for specific applications over time (flows) – back end work
  • NMS-11722: Publish Docker images from CircleCI to DockerHub

by RangerRick at June 03, 2019 05:40 PM

May 28, 2019

OpenNMS On the Horizon – May 28th, 2019 – Flow Enhancements, Reporting, Bug Fixes, and More!

It’s time for OpenNMS On the Horizon!

In the last week we did more work on flow enhancements, reporting, and other bug fixes.

Github Project Updates

  • Internals, APIs, and Documentation
    • Sean did some more work on updating our Kafka components to 2.2.
    • Markus expanded some test coverage for SLM calculation.
    • Dustin and Christian continued to work on adding hostname resolution when processing flows.
    • Chandra did more fixes to memory leaks during Drools reloading.
    • Chandra added support for customizing TTLs in detectors/monitors/collectors
    • Patrick worked on fixing SNMP proxy issues.
    • Patrick continued his work on allowing vertexes from multiple namespaces to be in edges in the graph service.
    • Matt worked on flow API enhancements to allow querying specific conversations, hosts, or applications.
    • Jesse worked on porting smoke tests over to the new smoke test APIs.
    • I updated our pull request template to have a checklist of common tasks to complete.
    • Chandra worked on adding event API support to the Minion.
  • Web, ReST, and UI
    • I finished up adding support for severity color themes in Helm.
    • Jeff did some more input-sanitization fixes in the web UI.
    • Jeff fixed sorting of nodes when editing surveillance categories in the flow admin UI.
    • Jesse and Markus worked on reporting UI updates, including support for configuring accessing Grafana instances/dashboards.
    • Jesse changed the flow indicators in the UI to point to the deep dive tool.

OpenNMS May Releases

Last week we released OpenNMS Horizon 24.1.0, and new point releases for Meridian 2016, 2017, and 2018.

The Meridian releases contained primarily small UI fixes and a couple of security fixes. Horizon 24 got a decent number of bug fixes and enhancements including support for OpenTracing in the sink API and a rework of geocoding services.

For a complete list of changes, see the release notes:

Upcoming Events and Appearances

Until Next Week…

If there’s anything you’d like me to talk about in a future OOH, or you just have a comment or criticism you’d like to share, don’t hesitate to say hi.

– Ben

Resolved Issues Since Last OOH

  • HELM-147: Text fields on Alarm Details Modal Window do not wrap or scroll.
  • HELM-149: Add “theme” support for the alarm table severity colors
  • HZN-1521: Edges should allow to contain vertices of different namespaces
  • HZN-1551: View traffic for specific applications over time (flows) – back end work
  • HZN-1552: View traffic for specific hosts over time (flows) (backend work)
  • HZN-1554: View traffic for specific conversations over time (flows) (backend work)
  • HZN-1556: [circleci] Building container images fails intermittently
  • HZN-1566: Enforce VertexRef to be immutable
  • NMS-10281: We have a regression in the SNMP core API for get effective address (snmp-proxy)
  • NMS-10458: Wrong SLM 24hr availability calculation per node
  • NMS-10654: When editing a surveillance category from Admin flow, lists of nodes are not sorted by node label
  • NMS-10678: Memory Leak on Drools while reloading config
  • NMS-10679: Node detail page renders with no content when invalid node ID specified
  • NMS-10688: Install guide for Java versions is misleading
  • NMS-10698: EditInRequisitionIT flapping
  • NMS-10701: Jetty HTTPS selectors can become unresponsive following CancelledKeyException
  • NMS-10707: Reflected XSS vulnerability in notification/detail.jsp and outage/detail.htm

by RangerRick at May 28, 2019 05:54 PM

May 23, 2019

OpenNMS Horizon 24.1.0 Released

Release 24.1.0 is the latest stable release of OpenNMS. It contains a bunch of bug fixes and a few enhancements, including support for OpenTracing in the sink API and a rework of geocoding services.

For a high-level overview of what’s changed in OpenNMS 24, see What’s New in OpenNMS 24.

The codename for 24.1.0 is J.A.R.V.I.S.

Bug
  • Thresholds should work without restart when putting nodes into categories (Issue NMS-9811)
  • When editing a surveillance category from Admin flow, lists of nodes are not sorted by node label (Issue NMS-10654)
  • health:check command times out when a health check command gets stuck (Issue NMS-10667)
  • Vaadin bundles stuck intermittently stuck in “Waiting” state (Issue NMS-10668)
  • Table in “Manage Minions” page fails to load (Issue NMS-10670)
  • Default load threshold contains caluculation error (Issue NMS-10671)
  • Can not delete node due to database table constraint (Issue NMS-10674)
  • Missing Indication of Sync Needed for Requisitions (Issue NMS-10675)
  • .rpmnew, .rpmsave, and .dpkg-dist files not erroring out properly (Issue NMS-10676)
  • Some config files should be marked %config (rather than %config(noreplace)) in RPMs (Issue NMS-10677)
  • Memory Leak on Drools while reloading config (Issue NMS-10678)
  • Node detail page renders with no content when invalid node ID specified (Issue NMS-10679)
  • Installing the opennms package installs Oracle JDK 8 instead of OpenJDK 11 on Ubuntu (Issue NMS-10680)
  • Apparent memory leak in JMX collector, possibly restricted to “weird” JMX transports (Issue NMS-10684)
  • Install guide for Java versions is misleading (Issue NMS-10688)
  • Java configuration is ignored on Ubuntu/Debian (Issue NMS-10693)
  • CVE-2018-20433: XXE Vulnerability in c3p0 < 0.9.5.3 (Issue NMS-10694)
  • Memory leak in WS-Man (Issue NMS-10696)
  • EditInRequisitionIT flapping (Issue NMS-10698)
  • Jetty HTTPS selectors can become unresponsive following CancelledKeyException (Issue NMS-10701)
  • Reflected XSS vulnerability in notification/detail.jsp and outage/detail.htm (Issue NMS-10707)
Enhancement
  • Enable extraction of match groups from regex matches in Event.Mask.Varbind.Vbvalue (Issue NMS-10626)
  • Tag “root cause” alarm when providing feedback (Issue HZN-1492)
  • Rework the GeocoderService-Implementations (Issue HZN-1520)
  • Meta-Data Documentation Format Wrong (Issue HZN-1557)
  • Add OpenTracing support for Sink API (Issue HZN-1558)

by RangerRick at May 23, 2019 11:22 PM

OpenNMS Meridian 2018.1.8 Released

Release 2018.1.8 is an update to Meridian 2018.1.7. It contains a few UI fixes and security updates, as well as a fix for memory leaks in Drools config reloading, WS-Man monitoring, and the JMX collector.

The codename for 2018.1.8 is Gale.

Bug
  • Memory Leak on Drools while reloading config (Issue NMS-10678)
  • Node detail page renders with no content when invalid node ID specified (Issue NMS-10679)
  • Apparent memory leak in JMX collector, possibly restricted to “weird” JMX transports (Issue NMS-10684)
  • CVE-2018-20433: XXE Vulnerability in c3p0 < 0.9.5.3 (Issue NMS-10694)
  • Memory leak in WS-Man (Issue NMS-10696)
  • Jetty HTTPS selectors can become unresponsive following CancelledKeyException (Issue NMS-10701)
  • Reflected XSS vulnerability in notification/detail.jsp and outage/detail.htm (Issue NMS-10707)

by RangerRick at May 23, 2019 08:11 PM

OpenNMS Meridian 2017.1.17 Released

Release 2017.1.17 is a small update to 2017.1.16 that has a few UI fixes and security updates, as well as a fix for memory leaks in WS-Man monitoring and the JMX collector.

The codename for 2017.1.17 is Old Naval Observatory meridian.

Bug
  • Node detail page renders with no content when invalid node ID specified (Issue NMS-10679)
  • Apparent memory leak in JMX collector, possibly restricted to “weird” JMX transports (Issue NMS-10684)
  • CVE-2018-20433: XXE Vulnerability in c3p0 < 0.9.5.3 (Issue NMS-10694)
  • Memory leak in WS-Man (Issue NMS-10696)
  • Reflected XSS vulnerability in notification/detail.jsp and outage/detail.htm (Issue NMS-10707)

by RangerRick at May 23, 2019 08:09 PM

OpenNMS Meridian 2016.1.21 Released

Release 2016.1.21 is a small update to 2016.1.20 that has a few UI fixes and security updates, as well as a fix for a memory leak in WS-Man monitoring.

The codename for 2016.1.21 is North Pole Gnomonic.

Bug
  • Node detail page renders with no content when invalid node ID specified (Issue NMS-10679)
  • CVE-2018-20433: XXE Vulnerability in c3p0 < 0.9.5.3 (Issue NMS-10694)
  • Memory leak in WS-Man (Issue NMS-10696)
  • Reflected XSS vulnerability in notification/detail.jsp and outage/detail.htm (Issue NMS-10707)

by RangerRick at May 23, 2019 08:08 PM

May 20, 2019

OpenNMS On the Horizon – May 20th, 2019 – Bug Fixes, CI Workflow, Grafana Integration, Helm, and More!

It’s time for OpenNMS On the Horizon!

In the last week we continued to do bug fixes ahead of the 24.1 Horizon release, did more work supporting flow enhancements and graph service improvements, worked on CI infrastructure, reporting from Grafana, and more!

Github Project Updates

  • Internals, APIs, and Documentation
    • David continued to work on refactoring threshd out of opennms-services.
    • I wrapped up my changes to OpenNMS startup scripts and exit-code handling.
    • Patrick continued his work making the graph service handle edges with vertexes from multiple namespaces.
    • Markus did more work on fixing up an issue that could cause health:check to get stuck.
    • Markus made more changes to the branch porting application topology to the new graph service.
    • Ronny did some work on improving Docker caching in the CircleCI workflow.
    • Chandra fixed some issues in the integration API that could cause service start failures.
    • I released an updated OpenNMS.js with fixed CLI rendering of alarms.
    • Christian worked on adding hostname resolution while processing flows.
    • Chandra worked on fixing a memory leak issue when reloading Drools.
    • Chandra made more improvements to tracing support in the sink API.
    • Jesse fixed a bug that kept nodes from being deleted.
  • Web, ReST, and UI
    • Matt worked on improvements to the flow ReST API to allow querying conversations.
    • Markus worked on a feature to create flow reports from Grafana dashboards.
    • Patrick worked on fixing the minion status page.
    • I worked on fixing layout in the alarm details page in Helm (word-wrapping, etc.)
    • I added color theme support to allow changing the severity color scheme.

Upcoming Events and Appearances

Until Next Week…

If there’s anything you’d like me to talk about in a future OOH, or you just have a comment or criticism you’d like to share, don’t hesitate to say hi.

– Ben

Resolved Issues Since Last OOH

  • ALEC-66: Expand test coverage for UDL
  • ALEC-69: Memory leak in ClusterEngine caused by spatial distance caching
  • HELM-144: grafana-cli only installs 2.0.0 (or older), not 3.0.1
  • HZN-1470: Implement ReST Service for the new Graph Service
  • HZN-1490: Provide new GraphProvider implementation for the ApplicationTopologyProvider
  • HZN-1555: Design new header for PDF reports
  • HZN-1558: Add OpenTracing support for Sink API
  • HZN-1573: Unable to logon using default admin/admin account after fresh install
  • HZN-1574: Documentation broken
  • IPL-33: create function updated in PostgreSQL 11.
  • NMS-6920: provide “select all” button in scheduled outages menu
  • NMS-9811: Thresholds should work without restart when putting nodes into categories
  • NMS-10624: Upgrade Kafka components to 2.2.0
  • NMS-10626: Enable extraction of match groups from regex matches in Event.Mask.Varbind.Vbvalue
  • NMS-10667: health:check command times out when a health check command gets stuck
  • NMS-10668: Vaadin bundles stuck intermittently stuck in “Waiting” state
  • NMS-10670: Table in “Manage Minions” page fails to load
  • NMS-10674: Can not delete node due to database table constraint
  • NMS-10676: .rpmnew, .rpmsave, and .dpkg-dist files not erroring out properly
  • NMS-10677: Some config files should be marked %config (rather than %config(noreplace)) in RPMs
  • NMS-10680: Installing the opennms package installs Oracle JDK 8 instead of OpenJDK 11 on Ubuntu
  • NMS-10689: Allow running integration tests without running unit tests
  • NMS-10693: Java configuration is ignored on Ubuntu/Debian
  • NMS-10694: CVE-2018-20433: XXE Vulnerability in c3p0 < 0.9.5.3
  • NMS-10696: Memory leak in WS-Man

by RangerRick at May 20, 2019 03:56 PM

May 13, 2019

OpenNMS On the Horizon – May 13th, 2019 – OpenTracing, Bug Fixes, Refactoring, Graph Service, UI Fixes, and More!

It’s time for OpenNMS On the Horizon!

In the last week we fixed a lot of bugs, did more work on OpenTracing, made improvements to the new graph service, cleaned up various UI annoyances, and more.

Github Project Updates

  • Internals, APIs, and Documentation
    • Patrick did more work on fixing an SNMP proxy address resolution issue.
    • Markus did more work on geocoder API and UI improvements.
    • Ronny did more work on Docker image improvements.
    • Patrick worked on enhancements to the graph APIs to allow edges to contain vertexes from multiple namespaces.
    • Dustin removed the alarm-change-notifier plugin.
    • David continued to work on refactoring threshd out of opennms-services.
    • Dustin worked on supporting wildcards in service names in the poller-configuration.xml.
    • Ron Roskens worked on modernizing and cleaning up some of our Maven stuff.
    • Markus worked on refactoring existing topology providers to the new graph service.
    • Chandra did more work on OpenTracing support for the Sink API.
    • I worked on making it so integration tests can be run without unit tests, to allow splitting up builds in Bamboo.
    • David continued to work on making thresholds reload when node categories change.
    • Markus worked on fixing a timeout issue that can happen when doing minion health:check.
    • I fixed the Debian install so it prefers OpenJDK 11 (headless) over OpenJDK 8.
    • Ronny worked on modernizing our JDK terminology in the documentation.
    • Naicisum contributed an update to modernize our kafka client and scala dependencies.
    • David worked on making it possible to extend the Threshd configuration through OIA.
    • I did more work fixing various shell startup issues in OpenNMS, Minion, and Sentinel.
  • Web, ReST, and UI
    • I worked on splitting out a single “source of truth” set of sass files to be shared between various OpenNMS UI bits.
    • Christian did more work on supporting searching for nodes with or without flow data.
    • Patrick worked on fixing the “Manage Minions” page.
    • Markus did more work on a ReST interface for the new graph service.
    • Markus fixed some color issues in the requisition UI as a result of the Bootstrap 4 upgrade.
    • Markus worked on fixing exception handling in the node page when you attempt to view a node that doesn’t exist.

Upcoming Events and Appearances

Until Next Week…

If there’s anything you’d like me to talk about in a future OOH, or you just have a comment or criticism you’d like to share, don’t hesitate to say hi.

– Ben

Resolved Issues Since Last OOH

  • HZN-1492: Tag “root cause” alarm when providing feedback
  • HZN-1520: Rework the GeocoderService-Implementations
  • HZN-1523: Make GraphRepository persist collections
  • HZN-1531: Support large buffer sizes in Kafka Sink Layer
  • HZN-1536: Sink Metrics
  • HZN-1539: Indicators for nodes with flow data
  • HZN-1540: Search for nodes that have flow data
  • JS-33: Alarms formatted as a table is gone with update to 1.4.0
  • NMS-9834: Wrong permissions for rrd files when using MultithreadedJniRrdStrategy
  • NMS-10675: Missing Indication of Sync Needed for Requisitions
  • NMS-10679: Node detail page renders with no content when invalid node ID specified
  • NMS-10684: Apparent memory leak in JMX collector, possibly restricted to “weird” JMX transports

by RangerRick at May 13, 2019 03:21 PM

May 06, 2019

OpenNMS On the Horizon – May 6th, 2019 – Thresholding, Docker, Sink and RPC, Flows, and More!

It’s time for OpenNMS On the Horizon!

In the last week we did more thresholding cleanups, lots of Docker work, graph service updates, sink and RPC improvements, startup and config checking fixes, flow UI and ReST updates, and a ton of bug fixing.

Github Project Updates

  • Internals, APIs, and Documentation
    • David worked on fixing reloading thresholds when node categories change.
    • Ronny did more work on OpenNMS/Minion/Sentinel Docker containers.
    • Patrick continued his work on updates to the new graph service.
    • Marcel did some work cleaning up threshold events to be more descriptive/useful.
    • Matt worked on refactoring API types to the OIA.
    • Chandra worked on supporting large buffer sizes in the Kafka sink, along with some other sink/RPC metric updates.
    • David started working on refactoring Threshd out of opennms-services.
    • I fixed a bug that could cause opennms start exit codes to indicate success when they should have failed.
    • I worked on cleaning up the various RPM packages so they would create more .rpmsave files rather than .rpmnew for configs that should be overwritten by default.
    • I fixed rpmnew/rpmsave/dpkg-dist checking in OpenNMS startup as well as adding it to Minion and Sentinel.
    • Chandra added tracing to the sink API.
    • Chandra fixed a memory leak in Drools when it reloads configuration.
    • Dino contributed some fixes to the WS-Man asset adapter.
    • Christian fixed a bug in threshold load calculation.
    • Jesse fixed a memory leak in the JMX connector.
    • Patrick fixed a bug where SNMP proxy hosts would be addressed incorrectly.
  • Web, ReST, and UI
    • Christian updated the node search page to include the ability to search for nodes with or without flow data, as well as showing flow data indicators on the node list, node details, and resource graph pages.
    • David did some more work on the Helm enhancements to support root cause feedback.
    • Matt started work on supporting graphing flows for a specific host.

Upcoming Events and Appearances

Until Next Week…

If there’s anything you’d like me to talk about in a future OOH, or you just have a comment or criticism you’d like to share, don’t hesitate to say hi.

– Ben

Resolved Issues Since Last OOH

  • HZN-1496: RPC Metrics
  • HZN-1557: Meta-Data Documentation Format Wrong
  • NMS-10658: Remove alarm-change-notifier plugin
  • NMS-10671: Default load threshold contains caluculation error

by RangerRick at May 06, 2019 05:27 PM

April 30, 2019

OpenNMS Launches Horizon 24

Open Source AIOps Platform, “ALEC,” Streaming Telemetry, Network Traffic Analysis, and Java 11 Support

The OpenNMS Group announced the release of OpenNMS Horizon 24. Horizon 24 is the most comprehensive version of OpenNMS to date, making it one of the most powerful, scalable monitoring systems available anywhere.  Horizon 24 introduces ALEC, the first open source AIOps platform for learning enabled correlation. ALEC (Architecture for Learning Enabled Correlation) enables users to quickly detect, visualize, and resolve situations across the entire IT infrastructure. Horizon 24 organizes faults into visible situations that enables users to quickly visualize network problems and prioritize their efforts to resolution. Horizon 24 includes over 100 key updates, including streaming telemetry, network traffic analysis and support for Java 11.

“Horizon 24 combines the best of Open Source community-development and AI technologies,” said David Hustace, President, The OpenNMS Group, Inc. “Horizon 24 features have been tested in mission-critical network environments by our customers over the last eighteen months and today are delivered to the community through our open source model with the Horizon 24 release.”

Health technology company, Cerner, has been using OpenNMS as a highly scalable fault and performance management system since 2012, collaborating with The OpenNMS Group to build a monitoring fabric enriching all business applications. Most recently, the introduction of ALEC represents a vision shared between Cerner and many other large corporations and the OpenNMS community.

“The AI correlation introduced in Horizon 24, along with its streaming integration APIs, allows us to move away from proprietary solutions and helps us provide a reduced ‘Meantime to Knowledge’ for Cerner’s operations teams.”  said Jim Avazpour, Director Operations Center, Cerner Corporation.

Cool New Features:

Built to meet the needs of big data infrastructures, Horizon 24 uses machine learning technologies to achieve greater scale in IT operations, network monitoring and management.

AI Correlation Engine – Horizon 24’s ALEC, uses two machine learning algorithms including unsupervised (alarm clustering) and supervised (deep learning) built using TensorFlow.

Streaming Telemetry – OpenNMS has added support for Juniper and Cisco streaming telemetry protocols which allows devices to autonomously send performance metrics optimizing the performance of your network devices. Horizon 24 distributed streaming technologies integrate with Kafka, ElasticSearch and Grafana.

Java 11 – Horizon 24 now supports running on Java 11, including OpenJDK, thereby removing the dependencies on commercial JDK solutions for Java.

About The OpenNMS Group

“The OpenNMS Group stewards the OpenNMS open source software project and provides OpenNMS Meridian, a long term support release of OpenNMS, as well as commercial support, consulting and training services.”

by jessi at April 30, 2019 03:50 PM

OpenNMS On the Horizon – April 30th, 2019 – Horizon 24, Graph Service, RPC and Sink API, Docker Containers, and UI Changes

It’s time for OpenNMS On the Horizon!

Sorry this is out a bit late, I’m super sick. I’ll probably write this and go right back to bed.

In the last week we did a lot of preparation for Horizon 24, plus continued work on the graph service, RPC and sink metrics, and some UI work.

Github Project Updates

  • Internals, APIs, and Documentation
    • Patrick did more work on enhancements to the graph service.
    • I cleaned up some startup script issues in prep for Horizon 24.
    • Jesse worked on extracting additional event parameters from varbind values based on regular expressions.
    • Jeff fixed upgrades to keep karaf shell history.
    • Matt made some fixes to prefab graph support in OIA.
    • Chandra continued to work on enhancing metrics and tracing in the RPC and Sink APIs.
    • Lots of documentation work was done in preparation for Horizon 24’s release.
    • David started working on fixing thresholds handling node category changes.
    • Patrick worked on persisting graph repository collections.
    • Ronny did more work on improvements to our docker containers.
  • Web & UI
    • David did more work on the Helm integration for root cause handling in situations.
    • Christian fixed an issue in the MIB parser that could cause exceptions.

April OpenNMS Horizon and Meridian Releases

OpenNMS Horizon (Rapid Release)

April marks a new major Horizon release: OpenNMS Horizon 24. The most notable improvements are big updates to alarm correlation (including support for Tensorflow-based AI correlation), a new developer API for creating OpenNMS plugins, a web UI refresh, and flow enhancements.

For a complete list of changes in Horizon 24, see the release notes.

OpenNMS Meridian (LTS)

We also updated Meridian all the way back to Meridian 2016, primarily to fix a bug in SNMP processing of certain buggy agent behaviors that could cause an out of memory exception.

For a complete list of changes, see the release notes:

Upcoming Events and Appearances

Until Next Week…

If there’s anything you’d like me to talk about in a future OOH, or you just have a comment or criticism you’d like to share, don’t hesitate to say hi.

– Ben

Resolved Issues Since Last OOH

  • ALEC-58: Expand test coverage for smoke tests
  • ALEC-61: Add health check for the main driver
  • ALEC-62: KEM: Reduce messages sent to stdout/stderr
  • ALEC-64: Inventory does not automatically refresh with the direct datasource
  • HELM-146: Rework alarm table severity colors
  • HZN-1078: Java 9 Support
  • HZN-1284: Project Sentinel
  • HZN-1317: Enhanced Alarm Life Cycle and Service Layer
  • HZN-1320: Topology and model enhancements for correlation
  • HZN-1513: circleci packaging strategy
  • HZN-1522: The GraphService interface should return GenericGraph instead of Graph<?, ?>
  • HZN-1535: Initial CircleCI pipeline
  • HZN-1542: PDF reports with Jasper and Grafana POC
  • NMS-9737: Cleanup default SNMP data collection
  • NMS-10420: Wrong data type for Cassandra Thread Pool performance metrics
  • NMS-10576: Documentation has not addressed refactoring of Single-Port flow listener
  • NMS-10608: Fix all bootstrap 4 related issues or UI fixes we want to address with that upgrade
  • NMS-10638: Allow Java 8-11 by default
  • NMS-10647: ArrayIndexOutOfBoundsException during error handling in SNMP MIB Compiler
  • NMS-10663: bin/runjava tries to evaluate an empty value as a candidate JVM pathname
  • OIA-18: Exposing prefabricated graphs is broken

by RangerRick at April 30, 2019 02:29 PM

April 25, 2019

OpenNMS Horizon 24 Released

Release 24.0.0 is the latest stable release of OpenNMS. It contains a large number of bug fixes and enhancements, most notably adding machine-learning-guided correlation of alarms, and many improvements to Netflow/IPFIX/sFlow support.

For a high-level overview of what’s changed in OpenNMS 24, see What’s New in OpenNMS 24.

For a detailed list of changes, see the changelog.

The codename for 24.0.0 is Hal 9000.

by RangerRick at April 25, 2019 08:53 PM

OpenNMS Meridian 2018.1.7 Released

Release 2018.1.7 is an update to Meridian 2018.1.6. It contains a few changes including UI updates and an SNMP loop bug that could cause out-of-memory crashes.

The codename for 2018.1.7 is High wind.

Bug
  • Cannot run Minion as non-root (Issue LTS-231)
  • ROLE_PROVISION doesn’t work on the UI when the ACL feature is enabled. (Issue NMS-9786)
  • Search on KSC Reports page in WebUI does not work (Issue NMS-10416)
  • Incorrect date formatting in send-event.py (Issue NMS-10602)
  • The MIB Compiler is unable to parse certain MIBs (Issue NMS-10609)
  • ArrayIndexOutOfBoundsException during error handling in SNMP MIB Compiler (Issue NMS-10647)
  • When editing a surveillance category from Admin flow, lists of nodes are not sorted by node label (Issue NMS-10654)
  • Karaf shell history thrown out with bathwater on upgrade (Issue NMS-10664)
Enhancement
  • Improve test coverage of SNMPv3 traps and informs (Issue NMS-10630)
  • Allow the “step” (or interval) to be referenced from a Measurement API expression (Issue NMS-10633)
  • “Event text contains” should search beyond eventlogmsg (Issue NMS-8444)

by RangerRick at April 25, 2019 04:56 PM

OpenNMS Meridian 2017.1.16 Released

Release 2017.1.16 is a small update to 2017.1.15 that has a few changes including UI updates and an SNMP loop bug that could cause out-of-memory crashes.

The codename for 2017.1.16 is Florence meridian.

Bug
  • ROLE_PROVISION doesn’t work on the UI when the ACL feature is enabled. (Issue NMS-9786)
  • Search on KSC Reports page in WebUI does not work (Issue NMS-10416)
  • Backport SNMP successor validation (Issue NMS-10622)
  • ArrayIndexOutOfBoundsException during error handling in SNMP MIB Compiler (Issue NMS-10647)
  • When editing a surveillance category from Admin flow, lists of nodes are not sorted by node label (Issue NMS-10654)
  • Karaf shell history thrown out with bathwater on upgrade (Issue NMS-10664)
Enhancement
  • “Event text contains” should search beyond eventlogmsg (Issue NMS-8444)

by RangerRick at April 25, 2019 04:01 PM

OpenNMS Meridian 2016.1.20 Released

Release 2016.1.20 is a small update to 2016.1.19 that has a few changes including UI updates and an SNMP loop bug that could cause out-of-memory crashes.

The codename for 2016.1.20 is Craster Parabolic.

Bug
  • find-java.sh doesn’t understand newer JDK output (Issue NMS-10401)
  • Backport SNMP successor validation (Issue NMS-10622)
  • When editing a surveillance category from Admin flow, lists of nodes are not sorted by node label (Issue NMS-10654)
  • Karaf shell history thrown out with bathwater on upgrade (Issue NMS-10664)
Enhancement
  • “Event text contains” should search beyond eventlogmsg (Issue NMS-8444)

by RangerRick at April 25, 2019 03:20 PM

April 22, 2019

OpenNMS On the Horizon – April 22nd, 2019 – APIs, Packaging, IFTTT, Protobuf, CircleCI, Helm, and More!

It’s time for OpenNMS On the Horizon!

In the last week we worked on the IFTTT integration, RPC, OIA and sink APIs, the new graph topology service, Helm, various UI tweaks, and more!

Github Project Updates

  • Internals, APIs, and Documentation
    • Christian updated the IFTTT integration to support reduction key filters.
    • Chandra worked on wrapping sink messages with protobuf so additional metadata can be associated with them.
    • I finished my updates to Minion and Sentinel packaging to fix issues with overriding default configuration at startup.
    • I finished my work updating the OpenNMS packaging to require OpenJDK 11 by default.
    • Matthew did more work converting OIA to use immutable objects.
    • Marcel did some cleanup on trap event messages.
    • Jesse did more work on the CircleCI build proof-of-concept.
    • Chandra continued his work on adding tracing to the RPC code.
    • Patrick did more work on the graph topology provider.
    • Jeff worked on a proof-of-concept to pull matching data out into varbinds when processing events.
    • Christian fixed an issue in the MIB parser that could make it difficult to diagnose failures.
  • Web & UI
    • David continued his work on the Helm integration for root cause handling in situations.
    • Christian updated webapp session handling to not timeout for the browser notification integration.
    • Alejandro’s fixes for search on the KSC report page were merged.

Upcoming Events and Appearances

Until Next Week…

If there’s anything you’d like me to talk about in a future TWiO, or you just have a comment or criticism you’d like to share, don’t hesitate to say hi.

– Ben

Resolved Issues Since Last OOH

  • HZN-1509: Minion stops sending flow data into Kafka
  • HZN-1511: Meta-data gets deleted when requisition is modified in UI
  • HZN-1516: Add OpenTracing support for Camel (JMS) RPC
  • HZN-1519: Add ability to provide custom tags to OpenTracing by RPC Modules
  • HZN-1529: Wrap Sink Message in Protobuf
  • HZN-1533: Random compilation failures in opennms-base-assembly
  • NMS-9893: Alarm Clear Trigger query language performance improvement
  • NMS-10416: Search on KSC Reports page in WebUI does not work
  • NMS-10511: Disable session timeout by default
  • NMS-10540: After login the favicon appears instead of the starting page
  • NMS-10631: Configuration directives in /etc/sysconfig/sentinel are not being applied
  • NMS-10639: OpenNMS Horizon installs OpenJDK 1.8.0 even OpenJDK 11 is already installed
  • NMS-10642: DNSResolutionMonitor incorrectly sets port number
  • NMS-10643: MonitoredServiceDaoIT test fail due to database
  • NMS-10644: EventdIT test failure
  • NMS-10645: DuplicatePrimaryAddressIT logs a failure due to logging assertion
  • NMS-10646: The evaluation layer that helps sizing Cassandra is broken
  • NMS-10650: Vaadin geographical maps broke in Chrome
  • NMS-10651: logging methods have incorrect number of arguments.
  • NMS-10653: add isAcknowledged to the alarm model for the rest interface
  • NMS-10654: When editing a surveillance category from Admin flow, lists of nodes are not sorted by node label
  • NMS-10656: remove centric troubleticket plugin
  • NMS-10664: Karaf shell history thrown out with bathwater on upgrade
  • OIA-12: Integration API feature (opennms-integration-api-features) fails to start if Collectd/Pollerd services are not enabled
  • OIA-13: Replace bean implementations with immutables
  • PRIS-146: create groovy script to select nodes by category

by RangerRick at April 22, 2019 05:20 PM

April 15, 2019

OpenNMS On the Horizon – April 15th, 2019 – OCE is Now ALEC, TWiO is Now OOH, RPC Tracing, Horizon 24, Helm, and More!

It’s time for OpenNMS On the Horizon!

In the last week we did a lot of prep work for Horizon 24, including better debug tracing for RPC and geocoder fixes, as well as other ALEC updates.

Oh, and we renamed OCE to ALEC (Architecture for Learning Enabled Correlation) now that it has a TensorFlow-based engine. And I renamed This Week in OpenNMS to OpenNMS On the Horizon because c’mon, you gotta admit it’s a better name. Get it? Horizon? Fine. Well it’s staying this way whether you like it or not.

Github Project Updates

  • Internals, APIs, and Documentation
    • Jesse and Ronny continued to work on a CircleCI workflow for OpenNMS builds.
    • Chandra fixed loading a couple of the less common timeseries strategies that got broken in a refactor.
    • Chandra did wrap-up on opentracing support for RPC communications.
    • Markus started in on reworking our geocoder support, including a configuration UI.
    • Dustin worked on making poller configuration applicable to more than one service through wildcards.
    • Matt did more work on running ALEC on the JVM.
    • I updated the dependencies for Horizon 24 so it can be installed without requiring a specific JVM, as well as allowing JDK 8 through 11.
    • Jesse added support for pushing topology edge updates with a Karaf command.
  • Web & UI
    • David did more work on the UI for root cause submission.
    • I worked on more enhancements to Helm, including mouseovers for alarm logs, auto-wildcarding for text search in the filter panel, and a number of bug fixes and maintenance chores.

Upcoming Events and Appearances

Until Next Week…

If there’s anything you’d like me to talk about in a future TWiO, or you just have a comment or criticism you’d like to share, don’t hesitate to say hi.

– Ben

Resolved Issues Since Last TWiO

  • ALEC-10: Create Situation Icon
  • ALEC-11: Create Network Interface Icon
  • ALEC-55: Add topology(link) support to the OpenNMS Direct datasource
  • ALEC-60: Create Debian packages for OCE
  • ALEC-63: OCE unusable when graph contains large number of deferred IOs
  • HELM-135: Add isAcknowledged to the faults datasource and alarm table
  • HELM-140: update build to use webpack
  • HELM-142: Text control in filter panel disappears on auto-refresh, but other panels remain filtered
  • HELM-143: Add td.title to alarm-table cell contents
  • HZN-1495: Investigate OpenTracing for our RPC communications
  • HZN-1517: Support compression in JestClient for Elasticsearch
  • JS-29: Add isAcknowledged to alarm object and queries
  • NMS-10640: IFTTT feature should also support BSM alarms

by RangerRick at April 15, 2019 06:40 PM

April 09, 2019

OpenNMS.js v1.4.0

This is a small feature release with a few changes targeted primarily to Helm.

Features

  • alarms: HZN-1492 : Add RootCause and Tags to SituationFeedback (#35) (3790072)
  • dao: JS-29 - add support for "isAcknowledged" on alarms (ff1515a)

by RangerRick at April 09, 2019 07:50 PM

April 08, 2019

This Week in OpenNMS – April 8th, 2019 – API Updates, Karaf and RPC Debugging, Java 11, OCE, Helm, and more!

It’s time for This Week in OpenNMS!

In the last week we did more work on an updated graph service, continuous integration, debugging tools for Karaf and RPC communications, Java 11 support, OCE improvements, Helm updates, and more.

Github Project Updates

  • Internals, APIs, and Documentation
    • Patrick did more work on domain-specific graph objects in the new graph service.
    • Jesse and Ronny did more work on doing OpenNMS builds and tests in CircleCI.
    • David added root cause feedback to the health check status.
    • Markus did some refactoring of the new graph service.
    • Chandra did more work integrating Jaeger tracing into our RPC communications.
    • Matt did more work on the direct OCE datasource.
    • Jesse updated the JEXL engine to expose step size for runtime calculation purposes.
    • Christian and I did some CLI fixes for running under Java 11.
    • Dustin did more work on arbitrary node metadata support.
    • Jesse worked on improving performance when there are a large number of deferred IO requests pending in OCE.
    • Jesse fixed a lazy initialization issue when using ticketing and alarms in elasticsearch.
    • Christian added support for filtering UEIs for IFTTT triggers.
    • Christian fixed an issue with the RadixTreeSyslogParser and syslog messages with extraneous text.
  • Web & UI
    • I did more work on Helm, including additional filter panel support, fixing pagination-refresh in the alarm table, and updating the build to use webpack.
    • Markus fixed some more issues in the updated Bootstrap 4 UI.

Upcoming Events and Appearances

Until Next Week…

If there’s anything you’d like me to talk about in a future TWiO, or you just have a comment or criticism you’d like to share, don’t hesitate to say hi.

– Ben

Resolved Issues Since Last TWiO

  • HZN-1500: Webapp fails to start on Java 9
  • HZN-1504: Enhance RadixTreeSyslogParser to ignore specific characters
  • HZN-1505: Implement domain specific graph objects in New Graph service
  • HZN-1506: Remove PluginManager
  • HZN-1508: Update plugin to work with ES 6.7.x
  • HZN-1510: Refactor GraphProvider to return Graph instead of being the Graph itself
  • HZN-1512: Remove unused indexNew.jsp files
  • NMS-10426: broken xml code in foreign source/imports is not being detected
  • NMS-10594: LazyInitializationException when using ticketing and alarm history in Elastic
  • NMS-10598: Add node/interface/service details as scopes to Meta-DSL
  • NMS-10619: Init script errors when starting Sentinel on RHEL 6.6
  • NMS-10622: Backport SNMP successor validation
  • NMS-10630: Improve test coverage of SNMPv3 traps and informs
  • NMS-10632: The navigation sidebar on the resource graph page is not working after the Bootstrap 4 changes
  • NMS-10633: Allow the “step” (or interval) to be referenced from a Measurement API expression
  • NMS-10637: %interface% & %interfaceresolve% variables do not resolve values in notifications
  • NMS-10641: Starting opennms.service triggers numerous exceptions
  • OIA-11: Expose service for persisting collection sets

by RangerRick at April 08, 2019 06:21 PM

April 01, 2019

This Week in OpenNMS – April 1st, 2019 – CircleCI, OCE Testing, Bug Fixes, Helm and OpenNMS UI, Java 11, and more!

It’s time for This Week in OpenNMS!

In the last week we worked on a new continuous integration workflow, better end-to-end OCE testing, lots of bug fixes, Helm and OpenNMS UI improvements, and more updates for modern Java support.

Github Project Updates

  • Internals, APIs, and Documentation
    • Matt continued his work on integrating the OCE end-to-end test framework.
    • Jesse made more improvements to Syslog parsing.
    • Jesse and Ronny did more work on CircleCI build support.
    • I added support for Canadian Ethernet, which requires sending an additional frame encoded 0x534f525259 when errors occur in a single collision domain.
    • Jesse worked on a number of controller improvements in OIA.
    • Matt continued his work creating a “direct” OCE datasource, facilitating running it in the OpenNMS JVM.
    • Markus did more work on his branch to upgrade our internal CXF to version 3.2.
    • David did some wrapup work on the configurable meta-model support in OCE.
    • David worked on root cause situation feedback support in OCE and Helm.
    • Chandra added support for opentracing to Kafka RPC.
    • Jesse did more work on improving the deep learning correlation engion.
  • Web & UI
    • Markus did more work on improvements to the new Bootstrap 4 UI.
    • Markus continued work on implementing a ReST service for the new graph API.
    • I updated the OpenNMS.js and Helm codebases to fix all audit warnings from yarn audit.
    • I continued to work on Helm improvements including Grafana 6 fixes and more work on the dynamic filter panel.

Upcoming Events and Appearances

Until Next Week…

If there’s anything you’d like me to talk about in a future TWiO, or you just have a comment or criticism you’d like to share, don’t hesitate to say hi.

– Ben

Resolved Issues Since Last TWiO

  • HELM-132: Issues when running on Grafana 6
  • HELM-134: Relative date format ‘en-short’ not correctly defined
  • HELM-138: Fix security issues in Helm dependencies
  • HZN-1478: Upgrade CXF to 3.2.x or greater
  • HZN-1485: Minion – RPM Upgrade does not clear out .m2 local directory
  • HZN-1489: Use node category membership in Drools rules for alarms
  • HZN-1498: User defined links
  • HZN-1503: Related alarms are not deleted from situations
  • JS-28: PropertiesCache Does Not Survive Minification
  • JS-30: Refactor FilterCloner from Helm to OpenNMS.js
  • JS-31: Fix security issues in OpenNMS.js dependencies
  • NMS-8444: “Event text contains” should search beyond eventlogmsg
  • NMS-9376: Set Label For Surveillance Category
  • NMS-10435: Minion Status showing wrong in Manage Minions and service minion status out put is empty
  • NMS-10569: Tables do not space columns out correctly (col-* is no longer supported)
  • NMS-10581: Stop gracefully when running in container environment
  • NMS-10628: Slack/Mattermost integration needs an additional option
  • NMS-69420: Canadian Ethernet support
  • OCE-32: Audit CPN Tickets and OpenNMS Situations
  • OCE-41: Configurable “meta” model
  • OCE-46: End-to-end test framework
  • OCE-57: NPE in DirectInventoryDatasource

by RangerRick at April 01, 2019 12:00 AM

March 27, 2019

OpenNMS.js v1.3.1

This is a minor release with a fix for the properties cache and a cleanup of dependencies.

Bug Fixes

  • build: JS-28 - don't mangle function names (07100ca)
  • build: JS-31 - fix all outstanding audit warnings (ace9779)
  • cli: fix alarm cli when no alarms are returned (75c6a9a)

Features

  • api: JS-30 - reconstitute Filter/Clause/Restrictions from JSON (891bbd1)

by RangerRick at March 27, 2019 05:54 PM

March 25, 2019

This Week in OpenNMS – March 25th, 2019 – OCE, Java 9+, UI Improvements, Helm, and more!

It’s time for This Week in OpenNMS!

In the last week we continued work on OCE improvements, Java 9+ changes, UI cleanups, Helm and OpenNMS.js updates, and much more!

Github Project Updates

  • Internals, APIs, and Documentation
    • Patrick continued his refactor of the topology provider to use the new graph service.
    • David continued his work on a configurable meta model for OCE.
    • Dustin kept working on supporting arbitrary metadata on nodes.
    • Markus did more work on the CXF upgrade to 3.2 to facilitate running on newer JDKs.
    • Ronny worked on performing OpenNMS builds in CircleCI.
    • Jesse did more work on fixing an SNMP loop caused by bad agents.
    • Chandra worked on improving our error/exit code handling for graceful JVM shutdown.
    • Jesse updated Alarmd to allow for using node category when handling alarms in Drools.
    • Jesse worked on fixing an issue where related alarms were not properly removed from situations.
    • Matt did more work on the “direct” OCE datasource, which allows running OCE in the OpenNMS JVM.
  • Web & UI
    • Christian worked on updating the node detail page to make the number of services displayed configurable.
    • Markus worked on some new UI changes to the web navbar.
    • Christian updated event and alarm search to include logMessage and description.
    • Jesse did some changes to support user-specified (manual) links in the topology UI.
    • I worked on a number of Helm enhancements, including creating an inventory datasource, as well as making a custom filter panel that can do dynamic filtering on the alarm table.
    • Markus worked on cleaning up some table layout issues in the new Bootstrap 4 UI.
    • I added support for isAcknowledged to OpenNMS.js and fixed some bugs in property caching in ReST DAOs.

OpenNMS Horizon and Meridian March Releases

Last week we put out updated OpenNMS Horizon and Meridian releases. These were, for the most part, small bug fix releases as we prep for Horizon 24 (which Meridian 2019 will be based on).

If you are running Meridian 2018 or Horizon 23, it is strongly recommended you upgrade. An SNMP agent loop bug was fixed in both of those releases, as well as an Alarmd deadlock that affects all Horizon 23 versions.

For a complete list of changes, see the release announcements:

Upcoming Events and Appearances

Until Next Week…

If there’s anything you’d like me to talk about in a future TWiO, or you just have a comment or criticism you’d like to share, don’t hesitate to say hi.

– Ben

Resolved Issues Since Last TWiO

  • HZN-1455: Update startup script to bootstrap with Java 9+
  • HZN-1499: ON DELETE CASCADE missing in Metadata database changelog
  • NMS-10570: Alarm details page has problem with footer
  • NMS-10571: The categories card on the node details page has no spacing above the bottom border
  • NMS-10572: Appears to be extra whitespace above bottom border on cards in the Admin page
  • NMS-10575: KSC Create Custom Graph Prefabricated Report selection is too small and wraps
  • NMS-10602: Incorrect date formatting in send-event.py
  • NMS-10609: The MIB Compiler is unable to parse certain MIBs
  • NMS-10612: Button arrangement on alarm detail page is broken
  • NMS-10613: Sticky and Journal Memo icons look out of place
  • NMS-10614: Alarm Details page is not rendering related alarms and parent situations correctly
  • NMS-10615: Notification switcher is broken
  • NMS-10621: Bad response from SNMP agent leads to infinite loop in SNMP tracker
  • NMS-10623: KSC resource selection is not shown/visualized
  • OCE-44: OCE Documentation

by RangerRick at March 25, 2019 12:00 AM

March 21, 2019

OpenNMS Meridian 2018.1.6 Released

Release 2018.1.6 is an update to Meridian 2018.1.5. It contains a number of changes including a ReST issue with truncated numbers, 3rd-party JDBC support in the Minion, a performance fix for the Measurements API, and a fix for bad (looping) SNMP agents.

The codename for 2018.1.6 is Strong breeze.

Bug
  • Collection results via Minion is limited to MAX_INT (Issue NMS-10516)
  • JDBC via Minion fails to find 3rd party classes (Issue NMS-10559)
  • Poor performance when using filters in the Measurements API (Issue NMS-10589)
  • Update webapp copyright dates to 2019 (Issue NMS-10591)
  • Bad response from SNMP agent leads to infinite loop in SNMP tracker (Issue NMS-10621)
Enhancement

by RangerRick at March 21, 2019 08:19 PM

OpenNMS Meridian 2017.1.15 Released

Release 2017.1.15 is a small update to 2017.1.14 that fixes a performance issue in the measurements API.

The codename for 2017.1.15 is Warsaw meridian.

Bug
  • Poor performance when using filters in the Measurements API (Issue NMS-10589)
  • Update webapp copyright dates to 2019 (Issue NMS-10591)

by RangerRick at March 21, 2019 06:56 PM

OpenNMS Meridian 2016.1.19 Released

Release 2016.1.19 is a small update to 2016.1.18 that fixes a performance issue in the measurements API.

The codename for 2016.1.19 is Mollweide.

Bug
  • Poor performance when using filters in the Measurements API (Issue NMS-10589)
  • Update webapp copyright dates to 2019 (Issue NMS-10591)

by RangerRick at March 21, 2019 05:56 PM

March 18, 2019

This Week in OpenNMS – March 18th, 2019 – Karaf Upgrade, Correlation, Bug Fixing, and Much Much More!

It’s time for This Week in OpenNMS!

I’m sorry for missing last week’s TWiO, but I was busy in the Caribbean with a bunch of nerds. Meanwhile, everyone was apparently very busy and much more productive without me. Maybe I should get back on the boat.

In the last couple of weeks we did a ton of bug fixing, updated our embedded Karaf to 4.2, and did a ton of work on correlation. Plus a whole lot of other great stuff.

Github Project Updates

  • Internals, APIs, and Documentation
    • David worked on fixing up flapping syslog time tests.
    • Jesse did more work on fixing potential deadlocks in Alarmd.
    • Chandra did more work making sure 3rd-party JDBC drivers can be loaded on Minion.
    • Markus wrapped up his work to update our embedded Karaf to 4.2.
    • Patrick did more work making improvements to the events:stress command.
    • Antonio made enhancements to bridge topology generation when events are sent.
    • Matt updated OCE test infrastructure to use a vanilla Sentinel container and worked on integrating the old OCE end-to-end tests into OpenNMS’s build.
    • David did more work on the configurable meta-model for OCE.
    • Ronny worked on RPM CI and deployment for OCE.
    • Dustin did more work on handling flow packets that mix templates and data.
    • Antonio fixed an issue with ack escalation events.
    • Matt did more work integrating links from enlinkd into the OCE graph.
    • Matt fixed an issue with the Kafka datasource blocking OCE engine initialization.
    • Ronny started working on a documentation pipeline for OCE.
    • Jesse started work on an alternative OCE plugin that uses TensorFlow for clustering alarms.
    • Chandra fixed an issue with leftover artifacts in .m2 after upgrading the Minion.
    • Jesse made a number of changes to expose useful data including node model updates, exposing requisition providers, and event listeners in the API.
    • Jesse added support to snapshotting data in OCE.
    • Chandra fixed a bug in the Minion status poller config that could cause timeouts or incorrect status.
    • David Hustace improved the documentation for the OCE project.
    • Alejandro improved our Docker images so they can run on OpenShift infrastucture without requiring root permissions. These changes should available alongside the release of Horizon 24.
  • Web & UI
    • I got a working inventory datasource put together for Helm, and started on a filter panel using it.
    • Chandra fixed an issue in the ReST adapters that could cause values to be truncated to MAX_INT.
    • Markus did a few fixes and improvements in the new Bootstrap 4 UI.
    • Alejandro fixed an issue in the MIB parser UI.

Upcoming Events and Appearances

Until Next Week…

If there’s anything you’d like me to talk about in a future TWiO, or you just have a comment or criticism you’d like to share, don’t hesitate to say hi.

– Ben

Resolved Issues Since Last TWiO

  • HELM-131: Template Variables Don’t Support Nested Parenthesis
  • HZN-1474: Node Meta-Data / KVP Support
  • HZN-1475: Extend topology generator and test suite to support bridge topology
  • HZN-1481: Show managed object type and instance on alarm details page
  • HZN-1483: Update topology code to make the topology that is sent via Kafka more convenient for consumption
  • HZN-1484: Templates are dropped if intermixed with data in wrong order
  • HZN-1487: Maximum number of services in node details page should be configurable
  • NMS-10516: Collection results via Minion is limited to MAX_INT
  • NMS-10539: Upgrade to Karaf 4.2.3
  • NMS-10558: Upgrade to Jetty 9.4.12
  • NMS-10559: JDBC via Minion fails to find 3rd party classes
  • NMS-10589: Poor performance when using filters in the Measurements API
  • NMS-10593: Alarmd get stucks in dead-lock and stops processing events
  • NMS-10596: Flapping Syslog Parser Integration Test
  • NMS-10601: @PreserveOnRefresh not working for embedded Vaadin UIs
  • NMS-10603: Fix ack Event Supporting AckAction
  • NMS-10606: HwEntityAlias fails to be persisted
  • OCE-38: Add log rotation support to the kafka-event-mirrorer
  • OCE-40: Links from Enlinkd in the OCE graph
  • OCE-45: Prevent the opennms kafka datasource from blocking the initialization of the engine forever
  • OCE-47: Create documentation pipeline
  • OCE-49: Enable the “Edit this page” feature in the published docs
  • OCE-50: Add Math support in documentation
  • OCE-52: Deep learning engine
  • OCE-56: Kafka streams error when handling edges
  • OIA-3: Extend the SNMP datacollection configuration
  • OIA-6: Add support for provisiond requisition providers
  • OIA-7: Consume events by registering event listeners
  • OIA-9: Expose operinstruct element in EventDefinition interface

by RangerRick at March 18, 2019 12:00 AM

March 14, 2019

Meeting Owl

One of the cool things I get to do working at OpenNMS is to visit customer sites. It is always fun to visit our clients and to work with them to get the most out of the application.

But over the last year I’ve seen a decline in requests for on-site work. This is odd because general interest in OpenNMS is way up, and it finally dawned on me why – fewer and fewer people work in an office.

For example, we work with a large bank in Chicago. However, their monitoring guy moved to Seattle. Rather than lose a great employee, they let him work from home. When I went out for a few days of consulting, we ended up finding a co-working space in which to meet.

Even within our own organization we are distributed. There is the main office in Apex, NC, our Canadian branch in Ottawa, Ontario, our IT guy in Connecticut and our team in Europe (spread out across Germany, Italy and the UK). We tend to communicate via some form of video chat, but that can be a pain if a lot of people are in one room on one end of the conference.

When I was visiting our partner in Australia, R-Group, I got to use this really cool setup they have using Polycom equipment. Video consisted of two cameras. One didn’t move and was focused on the whole room, but the other would move and zoom in on whoever was talking. The view would switch depending on the situation. It really improved the video conferencing experience.

I checked into it when I got back to the United States, and unfortunately it looked real expensive, way more than I could afford to pay. However, in my research I came across something called a Meeting Owl. We bought one for the Apex office and it worked out so well we got another one for Ottawa.

The Meeting Owl consists of a cylindrical speaker topped with a 360° camera. It attaches to any device that can accept a USB camera input. The picture displays a band across the top that shows the whole panorama, but then software “zooms” in on the person talking. The bottom of the screen will split to show up to three people (the last three people who have spoken).

It’s a great solution at a good price, but it had one problem. In the usual setup, the Owl is placed in the center of the conference table, and usually there is a monitor on one side. When the people at the table are listening to someone remote (either via their camera or another Owl), the people seated along the sides end up looking at the large monitor. This means the Owl is pretty much showing everyone’s ear.

It bothers me.

Now, the perfect solution would be to augment the Owl to project a picture as a hologram above the unit so that people could both see the remote person as well as look at the Owl’s camera at the same time.

Barring that, I decided to come up with another solution.

Looking on Amazon I found an inexpensive HDMI signal splitter. This unit will take one HDMI input and split it into four duplicate outputs. I then bought three small 1080p monitors (I wanted the resolution to match the 1080p main screen we already had) which I could then place around the Owl. I set the Owl on the splitter to give it a little height.

Meeting Owl with Three Monitors

Now when someone remote, such as Antonio, is talking, we can look at the small monitors on the table instead of the big one on the side wall. I found that three does a pretty good job of giving everyone a decent view, and if someone is presenting their screen everyone can look at the big monitor in order to make out detail.

Meeting Owl in Call

We tried it this morning and it worked out great. Just thought I’d share in case anyone else is looking for a similar solution.

by Tarus at March 14, 2019 06:54 PM

March 04, 2019

This Week in OpenNMS – March 4th, 2019 – OIA, Netflow, Topology, Java 9+, Helm, and More!

It’s time for This Week in OpenNMS!

Last week we worked on more OpenNMS Integration API implementations, Netflow fixes, topology data updates, the Karaf 4.2 upgrade for Java 9+ support, performance fixes, and Helm updates.

Github Project Updates

  • Internals, APIs, and Documentation
    • Chandra updated the documentation to describe how to add 3rd-party JDBC drivers to the Minion.
    • Matt did more work on getting topology data from Enlinkd into OCE.
    • Patrick updated the events:stress Karaf command to handle node ID and interface options properly when using JEXL.
    • Dustin worked on supporting Netflow 9 and IPFIX flows that intermix templates and data in a single packet.
    • Markus continued his work on updating our embedded Karaf to 4.2.
    • Dustin and David did more work on the feature to add arbitrary metadata to nodes.
    • Chandra continued his work integrating SNMP datacollection configuration into the OIA.
    • David worked on updating OCE to use the JSR-233 inventory model internally.
    • Antonio added some examples to the topology test generator.
    • Jesse worked on fixing a deadlock in Alarmd while waiting for transactions to commit.
  • Web & UI
    • Jesse worked on an update to the measurements API to improve performance when using filters.
    • I fixed a bug in the new Helm templating that broke when using nested parentheses in variables.
    • Chandra updated the web UI to show managed object type and instance on the alarm details page.

Updates to the Discourse Forum

Ronny has updated the knowledge base section of the Discourse forum to be in “wiki” mode, so anyone can update and improve knowledge base posts over time.

Additionally, there is now support for marking a topic as “solved” so if you have asked a question and someone gave a good answer, you can make it easier for others to find the solution.

Thanks to everyone who has been using it, we’ve gotten a ton of great conversations and additions to the knowledge base already.

Upcoming Events and Appearances

Until Next Week…

If there’s anything you’d like me to talk about in a future TWiO, or you just have a comment or criticism you’d like to share, don’t hesitate to say hi.

– Ben

Resolved Issues Since Last TWiO

  • HZN-1479: Enable instant refresh in topology generator based on the recent changes in the topology code
  • HZN-1480: Telemetry UdpListener – False Positive Log Message Condition
  • HZN-1482: Update the topology generator so that topology is sent to the TopologyDAO
  • NMS-10591: Update webapp copyright dates to 2019

by RangerRick at March 04, 2019 12:00 AM

February 25, 2019

This Week in OpenNMS – February 25th, 2019 – Correlation, Data Collection, and Topology

It’s time for This Week in OpenNMS!

Last week we worked on Java 9+ fixes, correlation, data collection in OIA, and topology.

Github Project Updates

  • Internals, APIs, and Documentation
    • I wrapped up my fixes to the new refactored opennmsrunjava and find-java scripts.
    • Jesse continued to work on updating the correlation engine to use Drools internally.
    • Chandra continued to work on data collection support in the integration API.
    • Dustin did more work on arbitrary node metadata support.
    • Chandra worked on JDBC driver loading on Minions.
    • Matt did more work on building with Java 9+.
    • David worked on making the inventory model used by the correlation engine configurable.
    • Matt continued to work on adapting topology code to the new refactored Enlinkd and adding tests.
    • Markus continued to work on moving our embedded Karaf to 4.2.
  • Web & UI
    • I worked on wrapping up release stuff for Helm 3.0.

Horizon and Meridian Releases

We released OpenNMS Horizon 23.0.3 and Meridians 2016.1.18, 2017.1.14, and 2018.1.5.

The majority of the changes were bug fixes, along with a number of performance improvements in Horizon and in Meridian 2018.

For a complete list of changes, see the relevant release announcements:

Upcoming Events and Appearances

Until Next Week…

If there’s anything you’d like me to talk about in a future TWiO, or you just have a comment or criticism you’d like to share, don’t hesitate to say hi.

– Ben

Resolved Issues Since Last TWiO

  • HZN-1468: Remove features-maven-plugin from the build
  • HZN-1482: Update the topology generator so that topology is sent to the TopologyDAO
  • NMS-10549: Typo in Northbound registerNorthnounders method
  • NMS-10566: Update default Syslog parser to use the RadixTreeSyslogParser
  • NMS-10567: Browser crashes when browser notifications are enabled and OpenNMS gets unreachable
  • NMS-10579: Start with the start script throws bad substitution error
  • OIA-5: Add support for Ticketing Plugin in Integration API

by RangerRick at February 25, 2019 12:00 AM

February 22, 2019

OpenNMS Meridian 2018.1.5 Released

Release 2018.1.5 is an update to Meridian 2018.1.4. It contains a number of bug fixes including fixes for sending notifications for events without associated nodes, XSS issues, and more. It also includes a number of performance improvements and and update to the latest Jetty web server framework.

The codename for 2018.1.5 is Fresh breeze.

Bug
  • JDBC collector event reason provides no useful information (Issue NMS-9633)
  • syslog events are creating notifications and disregarding rules in place (Issue NMS-10486)
  • Node page very slow to load for nodes with more than 1000 events (Issue NMS-10506)
  • SNMP configuration UI should select location “Default” by default, not the first location alphabetically (Issue NMS-10514)
  • Wallboard URLs with board name should be permalinks, but return “Nothing to display” instead (Issue NMS-10515)
  • Event parameters table have strong limits for the columns (Issue NMS-10525)
  • Cross-Site Scripting: Reflected (Issue NMS-10546)
  • Cross-Frame Scripting (Issue NMS-10547)
  • syslog parsing of messages without a year will sometimes infer the wrong year (Issue NMS-10548)
Enhancement

by RangerRick at February 22, 2019 01:32 AM

OpenNMS Meridian 2017.1.14 Released

Release 2017.1.14 is a minor update to OpenNMS Meridian 2017.1.13. It contains a few small bug fixes and documentation enhancements, including a fix for alarm criteria browsing, pinger initialization, and sending notifications for events without associated nodes.

The codename for 2017.1.14 is Tabulae Varadienses.

Bug
  • BestMatchPingerFactory returns NullPinger when better options are available (Issue NMS-9659)
  • Alarm Dashlet CriteriaBuilder In-Restriction not working (Issue NMS-10479)
  • syslog events are creating notifications and disregarding rules in place (Issue NMS-10486)

by RangerRick at February 22, 2019 01:31 AM

OpenNMS Meridian 2016.1.18 Released

Release 2016.1.18 is a small update to 2016.1.17 that provides a few documentation updates, a query bug fix, and a fix for an issue with notifications being sent when there is no associated node.

The codename for 2016.1.18 is Strebe 1995.

Bug
  • Typo in BSFMonitor Documentation (Issue NMS-10428)
  • Alarm Dashlet CriteriaBuilder In-Restriction not working (Issue NMS-10479)
  • syslog events are creating notifications and disregarding rules in place (Issue NMS-10486)

by RangerRick at February 22, 2019 01:30 AM

January 18, 2019

OpenNMS Meridian 2018.1.4 Released

Release 2018.1.4 is an update to Meridian 2018.1.3.
It contains a number of bug fixes and a few enhancements, including a bunch of performance fixes to topology maps and a number of other smaller changes.

The codename for 2018.1.4 is Moderate breeze.

Bug
  • BestMatchPingerFactory returns NullPinger when better options are available (Issue NMS-9659)
  • When selecting a vertex which is neither visible nor in focus the ui state is stuck (Issue NMS-10451)
  • Building the menu takes forever if a visible node has an invalid ip address set (Issue NMS-10452)
  • “Use Default Focus” may not show the “add nodes manual” indicator if “getDefaults().getCriteria()” returns empty list rather than null (Issue NMS-10453)
  • Kafka Producer: Sync timing issues cause erroneous deletes (Issue NMS-10474)
  • When using the events:stress command, the node-id or interface passed as parameters are ignored when using jexl (Issue NMS-10475)
  • Alarm Dashlet CriteriaBuilder In-Restriction not working (Issue NMS-10479)
Enhancement
  • Performance problems with the Topology Map on large networks (Issue NMS-10369)
  • Find out why intial loading of the topology map takes so long, fix for CDP (Issue NMS-10398)
  • Apply initial loading improvements to IsIs, lldp, ospf protocols (Issue NMS-10439)
  • Allow PostgreSQL 11.x (Issue NMS-10450)
  • Support Additional EIF Protocol Version (Issue NMS-10454)
  • Meassure and improve performance of Interface loading and mapping (Issue NMS-10459)
  • Meassure and improve performance of Cdp/Lldp/IsIsElement loading (Issue NMS-10487)

by RangerRick at January 18, 2019 02:23 PM

December 17, 2018

Review: Serval WS Laptop by System76

TL;DR; When I found myself in the market for a beefy laptop, I immediately ordered the Serval WS from System76. I had always had a great experience dealing with them, but times have changed. It has been sent back.

I can’t remember the first time I heard about the Serval laptop by System76. In a world where laptops were getting smaller and thinner, they were producing a monster of a rig. Weighing ten pounds without the power brick, the goal was to squeeze a high performance desktop into a (somewhat) portable form factor.

I never thought I’d need one, as I tend to use desktops most of the time (including a Wild Dog Pro at the office) and I want a light laptop for travel as it pretty much just serves as a terminal and I keep minimal information on it.

Recently we’ve been experimenting with office layouts, and our latest configuration has me trading my office for a desk with the rest of the team, and I needed something that could be moved in case I need to get on a call, record a video or get some extra privacy.

Heh, I thought, perhaps I could use the Serval after all.

I like voting for open source with my wallet. My last two laptops have been Dell “Sputnik” systems (2nd gen and 5th gen) since I wanted to support Dell shipping Linux systems, and when we decided back in 2015 that the iMacs we used for training needed to be replaced, I ordered six Sable Touch “all in one” systems from System 76. The ordering process was smooth as silk and the devices were awesome. We still get compliments from our students.

A year later when my HP desktop died, I bought the aforementioned Wild Dog Pro. Again, customer service to match if not rival the best in the business, and I was extremely happy with my new computer.

Jump forward to the present. Since I was in the market for a “luggable” system, performance was more important than size or weight, so I ordered a loaded Serval WS, complete with the latest Intel i9 processor, 64GB of speedy RAM, NVidia 1080 graphics card, and oodles of disk space. Bwah ha ha.

When it showed up, even I was surprised at how big it was.

Serval WS and Brick

Here you can see it in comparison to a old Apple keyboard. Solidly built, I was eager to plug it in and turn it on.

Serval WS

The screen was really bright, even though so was my office at the time. You can see from the picture that it was big enough to contain a full-sized keyboard and a numeric keypad. This didn’t really matter much to me as I was planning on using it with an awesome external monitor and keyboard, but it was a nice touch. I still like having a second screen since we rely heavily on Mattermost and I always like to keep a window in view and I figured I could use the laptop screen for that.

I had ordered the system with Ubuntu installed. My current favorite operating system is Linux Mint but I decided to play with Ubuntu for a little bit. This was my first experience with Ubuntu post Unity and I must say, I really liked it. Kind of made me eager to try out Pop!_OS which is the System76 distro based on Ubuntu.

When installing Mint I discovered that I made a small mistake when placing my Serval order. I meant to use a 2TB drive as the primary leaving a 1TB drive for use by TimeShift for backup. I reversed them. No real issue, as I was able to install Mint on the 2TB drive just fine after some creative partition manipulation.

Everything was cool until late afternoon when the sun went away. I was rebooting the system and found myself looking at a blank screen (for some reason the screen stays blank for a minute or so after powering on the laptop, I assume due to it having 64GB of RAM). There was a tremendous amount of “bleed” around the edges of the LCD.

Serval WS LCD Bleed

Damn.

Although it probably wouldn’t have impacted me much in day to day use, especially with an external monitor, I would know about it, and as I’m somewhere on the OCD spectrum it would bother me. Plus I paid a lot of money for this system and want it to be as close to perfect as possible.

For those of you who don’t know, the liquid crystals in LCD displays emit no light of their own and they get their illumination usually from a fluorescent source. If there are issues with the way the LCD panel is constructed, this light can “bleed” around the edges and degrade the display quality (it is also why it is hard to get really black images on LCD displays and this is fueling a lot of the excitement around OLED technology).

I’ve had issues with this before on laptops but nothing this bad. Not to worry, I have System76 to rely on, along with their superlative customer service.

I called the number and soon I was speaking with a support technician. When I described the problem they opened a ticket and asked me to send in a picture. I did and then waited for a response.

And waited.

And waited.

I commented on the ticket.

And I continued to wait.

The next day I waited a bit (Denver is two hours behind where I live) but when I got no response I decided, well, I’ll just return the thing. I called to get an RMA number but this time I wasn’t connected with a person and was asked to leave a message. I did, and I should note that I never got that return call.

At this point I’m frustrated, so I decided an angry tweet was in order. That got a response to my ticket, where they offered to send me a new unit.

Yay, here was a spark of the customer service I was used to getting. I’ve noticed a number of tech companies are willing to deal with defective equipment by sending out a new unit before the old unit is returned. In this day and age of instant gratification it is pretty awesome.

I wrote back that I was willing to try another unit, but would it be possible to put Pop!_OS on the new unit on the 2TB drive so that I could try it out of the box and know that all of the System76 specific packages were installed.

A little while later I got a reply that it wouldn’t be possible to install it on the 2TB drive, so I would end up having to reinstall in any case.

(sigh)

When I complained on Twitter I was told “Sorry to hear this, you’ll receive a phone call before EOD to discuss your case.” I worked until 8pm that night with no phone call, so I just decided to return the thing.

Of course, this would be at my expense and the RMA instructions were strict about requiring shipping insurance: “System76 cannot refund your purchase if the machine arrives damaged. For this reason, it is urgent that you insure your package”. The total cost was well over $100.

So I’m out a chunk of change and I’ve lost faith in a vendor of which I was extremely fond. This is a shame since they are doing some cool things such as building computers in the United States, but since they’ve lost sight of what made them great in the first place I have doubts about their continued success.

In any case, I ordered a Dell Precision 5530, which is one of the models available with Ubuntu. Much smaller and not as powerful as the Serval WS, it is also not as expensive. I’ll post as review in a couple of weeks when I get it.

by Tarus at December 17, 2018 03:36 PM

December 15, 2018

#OSMC 2018 – Day 3: Hackathon

For several years now the OSMC has been extended by one day in the form of a “hackathon”. As I do not consider myself a developer I usually skip this day, but since I wanted to spend more time with Ronny Trommer and to explore the OpenNMS MQTT plugin, I decided to attend this year.

I’m glad I did, especially because the table where we sat was also home to Dave Kempe, and he brought Tim Tams from Australia:

OSMC 2018 Tim Tams

Yum.

You can find them in the US on occasion, but they aren’t as good.

I have been hearing about MQTT for several years now. According to Wikipedia, MQTT (Message Queuing Telemetry Transport) is a messaging protocol designed for connections with remote locations where a “small code footprint” is required or the network bandwidth is limited, thus making it useful for IoT devices.

Dr. Craig Gallen has been working on a plugin to allow OpenNMS to consume MQTT messages, and I was eager to try it out. First, we needed a MQTT broker.

I found that the OpenHAB project supports an MQTT broker called Mosquitto, so we decided to go with that. This immediately created a discussion about the differences between OpenHAB and Home Assistant, the latter being a favorite of Dave. They looked comparable, but we decided to stick with OpenHAB because a) I already had an instance installed on a Raspberry Pi, and b) it is written in Java, which is probably why others prefer Home Assistant.

Ronny worked on getting the MQTT plugin installed while I created a dummy sensor in OpenHAB called “Gas”.

OSMC 2018 Hackathon

This involved creating a “sitemap” in /etc/openhab2:

sitemap opennms label="My home automation" {
    Frame label="Date" {
        Text item=Date
    }
    Frame label="Gas" {
        Text item=mqtt_kitchen_gas icon="gas"
    }
}

and then an item that we could manipulate with MQTT:

Number mqtt_kitchen_gas "Gas Level [%.1f]" {mqtt="<[mosquitto:Home/Floor1/Kitchen/Gas_Sensor:state:default]"}

To install the MQTT plugin:

Ronny added the following to the configuration to connect to our Mosquitto broker on OpenHAB:

<mqttclients>
  <client clientinstanceid="client1">
    <brokerurl>tcp://172.20.11.8:1883</brokerurl>
    <clientid>opennms</clientid>
   <connectionretryinterval>3000</connectionretryinterval>
    <clientconnectionmaxwait>20000</clientconnectionmaxwait>
    <topiclist>
      <topic qos="0" topic="iot/#">
    </topic>
    <username>openhabian</username>
    <password>openhabian</password>
    </client>
</mqttClients>

Now that we had a connection between our OpenHAB Mosquitto broker and OpenNMS, we could try to send information. The MQTT plugin handles both event information and data collection. To test both we used the mosquitto_pub command on the CLI.

For an event one can use something like this:

#/bin/bash
mosquitto_pub -u openhabian --pw openhabian -t "iot/timtam" -m "{ \"name\": \"6114163\",  \"sensordatavalues\": [ { \"value_type\": \"Gas\", \"value\": \"$RANDOM\"  } ] }"

On the OpenNMS side you need to configure the MQTT plugin to look for it:

<messageEventParsers>
  <messageEventParser foreignSource="$topicLevels[5]" payloadType="JSON" compression="UNCOMPRESSED">
    <subscriptionTopics>
      <topic>iot/timtam/event/kitchen/mysensor/doorlock</topic>
    </subscriptionTopics>

    <xml-groups xmlns="http://xmlns.opennms.org/xsd/config/xml-datacollection">
      <xml-group name="timtam-mqtt-lab" resource-type="sensors" resource-xpath="/" key-xpath="@name">
        <xml-object name="instanceResourceID" type="string" xpath="@name"/>
        <xml-object name="gas" type="gauge" xpath="sensordatavalues[@value_type="Gas"]/value"/>
      </xml-group>
    </xml-groups>
    <ueiRoot>uei.opennms.org/plugin/MqttReceiver/timtam/kitchen
  </messageEventParser>
</messageEventParsers>

Note how Ronny worked our Tim Tam obsession into the configuration.

To make this useful, you would want to configure an event definition for the event with the Unique Event Identifier (UEI) of uei.opennms.org/plugin/MqttReceiver/timtam/kitchen:

<events xmlns="http://xmlns.opennms.org/xsd/eventconf">
  <event>
    <uei>uei.opennms.org/plugin/MqttReceiver/timtam/kitchen</uei>
    <event-label>MQTT: Timtam kitchen lab event</event-label>
    <descr>This is our Timtam kitchen lab event</descr>
    <logmsg dest="logndisplay">
      All the parameters: %parm[all]%
    </logmsg>
    <severity>Normal</severity>
    <alarm-data reduction-key="%uei%:%dpname%:%nodeid%:%interface%:%service%" alarm-type="1" auto-clean="false"/>
  </event>
</events>

Once we had that working, the next step was to use the MQTT plugin to collect performance data from the messages. We used this script:

#!/bin/bash
while [ true ]
do
mosquitto_pub -u openhabian --pw openhabian -t "Home/Floor1/Kitchen/Gas_Sensor" -m "{ \"name\": \"6114163\",  \"sensordatavalues\": [ { \"value_type\": \"Gas\", \"value\": \"$RANDOM\"  } ] }"
sleep 10
done

This will create a message including a random number every ten seconds.

To have OpenNMS look for it, the MQTT configuration is:

<messageDataParsers>
  <messageDataParser foreignSource="$topicLevels[5]" payloadType="JSON" compression="UNCOMPRESSED">
    <subscriptionTopics>
      <topic>iot/timtam/metric/kitchen/mysensor/gas</topic>
    </subscriptionTopics>
    <xml-groups xmlns="http://xmlns.opennms.org/xsd/config/xml-datacollection">
      <xml-group name="timtam-kitchen-sensor" resource-type="sensors" resource-xpath="/" key-xpath="@name">
        <xml-object name="instanceResourceID" type="string" xpath="@name" />
        <xml-object name="gas" type="gauge" xpath="sensordatavalues[@value_type="Gas"]/value"/>
      </xml-group>
    </xml-groups>
    <xmlRrd step="10">
      <rra>RRA:AVERAGE:0.5:1:20160</rra>
      <rra>RRA:AVERAGE:0.5:12:14880</rra>
      <rra>RRA:AVERAGE:0.5:288:3660</rra>
      <rra>RRA:MAX:0.5:288:3660</rra>
      <rra>RRA:MIN:0.5:288:3660</rra>
    </xmlRrd>
  </messageDataParser>
</messageDataParsers>

This will store the values in an RRD file which can then be graphed within OpenNMS or through Grafana with the Helm plugin.

It was pretty straightforward to get the OpenNMS MQTT plugin working. While I’ve focused mainly on what was accomplished, it was a lot of fun chatting with others at our table and in the room. As usual, Netways did a great job with organization and I think everyone had fun.

Plus, I got to be reminded of all the amazing stuff being done by the OpenNMS team, and how the view is great up here while standing on the shoulders of giants like Ronny and Craig.

by Tarus at December 15, 2018 05:21 PM

December 13, 2018

Come Discourse With OpenNMS!

Ulf and Discourse The OpenNMS project was registered on 30th March 2000 on SourceForge and in these early days everyone talked about CVS or Subversion. Benjamin Reed migrated the project very early to git and this was a big change for our community, but it paid off so well. It made it also pretty easy to move our project from SourceForge to GitHub.

At the time we had a IRC channel hosted on freenode. We tried Slack but we love Open Source and ultimately went with Mattermost. By using an IRC bridge we hav...

December 13, 2018 09:42 AM

December 07, 2018

OpenNMS.js v1.3.0

This release contains a number of new features and a few bug fixes, including support for correlation alarms and feedback, and additional metadata for Helm 3.

Bug Fixes

  • api: support flow data (bd8c5b9)
  • feedback: Serialize the enum as a string (3c2f997)

Features

  • alarms: HELM-110: store managedObject* if present (2b86722)
  • alarms: HELM-114: alarm property for whether it is a situation (a54b627)
  • api: add flow and situation metadata APIs (42d7a58)
  • api: Add more test assertions for AlarmSummaryDTO (0f45e79)
  • api: Add test for AlarmSummary and reductionKey (3329cf7)
  • api: HZN-1357 expose FeedbackDAO (d354040)
  • api: HZN-1357 Pass data and set accept header (0bf0bdd)
  • api: HZN-1357 tests for uri.js (e98cfa4)
  • api: HZN-1357 use AlarmId for Situation (3d9f172)
  • api: Initial work (fa62503)
  • api: Move from 'impacts/causes' to 'relatedAlarms' (3bc5b6e)
  • api: OCE-REST extend Alarm and summary (e855134)
  • api: OCE-REST extend Alarm and summary (24ca0f7)
  • api: OCE-REST remove inSituation attr (d3bb9e9)
  • api: OCE-REST updte tests (abd86d1)
  • cli: improve table rendering (da92bdb)
  • feedback: Expose the feedback type enum values (500632a)

by RangerRick at December 07, 2018 04:37 PM