Our requirements are for simple performance graphing. For Opsview 2.1 and earlier, we have separately invoked routines to get perf data, which is independent from Nagios and the plugins. While it was quick to develop, it doesn't make sense moving into a distributed setup because the only channel of communication we want between the master and the slaves is through the NSCA pipe. So we need to hook into the Nagios Plugins output.
We're not interested (yet) in a mysql database backend. We only want a simple RRD store with a graphing frontend.
Seems like nagiostat, perfparse, nagiosgraph, NagiosGrapher are the main contenders.
Perfparse writes to mysql. Doesn't appear to have an RRD option, so I'm discounting this one.
NagioStat hasn't been updated since July 2004, so sounds like it is being dropped.
Nagiosgraph looks quite active.
NagiosGrapher says it is not stable, which is a turn off.
So it looks like Nagiosgraph first then. The latest version is 0.7, released Oct 2005.
Bit difficult to install. Recommends using /usr/local/nagios/nagiosgraph/ to store config file + cgis. We install under the usual nagios structure instead (show.cgi into sbin/, nagiosgraph.conf into etc/, etc) without any problems. You need to hack show.cgi and insert.pl to reference nagiosgraph.conf. Doesn't seem like there is a good way around this (environment variables, perhaps?).
Uses a map file, in perl format, to parse perf data out. I don't like this because is an extra layer of "data" to maintain, but I think it is a necessary evil - some plugins don't have performance data yet. I can see this being the biggest problem.
(I was so worried about this map file, I downloaded NagiosGrapher. They use a Nagios-like stanza config file to hold information about how to parse a plugin output, plus other RRD information. So they haven't overcome the issue - it's the same problem, but in a different format.)
It works by setting Nagios to invoke a command every 30 seconds (definable) to read all the perfdata from a log file. Not as much as a hit on CPU as invoking every result. Acceptable for us.
Only took 1 hour to setup. For the Nagios Plugins 1.4.2, the default map file works for check_ping, check_dns, check_http, check_ntp. Haven't fully tested through all the plugins yet.
I love that the default graph shows daily, weekly, monthly and yearly. We'll be looking into patching the graphing tool to select date ranges, using JSCalendar.
The link on the service page takes you off to a Host Extended Information page, before you can get to the graphs. We have patched status.c for Nagios 2.0 so that it will take you straight off to nagiosgraph instead (with some help from Jorgen Lundman).
A very basic, and quick, implementation. Still a bit concerned about the map file in the future, but it has been useful already.
Comments