I am looking to pitch a comprehensive monitoring system to my manager, and have been considering OpenNMS. However, I have seen glowing praise of Nagios on here and I was hoping someone with experience could help illustrate the key differences for me. Do their focuses differ, or are they just competitors?
If some background helps, we run 6 on-site servers (File server, PBX, proxy, application, etc.) and two off-site servers (Website / development) along with a couple of switches and a router. The monitoring service we install will be running on a separate converted desktop running freeBSD. All of our stuff runs either Linux or a BSD derivative.
We are looking to spend no money to implement this (sigh).
Thanks for any help.
EDIT It looks like openNMS offers a more comprehensive solution closer to what I want. However, because it is written in Java and the port is not in the official ports tree yet, it has been vetoed. Now begins my Nagios would be better than just MRTG campaign. Thanks for the fast responses.
-Chance
Wikipedia has a comparative table which helps a lot
I think the key differences are:
language: Nagios is written in C and OpenNMS in Java. It makes nagios a lot faster on older hardware.
Data collection: Nagios performs very little data collection. Other software (like cacti for example) will be required for a more extensive data collection system. OpenNMS includes it out of the box.
host and service discovery: Nagios has to be told what to monitor whereas OpenNMS has discovery features.
I would suggest you also consider Zenoss Core, the free version of Zenoss. I have installed it to monitor our network and servers, and have found it to be very capable and much more userfriendly than Nagios. It does what Nagios and cacti do, but integrated. Most functionality you'll need is likely there, but if not you can extend it with Zenoss packs and Nagios plugins.
You can literally have it installed and working in 30 mins, so it's easy to evaluate it. Seriously, we're very happy with it and it sounds perfect for your requirements.
OpenNMS targets at the enterprise-sized organization which needs a scalable network management solution. Nagios is better suited to monitor a limited amount of servers which you can afford to set up manually. If you compare it to the transportation network, Nagios is a truck and OpenNMS is a railroad system - both do "roughly" the same ("monitor things", "transport things") but are aimed at different markets.
There's a FreeBSD port (see https://www.geeklan.co.uk/?p=132) that works with the Diablo JVM.
Maybe you want to use both of them? Currently we're using Nagios for availability monitoring with alaraming, escalations etc.. and opennms for performance monitoring without alarming.
I would recommend you http://omdistro.org/. It is a precompiled and pre-configured version of Nagios with a lot of plugins to make management, configuration and visualization pretty easy, using mainly Check_MK extension. The main advantage is to have Nagios working in Passive Mode, meaning the checks will be performed locally (by each server) and only the status will be sent to Nagios. For mid-large installations it is a huge improvement. Worth to mention that it support multi-site deployment, so if you have remote sites, you
From my understanding, OpenNMS is a management tool that does monitoring (well!), whereas Nagios is a monitoring tool only.
Quoting the head of the OpenNMS Group, Tarus Balog, "OpenNMS has great monitoring capabilities, but we have designed it to be a network management application platform of which monitoring is just one part."*
From the Nagios site: "Capabilities to monitor applications, services, operating systems, network protocols, system metrics and infrastructure components with a single tool"*
Nagios' history started with monitoring and moved on, whereas OpenNMS started with management, and moved on.
No matter what tool you pick, you should also use an external monitoring service additionally. I think of services like AlertFox or Gomez.