The Nagios Toaster

a.k.a. Nagios-on-Steroids.

The goal here is to get a Nagios server monitor, with graphing capabilities and integrated configurator. We will use the following tools:

The main idea here is to use Nagios' frames to integrate the other tools. This can also be used with Nagios-style UIs (i.e. Icinga Classic UI, Thruk), other configuration tools (Nagios Administrator, RIP) or other graphing tools (collectd).

Web Server

Any Webserver will fit there, as long as it supports CGI (for Nagios) and PHP (for NConf). http authentification and https, although not mandatory, are strongly recommended.

In this document, we will assume that the webroot directory will be /www/monitor/.

Nagios

  1. Install Nagios
  2. Copy Nagios docroot into /www/monitor/nagios
  3. Download and extract the Nuvola Skin (let's face it, Nagios default interface is ugly as hell)
  4. copy /www/monitor/nagios/index.html to /www/monitor/index.html, and fix the links inside:
<script type="text/javascript" language="JavaScript1.2" src="nagios/config.js"></script>
document.write('<FRAME SCROLLING="no" SRC="/nagios/side.html" NAME="side" TARGET="main">');

Munin

  1. Install Munin
  2. Change in munin.conf:
htmldir /www/monitor/munin

NConf

  1. Get it from Sourceforge
  2. Extract it at the same level as the others tools (i.e. /www/monitor/nconf )

Binding all together

NConf integration

  • Add a link in the Nuvola menu. Edit /www/monitor/nagios/side/dtree_data.js, and add the following line at the end, just before the document.write(configuration); statemement:
configuration.add(5,0,'Administration','/nconf/','','','side/icons/configuration.gif');

Munin integration

As Munin already output its graphs in /home/monitor/munin, we just have to display it in the main nagios frame (as we did for NConf). Edit /www/monitor/nagios/side/dtree_data.js, and add the following line just before the document.write(reporting); statement:

reporting.add(9,0,'Munin Graphs','/munin/','','','side/icons/reporting.gif');