Posted by: Eric Hansen
You can ask basically anyone who manages multiple Linux (and even Windows) servers what they use to monitor their systems and its a high possibility that they’ll say “Nagios” or a variant of it (i.e.: OpsView, Icinga, Centreon, etc…). There’s no doubt it has a strong hold in the market and there are plenty of positives to it, but is it for everyone?
Nagios requires the core itself installed on the main/master server as well as a daemon installed on every server to be monitored. The core then parses config files and performs checks to make sure stats are correct. While this isn’t painstaking the process of installing both can be troublesome, especially if you’re doing it by hand (not using an auto-installer script).
Editing the configuration of Nagios (core or daemon) is a bit of a challenge. While there is documentation, it would seem like trying to solve a rubic cube would be simpler until you really understand whats going on. I can see it being very beneficial when Nagios was first starting out but now with it branching out so much into such a more sophisticated piece of software the configuration is convoluted.
Luckily Nagios is pretty much a set it and forget solution (unless you want to add more plugins to it).
This is my biggest gripe with Nagios personally: there’s virtually no customization. The program itself is a compiled Perl/CGI script. About the only thing you can customize are the plugins for monitoring. While I can see some points for making it closed-source, given some of the obscure warnings it can spit out I think opening it up even a little bit would be far more beneficial.
This is a short list, but Nagios does what its supposed to do and doesn’t offer much fluff. The web UI is pretty horrid (looks like its from 1990) but it presents information you need. The alert system is nice but could be easier to work with, and while there are numerous frontend wrappers for it, they all still require Nagios itself.
The biggest compliment I can give it in the end is that it uses perf data to return information about a plugin, which is pretty universal as to how its formatted.