Can free software compete with an off-the-shelf product? The answer may surprise you.
OpenNMS is a free, open-source network monitoring platform. It claims to be enterprise-scalable, and flexible enough to meet nearly all of your network and application monitoring needs. But sometimes a stigma can surround open-source software. Some feel that the software is free, and so must not be as good as a commercial product. Does OpenNMS break free from the stereotype? Read on to find out.
OpenNMS software is primarily developed and maintained by a separate commercial venture called The OpenNMS Group. The OpenNMS Group provides support and consulting services to help customers with OpenNMS implementations. But, unlike some other companies, there is only one version of OpenNMS. The free version is not simply a reduced-feature version of a more capable product that can be purchased through the company.
Like most open-source software, OpenNMS was designed for your favourite flavour of Linux, but Windows and OSX are also supported. I work in a windows shop, so I was most interested in how well OpenNMS would work in a windows environment. According to the OpenNMS Wiki, “There are a lot of rough edges, but it is possible to install and run on Windows 2000 and up.”
This turned out to be an overstatement. Installation was pleasantly easy. However, there are multiple steps to install and configure all required software components: i.e. the Java SDK, PostGRE SQL(which OpenNMS uses for the database store), and finally OpenNMS itself. Compared to the simple one-step installation packages used by most commercial software, this seems a little clunky.
Once installed, OpenNMS doesn’t help you by making it easy to launch the software. You must drop into a command prompt, open the OpenNMS directory, and run a command to launch the software. Once OpenNMS is running you can access the web-admin console to administer the system. A minor gripe no doubt, but I found this to be an irritating extra step. I know the software was originally written for command-line bashers, but would it kill them to add a “Start OpenNMS” icon to the program list? In any event, it’s a minor obstacle easily overcome.
OpenNMS has virtually endless capability. The problem is learning how to harness its power to your advantage since the interface feels clumsy and not very intuitive. Out-of-the-box features are a great start though. The web admin console is basic but functional, and the home-page dashboard shows availability statistics for different classes of devices.
The Charts page has a useful inventory, outage, and alarms summary that could be great for building reports for your executive.
The Node List also allows you to drill down to any node to view detailed information. The display includes availability stats, as well as lists of outages and recent events.
Outages, alarms, and general events are all captured in the console. Alerts can trigger a notification, which can perform actions like sending an email or SMS text to your admins.
Another nice feature is the ability to configure “Path Outages.” If a critical device like a firewall fails, a large number of other devices could be unreachable. With path outages, you can configure OpenNMS to send a single alert on the path failure, rather than sending multiple alerts for every device that it cannot reach. Speaking as an admin who used to receive 50 SMS text alerts every time a firewall failed, this would have been a great feature to have.
OpenNMS also has built in reporting, and can generate graphs from the SNMP data polled from your network. It can also generate uptime and availability reports. My only complaint with reporting is that the date ranges used in the report aren’t very flexible – the smallest reporting period seems to be 24 hours.
With some customization OpenNMS can also perform application service monitoring, watching your web sites for page load times and alerting on performance issues. To sum it up, if there’s something you need monitored and reported, OpenNMS can do the job.
But despite many great features, OpenNMS has some weaknesses. And the primary problem is that it has a very steep learning curve. Many configuration tasks require the administrator to edit various XML files and scripts. No doubt this is well within the capability of most admins to learn, but it takes time to become comfortable understanding how the system works, and then learning how to change it!
OpenNMS also seems to struggle with SNMP at times, and users report problems importing MIBs from different vendors cleanly. Yes, there are usually fixes for these sorts of problems, and the support wiki is an excellent resource to help you configure random XML files to make the system work properly. But, it’s one more example of how the system needs significant tweaking to work the way you want. (Sidenote – Check out this wiki article for an example of both the excellent support network, but also the pain of trying to get a Juniper MIB into OpenNMS)
At least network discovery is fairly easy to configure – just enter your IP network ranges to scan and the system will find devices to manage. But SNMP strings must be configured by IP address from a different module in the console. Why no option to enter a global SNMP string at the time of discovery?
Pricing and Support
OpenNMS is Open Source, and the software license is of course free. However, if you want something a little more than just the basic software, the OpenNMS group can provide everything from turnkey installation consulting, to full customization with 24×7 support. Pricing for these add-ons can be found on their pricing page.
OpenNMS also has strong support from the user community through its mailing lists, and has a comprehensive wiki documentation page.
Can OpenNMS compete against commercial software? Yes it can! It’s a great package that can handle the monitoring requirements of both large and small enterprises. It is also tremendously adaptable. There’s no need to submit enhancement requests and wait for future versions to have some feature added – just write it yourself or hire a developer to do it for you.
But this highlights the point that there’s no such thing as free software. Though the license is free, this product has a steep learning curve and you will have other costs. Namely: staff training, added time for your people to learn and configure the software, and support fees – if you opt to hire the OpenNMS Group for support or development.
While time consuming to set up, once configured it works very well. If you’re prepared to invest the time into OpenNMS, the rewards can be great.
A live demo environment of OpenNMS can be accessed here.
Product: OpenNMS 1.6.10 ♦ Review Date: April 1, 2010
- Free licensing!
- Good support and documentation through wikis and mailing lists
- Full featured and infinitely flexible
- “Path outages” feature minimize excessive alerting
- Reasonable support costs through the OpenNMS Group
- Steep learning curve
- Interface not very intuitive
- Most customization requires learning and modifying various config files
- Money saved on licensing may have to be spent on development and maintenance