nboard - The Network Dashboard

This project aims to provide a high-level overview of your network, with the 
capability to drill-down to find problems or indicate that a problem has been 
reviewed and is being worked on. 

It builds upon Nagios, eluna, rrdtool and other tools that are a standard part
of nearly every sysadmin's toolkit. It doesn't attempt to collect or store
data, it merely displays data that you have already collected using other means.


Introduction
------------

The beautiful thing about Nagios is that it is adaptable to a lot of 
situations. This adaptability comes at a price, however, as organizations often
have little or no idea how to actually use nagios, and many admins have 
conflicting ideas about how to work with nagios. Do you acknowledge alerts
or just silence them for that service? How do I figure out what's actually
going on? What are comments good for anyway?

To solve these perceived problems we wrote our own interface. We feel this
interface gives us a better view over our network and allows us to actually
work with nagios, not simply use it for notification purposes.

To be successful with this, you must understand that it does not operate in
the same way as the standard nagios interface. Overlapping functionality
is abrstracted away, and a common set of functions are exposed to the user,
hiding the complexity of the underlying nagios software.


Available Actions
-----------------

The user has a limited amount of interaction with the system, in order to
limit the potential user confusion. The following actions are available:

Silence Alerts:

This will prompt the user for a message, which will be sent out to contacts
configured in nagios and displayed on the host overview page. Additionally
it will silence further alerts for that service. If you silence alerts
for a host, all services on that host are silenced as well.

Unsilence Alerts:

This will remove the status message an reenable alerts. If a host has alerts
unsilenced it will also unsilence all services for that host.

Send Message:

Send a message to all contacts associated with a host or service. 


Installation
------------

Installation consists of unarchiving or moving these files into your web
tree. Ensure that your web server is setup to handle .cgi files and that
all the .cgi files are executable. (FIXME: Make this easier for inexperienced
admins to understand)

Edit the conf/config.ini and customize the settings for your need. At this
time you have to explicitly define the machines you wish to display. In the
future the configuration will be read to determine this information.

You should enable authentication in some manner. Most sites will probably use
.htaccess/.htpasswd. You will not be able to silence alerts or send messages
unless you log in using an account that matches a contact. (Similar to the
official nagios interface.)


Configuration
-------------

Configuration is handled in the conf/ directory. If you are not using 
display_rrd.cgi you will only need to change config.ini.

Copy config.ini.sample to config.ini. See the nboard wiki for more information
on what configuration options do.

Wiki: <http://github.com/zwhite/nboard/wikis>


Reports
-------

The reports directory contains scripts that will report nagios status in a
format useful for emailing to one or more users. At this time there is only
a single report.

It is suggested that you setup a cronjob to email this report on a daily
basis. Something similar to the following should work:

	30 7 * * * /path/to/reports/nagiosreport.py \
	           | mail -s 'Daily Status Report' ops@example.net

Notification
------------

For sending messages to work from within nboard you will have to install
a couple custom notification commands. These commands can be found below. Be
sure that you modify the path to the command.

You should change all existing notify-by-email instances in your nagios config 
to nboard-notify-service, and all existing host-notify-by-email instances
to nboard-notify-host. The notify.py script will call the notify-by-email and
host-notify-by-email to send out notifications, so any customisations you
have made should be honored.

For more information on notifications, including enabling SMS delivery of
certain notifications, see the Notifications page on the nboard wiki:

	<http://github.com/zwhite/nboard/wikis/notifications>

Configuration to include:
	define command {
		command_name nboard-notify-host
		command_line /path/to/nboard/notifications/notify.py --type="$NOTIFICATIONTYPE$" --host="$HOSTNAME$" --state="$HOSTSTATE$" --address="$HOSTADDRESS$" --serviceoutput="$SERVICEOUTPUT$" --datetime="$LONGDATETIME$" --notify="$CONTACTNAME$" --comment="$NOTIFICATIONCOMMENT$" --author="$NOTIFICATIONAUTHOR$"
	}
	define command {
		command_name nboard-notify-service
		command_line /path/to/nboard/notifications/notify.py --type="$NOTIFICATIONTYPE$" --host="$HOSTNAME$" --service="$SERVICEDESC$" --state="$SERVICESTATE$" --address="$HOSTADDRESS$" --serviceoutput="$SERVICEOUTPUT$" --datetime="$LONGDATETIME$" --notify="$CONTACTNAME$" --comment="$NOTIFICATIONCOMMENT$" --author="$NOTIFICATIONAUTHOR$"
	}

