]> git.etc.gen.nz Git - spong.git/commitdiff
Initial revision
authorStephen L Johnson <sjohnson@monsters.org>
Thu, 4 Nov 1999 22:57:54 +0000 (22:57 +0000)
committerStephen L Johnson <sjohnson@monsters.org>
Thu, 4 Nov 1999 22:57:54 +0000 (22:57 +0000)
www/docs/changes.html [new file with mode: 0755]
www/docs/check_cpu.html [new file with mode: 0755]
www/docs/check_disk.html [new file with mode: 0755]
www/docs/check_processes.html [new file with mode: 0755]
www/docs/spong-2_0.html [new file with mode: 0755]
www/docs/spong-server.html [new file with mode: 0755]
www/docs/todo.html [new file with mode: 0755]

diff --git a/www/docs/changes.html b/www/docs/changes.html
new file mode 100755 (executable)
index 0000000..5cebdc2
--- /dev/null
@@ -0,0 +1,181 @@
+<html>\r\r
+<head>\r\r
+<title>Spong v1.1 - ChangeLog</title>\r\r
+</head>\r\r
+<body>\r\r
+\r\r
+<h1>Spong v1.1 - ChangeLog</h1>\r\r
+<hr>\r\r
+\r\r
+This file documents the changes that have been made to spong from release to\r\r
+release, currently I have only updated spong once, but I will be adding new\r\r
+features and change things around from time to time, and this document will log\r\r
+those changes.  Here is a quick overview of significant changes, scroll below\r\r
+for a more detailed summary:<p>\r\r
+\r\r
+<ul>\r\r
+<li><a href="#1_1">v1.1</a> - Fixed various bugs, including the problem with defunct processes\r\r
+left behind by spong-server.  Added DNS checks.  Added configuration options\r\r
+(http, and spong-message mostly).\r\r
+<li>v1.0 - Initial release, based on BB 1.04.\r\r
+</ul>\r\r
+\r\r
+Thanks to those (even my co-workers) who have contributed either code or just\r\r
+suggestions.  I have tried to put names next to changes where people\r\r
+contributed patches.  I'm not promising that I used the contributed code as is,\r\r
+but I tried to stay true in most cases to what was asked for.  If I left off\r\r
+someone's name I apologize.<p>\r\r
+<hr>\r\r
+\r\r
+<h2><a name="1_1">Changes between spong 1.0 and spong 1.1</a></h2>\r\r
+\r\r
+Released 04/15/1997<p>\r\r
+\r\r
+This is primarily a bug fix release with a few minor features added.\r\r
+Everything done in this release is based on feedback that I got from my\r\r
+co-workers and people who decided to take a look at spong after my message to\r\r
+the BB list.  The most significant changes are:<p>\r\r
+\r\r
+<ul>\r\r
+<li>BUG: fixed problem with defunct processes under Solaris.\r\r
+<li>FEATURE: Made the http check more configurable.\r\r
+<li>FEATURE: Added a DNS check (if you have the Net::DNS library installed)\r\r
+<li>FEATURE: Added the ability to check multiple interfaces on a host.\r\r
+<li>CHANGE: Got rid of the Makefile, now build/installation is done via a \r\r
+simple perl build script.\r\r
+</ul>\r\r
+\r\r
+Here is a more detailed summary of changes, organized by file(s).<p>\r\r
+\r\r
+<dl>\r\r
+<dt><b>all:</b>\r\r
+<dd><li>changed the way that the hostname was determined so that it got set to\r\r
+the FQDN regardless of how you define the hostname on the host.  (Russell\r\r
+Street)\r\r
+<dd><li>Converted the hostname to lowercase to ward off problems with names not\r\r
+matching up correctly. (Carlos Canau).\r\r
+<p>\r\r
+\r\r
+<dt><b>spong-server:</b>\r\r
+\r\r
+<dd><li>stoped ignoring child processes, this fixes a problem with defunct\r\r
+processes under Solaris\r\r
+\r\r
+<dd><li>changed the accept() loop to make it identical to the one in the latest\r\r
+camel book - was having odd problems with the way that I had it.\r\r
+\r\r
+<dd><li>dumps it's pid to a file in the spong directory, and if you kill -HUP\r\r
+the process it will now re-exec itself, effectively re-reading the\r\r
+spong.conf/spong.hosts files.  Also added two new command line options:\r\r
+--restart will cause the running spong-server to reread it's config files (it\r\r
+really just restarts itself), and --kill will kill the current running\r\r
+spong-server program. (Russell Street)\r\r
+\r\r
+<dd><li>added a configuration option ($SEND_MESSAGE) so that you can decided if\r\r
+you want to send a message every time there is a red report, or only if there\r\r
+is a change in state of some service (send a message when it goes red, and send\r\r
+it again when it goes green).\r\r
+\r\r
+<dd><li>stopped filtering out blank lines in messages sent from the clients.\r\r
+<p>\r\r
+\r\r
+<dt><b>spong-network:</b>\r\r
+\r\r
+<dd><li>added a DNS check.  If a system is running a DNS server, the dns server\r\r
+will be asked to resolve it's own name, and if it can then all is assumed to be\r\r
+ok, otherwise an error is generated.  This check will only take place if you\r\r
+have the Net::DNS perl module installed (available from CPAN -\r\r
+http://www.perl.com/CPAN/) (Russell Street - although probably less then he\r\r
+wanted 8-)\r\r
+\r\r
+<dd><li>sleep the standard amount plus some random 10% time period just so\r\r
+things don't get in some goofy pattern...\r\r
+\r\r
+<dd><li>made the http check more configurable, it now allows you to specify what\r\r
+port to check, and what file(s) to check for - you can now use the http check\r\r
+to check on proxy servers.\r\r
+\r\r
+<dd><li>dumps it's pid to a file in the spong directory, and if you kill -HUP\r\r
+the process it will now re-exec itself, effectively re-reading the\r\r
+spong.conf/spong.hosts files.  Also added two new command line options:\r\r
+--restart will cause the running spong-network to reread it's config files (it\r\r
+really just restarts itself), and --kill will kill the current running\r\r
+spong-network program. (Russell Street)\r\r
+\r\r
+<dd><li>added a new host attribute (ip_addr) in the spong.hosts file that allow\r\r
+you to specify if a machine has multiple network interfaces (you need to list\r\r
+each interface's IP address) the app, and then spong-network will attempt to\r\r
+ping each interface\r\r
+\r\r
+<dd><li>stopped doing traceroutes to machines that are down.  It took too long,\r\r
+and can overload your network.  I now just show the ping output as the message\r\r
+when the host is down.\r\r
+<p>\r\r
+\r\r
+<dt><b>spong-client:</b>\r\r
+\r\r
+<dd><li>sleep the standard amount plus some random 10% time period just so\r\r
+things don't get in some goofy pattern...\r\r
+\r\r
+<dd><li>spong-client: Added single quotes around process check so that you can\r\r
+check for strings with spaces and other odd characters.\r\r
+\r\r
+<dd><li>adjusted the regular expression so that it doesn't leave off the first\r\r
+part of the mount point (Russell Street)\r\r
+\r\r
+<dd><li>Checked against both the filesystem and mounted on directory for\r\r
+strings to ignore.\r\r
+\r\r
+<dd><li>spong-client: dumps it's pid to a file in the spong directory, and if\r\r
+you kill -HUP the process it will now re-exec itself, effectively re-reading\r\r
+the spong.conf/spong.hosts files.  Also added two new command line options:\r\r
+--restart will cause the running spong-client to reread it's config files (it\r\r
+really just restarts itself), and --kill will kill the current running\r\r
+spong-client program. (Russell Street) <p>\r\r
+\r\r
+<dt><b>spong-display: </b>\r\r
+\r\r
+<dd><li>changed the "stale" time to 3 times the sleep time, with the new\r\r
+randomness of the sleep, and given that it can take a while for spong-network\r\r
+to do its thing, a value of 3 seems better then 2 for now.\r\r
+<p>\r\r
+\r\r
+<dt><b>spong-message:</b>\r\r
+\r\r
+<dd><li>added "color" as another argument, this was needed when I added the\r\r
+ability to send a message just based on a change of state.\r\r
+\r\r
+<dd><li>added a couple of configuration variables so that you can alter how\r\r
+often you want messages sent.\r\r
+<p>\r\r
+\r\r
+<dt><b>other files:</b>\r\r
+\r\r
+<dd><li>README: updated to include licensing information, also moved away from\r\r
+the readme.pod file to just creating it based on the readme.html file (since\r\r
+pod2html doesn't make the readme page look good enough in HTML).\r\r
+\r\r
+<dd><li>Got rid of Makefile, decided that since you have to have Perl to use\r\r
+this program, I just wrote a simple build script in Perl - this gets around\r\r
+problems I had with the Makefile, and different versions of make (thanks though\r\r
+to those who gave me patches for the Makefile).  The new "build" script also\r\r
+fixes the following couple of problems:\r\r
+\r\r
+<ul>\r\r
+<li>No chown/chgrp to root - let people install it how they like...\r\r
+<li>if you make more then once, the OS specific stuff gets added each time\r\r
+<li>adds more instructions to the installation process\r\r
+</ul>\r\r
+\r\r
+<dd><li>new spong.conf.linux: from (Baba Z Buehler)\r\r
+<dd><li>added spong.conf.solaris: from (Baba Z Buehler)\r\r
+\r\r
+</dl>\r\r
+<hr>\r\r
+Most recently updated on Apr 3, 1997 by\r\r
+<a href="http://strobe.weeg.uiowa.edu/~edhill/">Ed Hill</a>\r\r
+(<a href="mailto:ed-hill@uiowa.edu">ed-hill@uiowa.edu</a>)\r\r
+\r\r
+\r\r
+</BODY>\r\r
+</HTML>\r\r
diff --git a/www/docs/check_cpu.html b/www/docs/check_cpu.html
new file mode 100755 (executable)
index 0000000..a710f91
--- /dev/null
@@ -0,0 +1,68 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">\r
+<html>\r
+<head>\r
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">\r
+   <meta name="GENERATOR" content="Mozilla/4.6 [en] (WinNT; I) [Netscape]">\r
+   <title>check_cpu</title>\r
+</head>\r
+<body>\r
+\r
+<hr WIDTH="100%">\r
+<h1>\r
+<a NAME="check_cpu.name"></a>NAME</h1>\r
+check_cpu - check cpu load levels and uptimes\r
+<p>\r
+<hr WIDTH="100%">\r
+<h1>\r
+<a NAME="check_cpu.description"></a>DESCRIPTION</h1>\r
+This is a client check that is run by <i>spong-client</i> that checks the\r
+client host's cpu load levels and uptime. <i>check_cpu </i>used the output\r
+of the <i>uptime</i> command by checking the the second load average number\r
+(a.k.a 5 minute load average). The load average is checked against the\r
+<b>$CPUWARN</b>\r
+and <b>$CPUCRIT</b> levels. If the load level exceeds <b>$CPUWARN</b>,\r
+it triggers a warning - yellow, and if the load level exceeds <b>$CPUCRIT</b>,\r
+it triggers an alert - red.\r
+<p>The uptime is client host is also checked. If the uptime of the system\r
+is less then one hour,&nbsp; a warning is triggered to show that the system\r
+has been restarted recently.\r
+<br>&nbsp;\r
+<h1>\r
+<a NAME="check_cpu.output"></a>OUTPUT RETURNED</h1>\r
+In the status summary field, the system uptime, 5 minute load average,\r
+current number of users logged in and the total number job running on the\r
+system are returned.\r
+<p>If the system ps command is capable of it, the top 10 processes, sorted\r
+by cpu percentage, are returned in the status detailed message field.\r
+<h1>\r
+<a NAME="check_cpu.configuration"></a>CONFIGURATION</h1>\r
+Here is a list of all of the configuration variables used by <i>check_cpu</i>.\r
+<blockquote><b>$CPUWARN</b>, <b>$CPUCRIT</b>\r
+<br>A number inidicating the CPU load that triggers a problem (<b>$CPUWARN</b>\r
+triggers warning - yellow, and <b>$CPUCRIT</b> triffers alerts - red).\r
+<p><b>$UPTIME</b>\r
+<br>An OS specific variable that contains the full path to the <i>uptime</i>\r
+command and any other commands needed to get the uptime output needed for\r
+parsing.\r
+<p><b>$PS</b>\r
+<br>An OS specific variable that contains the full path to the <i>ps</i>\r
+command with the paramters needed to the ps command output to display in\r
+the status detailed messages field.</blockquote>\r
+<b><font face="Arial, Helvetica, sans-serif"><font size=+2>FILES</font></font></b>\r
+<dl>\r
+<dt>\r
+<b>/usr/local/etc/spong/spong.conf</b></dt>\r
+\r
+<dd>\r
+Configuration file. This contains variables that detail spong and OS specific\r
+definitions used by spong-client. This file also contain variables describing\r
+threshold levels. See <i>spong.conf</i> for additional documentation.</dd>\r
+</dl>\r
+<b><font face="Arial, Helvetica, sans-serif"><font size=+2>AUTHOR</font></font></b>\r
+<p>Stephen L Johnson (<a href="MAILTO:stephen.johnson@mail.state.ar.us">stephen.johnson@mail.state.ar.us</a>)\r
+or (<a href="MAILTO:sjohnson@monsters.org">sjohnson@monsters.org</a>),\r
+Unix System Administator, DIS - State of Arkansas\r
+<br>&nbsp;\r
+<br>&nbsp;\r
+</body>\r
+</html>\r
diff --git a/www/docs/check_disk.html b/www/docs/check_disk.html
new file mode 100755 (executable)
index 0000000..b34fab4
--- /dev/null
@@ -0,0 +1,79 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">\r\r
+<html>\r\r
+<head>\r\r
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">\r\r
+   <meta name="GENERATOR" content="Mozilla/4.61 [en] (X11; U; Linux 2.2.12-20 i686) [Netscape]">\r\r
+</head>\r\r
+<body>\r\r
+\r\r
+<hr WIDTH="100%">\r\r
+<h1>\r\r
+<a NAME="check_disk.name"></a>NAME</h1>\r\r
+<b>check_disk</b> - disk space client check modules\r\r
+<p>\r\r
+<hr WIDTH="100%">\r\r
+<h1>\r\r
+<a NAME="check_disk.description"></a>DESCRIPTION</h1>\r\r
+This is a client check that is run by <i>spong-client </i>that checks disk\r\r
+space and swap space on the client host. <i>check_disk</i>&nbsp; uses the\r\r
+output of the <i>df</i> command by checking the percentage of space used\r\r
+by each mounted file system. The percentage of space used is checked against\r\r
+<b>%DFWARN</b>\r\r
+and <b>%DFCRIT </b>levels to generate an appropirate&nbsp; yellow or red\r\r
+status.\r\r
+<p>Swap space is also checked by using the <i><tt>&amp;get_swap() </tt></i>function\r\r
+which returns a message and a percentage of total space space used. This\r\r
+percentage is checked against the <b>$DFWARN{'page'}</b> and <b>$DFCRIT{'page'}</b>\r\r
+entry levels to generate an appropriate yellow or red status.\r\r
+<br>&nbsp;\r\r
+<h1>\r\r
+OUTPUT RETURNED</h1>\r\r
+<b>SUMMARY MESSAGE FIELD</b>\r\r
+<br>If all statuses are green, check_disk returns the largest file system\r\r
+in use. Otherwise If any file systems are in red status, a list all of\r\r
+the mount points with the percent of space used is returned.\r\r
+<p><b>DETALED MESSAGE FIELD</b>\r\r
+<br>The output of the <i>df</i> command and the message returned by the\r\r
+<i><tt>&amp;get_swap</tt></i>\r\r
+function are returned.\r\r
+<br>&nbsp;\r\r
+<h1>\r\r
+CONFIGURATION</h1>\r\r
+Here is a list of all of the configuration variables used by <i>check_disk.</i>\r\r
+<blockquote><b>@DFIGNORE</b>\r\r
+<br>A list of regular expression strings that are matched against the raw\r\r
+file system names. If matched, then that file system is ignored. For example,\r\r
+having ``:'' in this list will cause NFS file system mounts to be ignored.\r\r
+<p><b>%DFWARN</b>, <b>%DFCRIT</b>\r\r
+<br>A hash of file systems (or the word ``ALL''), and the percentage that\r\r
+should trigger a problem (<b>%DFWARN</b> triggers warnings - yellow, and\r\r
+<b>%DFCRIT</b>\r\r
+triggers alerts - red). If a file system is not explicitly listed in this\r\r
+hash then it will fall back to the value of the ``ALL'' entry.\r\r
+<p><b>$DF</b>\r\r
+<br>An OS specific variable that contains the path to the df command&nbsp;\r\r
+and paramters to be run to get file systems used information.\r\r
+<p><b><i><tt>&amp;get_swap()</tt></i></b>\r\r
+<br>An OS&nbsp;specific function that get the total space space usage information.\r\r
+It returns two paramaters: <b>message -</b> a strings containing the swap\r\r
+usage information to be returned in the detail message field of the status\r\r
+message, and <b>total_swap</b> - a percentage of the total amount of space\r\r
+space in use.\r\r
+<br>&nbsp;</blockquote>\r\r
+<b><font face="Arial, Helvetica, sans-serif"><font size=+2>FILES</font></font></b>\r\r
+<dl>\r\r
+<dt>\r\r
+<b>/usr/local/etc/spong/spong.conf</b></dt>\r\r
+\r\r
+<dd>\r\r
+Configuration file. This contains variables that detail spong and OS specific\r\r
+definitions used by spong-client. This file also contain variables describing\r\r
+threshold levels. See <i>spong.conf</i> for additional documentation.</dd>\r\r
+</dl>\r\r
+<b><font face="Arial, Helvetica, sans-serif"><font size=+2>AUTHOR</font></font></b>\r\r
+<p>Stephen L Johnson (<a href="MAILTO:stephen.johnson@mail.state.ar.us">stephen.johnson@mail.state.ar.us</a>)\r\r
+or (<a href="MAILTO:sjohnson@monsters.org">sjohnson@monsters.org</a>),\r\r
+Unix System Administator, DIS - State of Arkansas\r\r
+<br>&nbsp;\r\r
+</body>\r\r
+</html>\r\r
diff --git a/www/docs/check_processes.html b/www/docs/check_processes.html
new file mode 100755 (executable)
index 0000000..3d62007
--- /dev/null
@@ -0,0 +1,63 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">\r
+<html>\r
+<head>\r
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">\r
+   <meta name="Author" content="noman">\r
+   <meta name="GENERATOR" content="Mozilla/4.6 [en] (WinNT; I) [Netscape]">\r
+   <title>check_processes</title>\r
+</head>\r
+<body>\r
+\r
+<hr WIDTH="100%">\r
+<h1>\r
+<a NAME="check_processes.name"></a>NAME</h1>\r
+<b>check_processes</b> - running processes client check module\r
+<br>\r
+<hr WIDTH="100%">\r
+<h1>\r
+<a NAME="check_processes.description"></a>DESCRIPTION</h1>\r
+This is a client check that is run from the spong-client that checks to\r
+ensure that critical processes are running on the client host system. check_processes\r
+uses the output of the <b>$PS</b> command to check against <b>@PROCSWARN</b>\r
+and <b>@PROCSCRIT</b>.&nbsp; Any jobs not found in the <b>@PROCSWARN</b>\r
+list of processes generates a warning - yellow. Any jobs not found in the\r
+<b>@PROCSCRIT</b>\r
+list of processes generates an alert - red.\r
+<br>&nbsp;\r
+<h1>\r
+<a NAME="check_processes.output"></a>OUTPUT RETURNED</h1>\r
+<b>SUMMARY MESSAGE FIELD</b>\r
+<br>If no warning or alerts, check_processes returns "processes OK". Otherwise,\r
+if are any warning or alerts, a list of the processes that are not running\r
+is returned.\r
+<p><b>DETAILED MESSAGE FIELD</b>\r
+<br>A <b>$PS </b>output line of every instance is returned for every running\r
+process.\r
+<h1>\r
+<a NAME="check_processes.configuration"></a>CONFIGURATION</h1>\r
+This is a list of configuration variable that are used by <i>check_processes</i>.\r
+<blockquote><b>@PROCSWARN</b>, <b>@PROCSCRIT</b>\r
+<br>A list of processes that should be running, if they are not running,\r
+then trigger a problem (processes in <b>@PROCSWARN</b> trigger a warning\r
+- yellow, and processes in <b>@PROCSCRIT</b> trigger an alert - red).\r
+<p><b>$PS</b>\r
+<br>An OS specific contains the full path to the ps along with any parameters\r
+need to get the desired formated output.</blockquote>\r
+<b><font face="Arial, Helvetica, sans-serif"><font size=+2>FILES</font></font></b>\r
+<dl>\r
+<dt>\r
+<b>/usr/local/etc/spong/spong.conf</b></dt>\r
+\r
+<dd>\r
+Configuration file. This contains variables that detail spong and OS specific\r
+definitions used by spong-client. This file also contain variables describing\r
+threshold levels. See <i>spong.conf</i> for additional documentation.</dd>\r
+</dl>\r
+<b><font face="Arial, Helvetica, sans-serif"><font size=+2>AUTHOR</font></font></b>\r
+<p>Stephen L Johnson (<a href="MAILTO:stephen.johnson@mail.state.ar.us">stephen.johnson@mail.state.ar.us</a>)\r
+or (<a href="MAILTO:sjohnson@monsters.org">sjohnson@monsters.org</a>),\r
+Unix System Administator, DIS - State of Arkansas\r
+<br>&nbsp;\r
+<br>&nbsp;\r
+</body>\r
+</html>\r
diff --git a/www/docs/spong-2_0.html b/www/docs/spong-2_0.html
new file mode 100755 (executable)
index 0000000..fb386b9
--- /dev/null
@@ -0,0 +1,399 @@
+<HEAD>\r\r
+<TITLE>Simple System/Network Monitoring - spong v2.0</TITLE>\r\r
+</HEAD>\r\r
+<BODY>\r\r
+\r\r
+<H1>Simple System/Network Monitoring - spong v2.0</H1>\r\r
+<hr>\r\r
+\r\r
+<H2>Description</H2>\r\r
+This is a <b>simple</b> system monitoring package called spong.  It has the\r\r
+following features:\r\r
+<p>\r\r
+\r\r
+<ul>\r\r
+<li>client based monitoring (CPU, disk, processes, logs, etc...)\r\r
+<li>monitoring of network services (smtp, http, ping, pop, dns, etc...)\r\r
+<li>grouping of hosts (routers, servers, workstations, PCs)\r\r
+<li>rules based messaging when problems occur\r\r
+<li>configurable on a host by host basis\r\r
+<li>results displayed via text or web based interface\r\r
+<li>history of problems\r\r
+<li>verbose information to help diagnosis problems\r\r
+</ul>\r\r
+\r\r
+This is hopefully a *simple* tool.  It does not compete with Tivoli, OpenView,\r\r
+UniCenter, or any other commercial packages, and I have no intention of trying\r\r
+to turn it into one.  It is not SNMP based, it communicates via simple TCP\r\r
+based messages.  It is written in Perl, so hopefully it can be run on multiple\r\r
+systems (including NT - although it has not been ported yet - but is on the\r\r
+todo list).<p>\r\r
+\r\r
+I'm a strong believer in KISS (keep it simple stupid), and hopefully this\r\r
+package is as simple as possible (but no simpler).  Spong is broken up into\r\r
+components that each do a specific thing.  Listed are some of the (key)\r\r
+components:<p>\r\r
+\r\r
+<ul>\r\r
+<table width=90% border=0 cellpadding=0 cellspacing=0>\r\r
+<tr><td><b>spong</b> &nbsp</td>\r\r
+<td>Text based query program, reports information about hosts that are\r\r
+monitored.</td></tr>\r\r
+\r\r
+<tr><td><b>spong-client</b> &nbsp</td>\r\r
+<td>Reports host based information (disk, cpu, logs, etc.)</td></tr>\r\r
+\r\r
+<tr><td><b>spong-network</b> &nbsp</td>\r\r
+<td>Reports on network based services (smtp, ping, http, etc.)</td></tr>\r\r
+\r\r
+<tr><td><b>spong-server</b> &nbsp</td>\r\r
+<td>Collects information reported and responds to queries about that\r\r
+information.</td></tr></table>\r\r
+\r\r
+</ul>\r\r
+\r\r
+Spong is currently at version 2.0.  If you are using an older version and want\r\r
+to see <a href="#whats_new">what's new</a> in version 2.0, please look at the\r\r
+bottom on this page.<p>\r\r
+\r\r
+<H2>Availability</H2>\r\r
+\r\r
+Perl is require to run spong.  If you don't have Perl installed you can\r\r
+retrieve it from the CPAN (<a\r\r
+href="http://www.perl.com/CPAN/">http://www.perl.com/CPAN/</a>) archive, along\r\r
+with other optional modules such at the Net::DNS module.  I would suggest\r\r
+having at least version 5.004 installed (otherwise you will need to download\r\r
+the CGI.pm module as well).  You can get the latest version of Perl at:<p>\r\r
+\r\r
+<ul>\r\r
+<a href="http://www.perl.com/CPAN/src/latest.tar.gz">http://www.perl.com/CPAN/src/latest.tar.gz</a>\r\r
+</ul>\r\r
+\r\r
+You can retrieve the latest version of spong from my machine at:<p>\r\r
+\r\r
+<ul>\r\r
+<a href="http://strobe.weeg.uiowa.edu/~edhill/public/spong/spong.tar.gz">http://strobe.weeg.uiowa.edu/~edhill/public/spong/spong.tar.gz</a>\r\r
+</ul>\r\r
+\r\r
+You can see some screen shots of spong in action (note these are just examples\r\r
+of HTML that is produced - not the actual programming running - most people\r\r
+don't want this level of system information public to the world (if they can\r\r
+help it).<p>\r\r
+\r\r
+<ul>\r\r
+<li><a href="./example/main.html">Main Spong Page</a>\r\r
+<li><a href="./example/unix.html">Spong showing only Unix machines by group</a>\r\r
+<li><a href="./example/history.html">History of problems</a>\r\r
+<li><a href="./example/host.html">Host summary page</a>\r\r
+<li><a href="./example/service.html">Service specific summary page</a>\r\r
+</ul>\r\r
+<p>This distribution contain the spong source, documentation, and gif images.\r\r
+<p>\r\r
+\r\r
+<h2>Notification</h2>\r\r
+\r\r
+I have sent up a mailing list that I will post to when I have released a new\r\r
+version of spong.  Anyone can join this list, but the traffic will be only one\r\r
+way (me posting information about new-releases).  If enough people are\r\r
+interested in creating a list for discussion spong in general, I will set one\r\r
+up at that time.  I try to answer any questions that are sent to me.<p>\r\r
+\r\r
+To join the spong-announce mailing list, send a message to <a\r\r
+href="mailto:majordomo@strobe.weeg.uiowa.edu">\r\r
+majordomo@strobe.weeg.uiowa.edu</a> with the sentence:<p>\r\r
+\r\r
+<ul><code>subscribe spong-announce</code></ul>\r\r
+\r\r
+in the <i>body</i> of the message.  To have yourself removed from the\r\r
+spong-announce mailing list, send a message to <a\r\r
+href="mailto:majordomo@strobe.weeg.uiowa.edu">\r\r
+majordomo@strobe.weeg.uiowa.edu</a> with the sentence <code>unsubscribe\r\r
+spong-announce</code> in the <i>body</i> of the message.<p>\r\r
+\r\r
+The traffic on the list will be very light - about 1 message per month at\r\r
+most.<p>\r\r
+\r\r
+\r\r
+<h2>Dependencies</h2>\r\r
+\r\r
+Perl v5.004 or greater is all that is required to set up spong.  A web server\r\r
+where you can install a CGI program, and a web browser that can display tables\r\r
+and frames are required for use of the web interface to spong.\r\r
+\r\r
+If you want to monitor DNS servers remotely, then you will need to install the\r\r
+Net::DNS Perl module (available at CPAN).  Spong will run fine without this\r\r
+module, you just will not be able to monitor the DNS service.<p>\r\r
+\r\r
+These scripts should run on any Unix system (and to ``some'' degree any\r\r
+environment where Perl is available).  I will try to make sure the scripts run\r\r
+under NT when I have better access to an NT machine.<p>\r\r
+\r\r
+\r\r
+<h2>Installation</h2>\r\r
+\r\r
+To build and install the spong server do the following on the machine running\r\r
+your web server.  <p>\r\r
+\r\r
+<ol>\r\r
+<li>Edit the "build" script, and set the variables at the top of that script\r\r
+according to where you want spong installed, and where certain programs that\r\r
+spong relies on are located.<p>\r\r
+\r\r
+<li>Check to make sure there is a config/spong.conf.&ltos&gt file corresponding\r\r
+to your operating system, if not - create one.  This file contains paths and\r\r
+command line arguments to helper programs that are used to determine things\r\r
+like disk usage, etc...  If you have to create your own spong.conf.&ltos&gt\r\r
+file, then please email it to me so that I can add it to the distribution.\r\r
+<p>\r\r
+\r\r
+<li>Make sure you are in the directory that you unpacked spong in and type:\r\r
+<code>./build &ltos&gt</code> where &ltos&gt is the name corresponding to your\r\r
+operating system.  You can type <code>./build help</code> to generate a list of\r\r
+valid operating system strings.<p>\r\r
+\r\r
+When the build completes, you will be left with some new directories in the\r\r
+folder that you unpacked spong in.  The build process takes the spong source\r\r
+(and documentation), and replaces some "tokens" with values that you have\r\r
+supplied at the top of the build script.  The build process also creates a\r\r
+spong.conf file, and generates various types of documentation based on the POD\r\r
+files that come with spong.<p>\r\r
+\r\r
+<li>Now, type <code>./build install</code>.  Note that the install process\r\r
+makes no assumptions about what user you want to run spong as (you <b>don't</b>\r\r
+have to run it as root).  This means that you have to be a little more careful\r\r
+when you install spong (making sure it has the correct permissions, and that\r\r
+you have permission to copy the www pages into your web server's document\r\r
+tree).<p>\r\r
+\r\r
+<li>Now edit the spong.conf, and spong.hosts files that you just installed and\r\r
+season to taste.  You should now be able to read the manual pages for each.<p>\r\r
+</ol>\r\r
+\r\r
+Now you will have the executables and configuration files in place on the\r\r
+server.  You need to start the spong-server and spong-network programs.  The\r\r
+spong-server program will listen for reports from various agents, and the\r\r
+spong-network program will start testing the hosts you have defined for any\r\r
+problems.  After starting those programs, you should start seeing files show up\r\r
+in the SPONGSTATUS directory that you defined in the spong.conf file.  <p>\r\r
+\r\r
+For each client machine you will need to install the just the spong-client and\r\r
+a spong.conf file and make sure they start up when your system is rebooted.\r\r
+<p>\r\r
+\r\r
+<h2>Documentation</h2>\r\r
+\r\r
+Don't let the amount of documentation scare you, I still think spong is simple\r\r
+to setup and use.<p>\r\r
+\r\r
+The documentation is provided in HTML format (the old Perl pod format just\r\r
+didn't do all that I wanted).  It is located in the docs directory and is self\r\r
+contained (the links will still work if you move it), so you should be able to\r\r
+copy it to whatever location that you want.<p>\r\r
+\r\r
+There are four main documents that describe spong from different\r\r
+perspectives.<p>\r\r
+\r\r
+<dl>\r\r
+<dd><b><a href="overview.html">Overview</a></b>\r\r
+<dd>Just that, gives a quick 5 minute overview of what spong is and what it can\r\r
+do.<p>\r\r
+\r\r
+<dd><b><a href="users-guide.html">User's Guide</a></b>\r\r
+<dd>Geared towards the person who will be using the spong text or web based\r\r
+clients.  This is the documentation that will be seen when the user clicks\r\r
+on the Help button provided in www-spong.<p>\r\r
+\r\r
+<dd><b><a href="admin-guide.html">Administrator's Guide</a></b>\r\r
+<dd>Written for the person who will be installing spong, and setting up the\r\r
+various configuration files.  This provides a step by step installation process\r\r
+and gives some suggestions on things spong can do that you might not have\r\r
+thought of.<p>\r\r
+\r\r
+<dd><b><a href="developer-guide.html">Developer's Guide</a></b>\r\r
+<dd>Written for the person who wants to have spong look differently, or what to\r\r
+add some new feature in their version of spong, or whats to incorporate spong\r\r
+output in other programs.  This details the spong internals, and describes the\r\r
+various protocols that are used.<p>\r\r
+</dl>\r\r
+\r\r
+There are also specific "man" pages for each program and configuration file\r\r
+which provide detailed explanations of each option, command line argument,\r\r
+etc...  Finally, if you are in a pinch, the code is readable enough (and well\r\r
+commented) to provide some help as well.<p>\r\r
+\r\r
+I hopefully have provided enough documentation that the only email I get are\r\r
+suggestions for new features and bug reports - but if you are stuck, feel free\r\r
+to send me email and I will respond if I can.<p>\r\r
+\r\r
+<h2>Files</h2>\r\r
+\r\r
+Here is a description of the directories and files that come in this package\r\r
+prior to installation.  More specific descriptions of each file are available\r\r
+in the various documentation that comes with spong.<p>\r\r
+\r\r
+<pre>\r\r
+    config:\r\r
+      <a href="spong.conf.html">spong.conf</a>              distributed config file\r\r
+      spong.conf.&ltos&gt         os specific config changes\r\r
+      <a href="spong.hosts.html">spong.hosts</a>             host/service config file\r\r
+      <a href="spong.groups.html">spong.groups</a>            group config file\r\r
\r\r
+    src:\r\r
+      <a href="spong.html">spong.pl</a>                text based spong display client\r\r
+      <a href="spong-client.html">spong-client.pl</a>         collects/reports cpu,disk,etc info\r\r
+      <a href="spong-network.html">spong-network.pl</a>        collects/reports network service info\r\r
+      <a href="spong-server.html">spong-server.pl</a>         listens for/saves spong status updates\r\r
+      <a href="spong-message.html">spong-message.pl</a>        alerts humans there's a problem\r\r
+      <a href="spong-ack.html">spong-ack.pl</a>            text based acknowledgement program\r\r
+      <a href="www-spong.html">www-spong.pl</a>            web based spong display client\r\r
+      <a href="www-spong-ack.html">www-spong-ack.pl</a>        web based acknowledgement program\r\r
+\r\r
+    docs:\r\r
+      &lt*&gt.html                documentation for the above files\r\r
\r\r
+    www:\r\r
+      gifs:                   various icons used by spong-display\r\r
+\r\r
+</pre>\r\r
+\r\r
+<h2>Licensing</h2>\r\r
+\r\r
+Copyright 1997, Ed Hill - The University of Iowa<p>\r\r
+\r\r
+Like Perl, spong may be copied only under the terms of either the Artistic\r\r
+License or the GNU General Public License, which may be found in the Perl 5.0\r\r
+source kit.  If either file is not available to you, send email to <a\r\r
+href="mailto:ed-hill@uiowa.edu">ed-hill@uiowa.edu</a>, and I will mail you a\r\r
+copy.<p>\r\r
+\r\r
+<a name="whats_new"></a>\r\r
+<h2>Changes between v2.0 and v1.1</h2>\r\r
+\r\r
+The most significant change in version 2.0 is a rewrite and redesign of spong\r\r
+internals to move towards a more modular and OO framework.  The first version\r\r
+of spong was just a port of the BB program to perl with some of my own\r\r
+modifications, this version contains a significant rewrite of the spong-server\r\r
+program to make it more object oriented and extensible.  I believe this puts\r\r
+spong in a better position to maintain (by me) and extend (by you).\r\r
+\r\r
+The spong-client and spong-network programs are still pretty much the same\r\r
+\r\r
+Other then the redesign issue, this release has a few new features and\r\r
+programs, and some bug fixes (as well as some new introductions I'm sure).  The\r\r
+most significant changes are:<p>\r\r
+\r\r
+<ul>\r\r
+<li>CHANGE: Made spong server a single threaded process, improves performance\r\r
+on some machines significantly.\r\r
+<li>CHANGE: Changed the way that information is stored on the spong server, so\r\r
+that more features can be easily incorporated over time.\r\r
+<li>CHANGE: Upgraded the build script so that it is more useful.\r\r
+<li>CHANGE: Redesigned spong internals so things are more object oriented.\r\r
+<li>CHANGE: Made various changes to the way that information is displayed via\r\r
+the web interface.\r\r
+\r\r
+<p><li>ADDED: Added new command line spong display program.\r\r
+<li>ADDED: Replaced the spong-display program with www-spong which can act as\r\r
+both a CGI program and a command line program that generates web pages.\r\r
+<li>ADDED: Query mechanism to the spong server so that the www-spong and spong\r\r
+programs don't have be on the same machine as the spong-server.\r\r
+<li>ADDED: Added a way to acknowledge problems (spong-ack, www-spong-ack)\r\r
+<li>ADDED: Added checks for NFS and other UDP based services.\r\r
+<li>ADDED: Made group support usable.\r\r
+<li>ADDED: Added --nosleep options to the spong-client and spong-server\r\r
+programs so that you can run them from cron.\r\r
+\r\r
+<p><li>BUG FIX: DNS check was not working correctly, is now fixed.\r\r
+</ul>\r\r
+\r\r
+You can see a list of features that I hope to add to spong at:<p>\r\r
+\r\r
+<ul>\r\r
+<a href="http://strobe.weeg.uiowa.edu/~edhill/public/spong/todo.html">http://strobe.weeg.uiowa.edu/~edhill/public/spong/todo.html</a>\r\r
+</ul>\r\r
+\r\r
+\r\r
+<h2>History</h2>\r\r
+\r\r
+<table width=100% border=0>\r\r
+<tr>\r\r
+<td align=left valign=top>Version 2.0   </td>\r\r
+<td align=left valign=top>\r\r
+A OO redesign of the spong-server and display programs, added acknowledgments\r\r
+and group support, added a text based interface, made www interface more\r\r
+extensible.\r\r
+</td>\r\r
+</tr>\r\r
+<tr>\r\r
+<td align=left valign=top>Version 1.1   </td>\r\r
+<td align=left valign=top>\r\r
+Primarily a bug fix release with a few minor features (dns,http config,multiple\r\r
+interfaces) added.\r\r
+</td>\r\r
+</tr>\r\r
+<tr>\r\r
+<td align=left valign=top>Version 1.0   </td>\r\r
+<td align=left valign=top>\r\r
+Initial public release, mostly based on Big Brother package from Sean MacGuire.\r\r
+</td>\r\r
+</tr>\r\r
+</table>\r\r
+<p>\r\r
+\r\r
+<h2>Acknowledgments</h2>\r\r
+\r\r
+Many ideas (and some code) came from two similar packages.  We have used a\r\r
+program call "Pong" here at The University of Iowa for about a year.  Pong was\r\r
+written by Helen Harrison at SAS Institute and a paper on it was presented at\r\r
+the Usenix LISA conference.  Pong would allow us to do simple monitoring of\r\r
+systems (via ping) and would report machine status via a web page.  The name of\r\r
+this package (Son of PONG, but pronounced as its spelled "spong") is an obvious\r\r
+rip off...  <p>\r\r
+\r\r
+Originally, the main concepts and design came from Big Brother written by Sean\r\r
+MacGuire.  That package was written in C and sh scripts which I ``ported'' to\r\r
+Perl, making many changes along the way (like adding more information to the\r\r
+messages going from the client to the server, adding history, changing the way\r\r
+that information is displayed, added some configuration options, etc.).  <p>\r\r
+\r\r
+There didn't seem to be any interest in my perl code from the author of BB, so\r\r
+I've changed the name so there would be any confusion between this package and\r\r
+its inspiration.  <p>\r\r
+\r\r
+I'd also like to thank the many people who have contributed patches and\r\r
+comments, and where willing to try out spong and help me work out a few of the\r\r
+early problems.<p>\r\r
+\r\r
+<h2>Known Problems in v2.0</h2>\r\r
+\r\r
+Here are a list of problems, and possible fixes that have been reported for\r\r
+version 2.0.  I will update this section as bugs come in (if there are any 8-).\r\r
+These fixes will all be included in the next release of spong, but if you can't\r\r
+wait - here are some suggestions.<p>\r\r
+\r\r
+<ul>\r\r
+<li><b>Attempt to free unreferenced scalar</b> - I have not figured this one\r\r
+out yet.  It is a Perl internals message, and some say the problem is related\r\r
+to the malloc library that comes with Perl.  If you see the spong-client crash\r\r
+with this message reported, I would encourage you to run the spong-client\r\r
+program via a cron entry with the --nosleep flag as a work around.\r\r
+</ul>\r\r
+\r\r
+<h2>Author</h2>\r\r
+\r\r
+Ported and currently maintained by:\r\r
+<p>\r\r
+\r\r
+<a href="http://strobe.weeg.uiowa.edu/~edhill/">Ed Hill</a> (<a href="mailto:ed-hill@uiowa.edu">ed-hill@uiowa.edu</a>)<br>\r\r
+Internet Software Developer  at\r\r
+<a href="http://www.uiowa.edu/">The University of Iowa</a><p>\r\r
+\r\r
+<p>Please feel free to send me bug reports, patches, suggestions, or comments.\r\r
+<p>\r\r
+<hr>\r\r
+Most recently updated on Aug 1, 1997 by\r\r
+<a href="http://strobe.weeg.uiowa.edu/~edhill/">Ed Hill</a>\r\r
+(<a href="mailto:ed-hill@uiowa.edu">ed-hill@uiowa.edu</a>)\r\r
+\r\r
+</BODY>\r\r
+</HTML>\r\r
diff --git a/www/docs/spong-server.html b/www/docs/spong-server.html
new file mode 100755 (executable)
index 0000000..9f984f9
--- /dev/null
@@ -0,0 +1,215 @@
+<HEAD><CENTER><TITLE>spong-server</TITLE>\r\r
+</CENTER></HEAD>\r\r
+<BODY><p><hr>\r\r
+\r\r
+<H1> \r\r
+<A NAME="spong-server_name_0">\r\r
+NAME</A>\r\r
+</H1>\r\r
+<STRONG>spong-server</STRONG> - save status information reported by spong programs\r\r
+<p><p><hr>\r\r
+\r\r
+<H1> \r\r
+<A NAME="spong-server_synopsis_0">\r\r
+SYNOPSIS</A>\r\r
+</H1>\r\r
+<STRONG>spong-server</STRONG> [--debug] [--kill|--restart] [config_file]\r\r
+<p><p><hr>\r\r
+\r\r
+<H1> \r\r
+<A NAME="spong-server_description_0">\r\r
+DESCRIPTION</A>\r\r
+</H1>\r\r
+The spong-server program starts up and listens to status reports from various\r\r
+spong clients (specifically the spong-network and various spong-client programs\r\r
+running).  It takes the information reported by the various spong clients and\r\r
+does the following:\r\r
+<p>\r\r
+<XMP>\r\r
+    * Check for valid messages, and discards any invalid ones.\r\r
+    * If the message is something worth notifying someone about, it calls\r\r
+      the spong-message program and lets it determine how/if to contact \r\r
+      someone about the problem.\r\r
+    * Check to see if the color of this message is different then it\r\r
+      used to be, and if so generate a history item indicating the change.\r\r
+    * Save the information in the $SPONGSTATUS directory.\r\r
+\r\r
+</XMP>\r\r
+<p>Each time a message comes in, a child process is forked off to handle the above\r\r
+tasks, while the main spong-server program goes back to waiting for more\r\r
+status reports.\r\r
+<p>You should start this program in your system startup file, and it should be\r\r
+running constantly.  If you provide the --debug flag, then debugging\r\r
+information will be printed to stdout, otherwise output will only be\r\r
+produced if there is a problem.\r\r
+<p>If you provide the --restart flag, a signal will be sent to the spong-server\r\r
+process that is currently running that will cause it to reload it's\r\r
+configuration files.  If you provide the --kill flag, a signal will be sent to\r\r
+the running spong-server process causing it to exit.\r\r
+<p><p><hr>\r\r
+\r\r
+<H1> \r\r
+<A NAME="spong-server_configuration_0">\r\r
+CONFIGURATION</A>\r\r
+</H1>\r\r
+The configuration of the spong-server program is two fold, the first part is\r\r
+the \r\r
+<A HREF="spong-server.html#spong-server_usr_local_etc_spong_spong_hosts_0">/usr/local/etc/spong/spong.hosts</A>\r\r
+ file.  This file lists the host that are being\r\r
+monitored by the spong-network and spong-client programs.  Only status\r\r
+information on hosts in the spong.hosts file are considered valid and saved.\r\r
+<p>The second part of the configuration is the \r\r
+<A HREF="spong-server.html#spong-server_usr_local_etc_spong_spong_conf_0">/usr/local/etc/spong/spong.conf</A>\r\r
+ file which\r\r
+define some specific variables that you probably don't need to override.  By\r\r
+default the spong.conf file is read on startup.  You can specify an alternate\r\r
+config file via a command line option and it will read that file instead.  If\r\r
+you change values in the configuration file you will need to restart this\r\r
+program for those changes to be re-read.\r\r
+<p>After reading the configuration file that you specify (or the default), it then\r\r
+reads the <EM>/usr/local/etc/spong/spong.conf.[host]</EM> file where [host] is the hostname of\r\r
+the machine that you are running on.  Since these configuration files are just\r\r
+standard perl code that gets imported, the variables that you define in the\r\r
+host specific config file will take precedence over the standard configuration\r\r
+settings.\r\r
+<p>Here are a list of variables in the spong.conf file that are applicable to the\r\r
+spong-server program:\r\r
+<p>\r\r
+<DL>\r\r
+<DT>\r\r
+\r\r
+<STRONG>\r\r
+\r\r
+<A NAME="spong-server_send_message_0">\r\r
+$SEND_MESSAGE</A>\r\r
+\r\r
+</DT></STRONG>\r\r
+<DD>\r\r
+\r\r
+<A HREF="spong-server.html#spong-server_send_message_0">$SEND_MESSAGE</A>\r\r
+ defines when spong-message is called by spong-server.  This\r\r
+variable can contain one of three valid values.  If it is ``RED'', then\r\r
+spong-message is called for every time a system or service reports a problem.\r\r
+If its value is ``CHANGE'', then spong-message is only called when there is a\r\r
+change of state (going from green to red, and then again going from red to\r\r
+green).  If its value is ``NONE'', then spong-message is never called.\r\r
+<p>\r\r
+<DT>\r\r
+<STRONG>$SPONGPORT</STRONG>, <STRONG>$SPONGSTATUS</STRONG>, <STRONG>$SPONGHISTORY</STRONG>, <STRONG>$SPONGNOTES</STRONG><DD>\r\r
+The port number that the server should be listening at, and some directory\r\r
+locations where status information, history information, and host specific\r\r
+documentation are kept.\r\r
+<p>\r\r
+</DL>\r\r
+<p><hr>\r\r
+\r\r
+<H1> \r\r
+<A NAME="spong-server_files_0">\r\r
+FILES</A>\r\r
+</H1>\r\r
+<p>\r\r
+<DL>\r\r
+<DT>\r\r
+\r\r
+<STRONG>\r\r
+\r\r
+<A NAME="spong-server_usr_local_etc_spong_spong_conf_0">\r\r
+/usr/local/etc/spong/spong.conf</A>\r\r
+\r\r
+</DT></STRONG>\r\r
+<DD>\r\r
+Configuration file.  This contains variables that detail spong and OS specific\r\r
+definitions used by spong-server.  See <EM>spong.conf</EM> for additional\r\r
+documentation.\r\r
+<p>\r\r
+<DT>\r\r
+\r\r
+<STRONG>\r\r
+\r\r
+<A NAME="spong-server_usr_local_etc_spong_spong_hosts_0">\r\r
+/usr/local/etc/spong/spong.hosts</A>\r\r
+\r\r
+</DT></STRONG>\r\r
+<DD>\r\r
+Host and human configuration file.  This defines what hosts you are monitoring,\r\r
+and what human you should contact if there is a problem.  See <EM>spong.hosts</EM>\r\r
+for additional documentation.\r\r
+<p>\r\r
+<DT>\r\r
+\r\r
+<STRONG>\r\r
+\r\r
+<A NAME="spong-server_local_www_docs_spong_status_0">\r\r
+/local/www/docs/spong/status/</A>\r\r
+\r\r
+</DT></STRONG>\r\r
+<DD>\r\r
+The directory where status information is saved.  The files in this directory\r\r
+should be readable by your web server as spong-display using this information\r\r
+to generate the web pages that it displays.\r\r
+<p>\r\r
+<DT>\r\r
+\r\r
+<STRONG>\r\r
+\r\r
+<A NAME="spong-server_local_www_docs_spong_history_0">\r\r
+/local/www/docs/spong/history/</A>\r\r
+\r\r
+</DT></STRONG>\r\r
+<DD>\r\r
+The directory where history information is stored.  The files in this directory\r\r
+should also be readable by your web server.\r\r
+<p>\r\r
+<DT>\r\r
+\r\r
+<STRONG>\r\r
+\r\r
+<A NAME="spong-server_local_www_docs_spong_notes_0">\r\r
+/local/www/docs/spong/notes/</A>\r\r
+\r\r
+</DT></STRONG>\r\r
+<DD>\r\r
+The directory where host specific information is stored.  For each host that\r\r
+you monitor, if there is a file in this directory with the same name as that\r\r
+host then that file will be displayed by spong-display when the user clicks on\r\r
+a specific host.\r\r
+<p>\r\r
+</DL>\r\r
+<p><hr>\r\r
+\r\r
+<H1> \r\r
+<A NAME="spong-server_dependencies_0">\r\r
+DEPENDENCIES</A>\r\r
+</H1>\r\r
+Perl v5.003 or greater is required.\r\r
+<p><p><hr>\r\r
+\r\r
+<H1> \r\r
+<A NAME="spong-server_bugs_0">\r\r
+BUGS</A>\r\r
+</H1>\r\r
+It is not sufficiently paranoid.  It should probably perform more strict\r\r
+authentication to protect against bogus data.\r\r
+<p><p><hr>\r\r
+\r\r
+<H1> \r\r
+<A NAME="spong-server_see_0">\r\r
+SEE ALSO</A>\r\r
+</H1>\r\r
+the <EM>spong-network</EM>  manpage\r\r
+, the <EM>spong-client</EM>  manpage\r\r
+, the <EM>spong-display</EM>  manpage\r\r
+, the <EM>spong-message</EM>  manpage\r\r
+,\r\r
+<EM>spong.hosts</EM>, <EM>spong.conf</EM>\r\r
+<p><p><hr>\r\r
+\r\r
+<H1> \r\r
+<A NAME="spong-server_author_0">\r\r
+AUTHOR</A>\r\r
+</H1>\r\r
+Ed Hill (<A HREF="MAILTO:ed-hill@uiowa.edu">ed-hill@uiowa.edu</A>), Unix System Administrator, The University of Iowa\r\r
+<p>Based on code/ideas from Sean MacGuire (BB), and Helen Harrison (Pong).\r\r
+<p>\r\r
+</BODY>\r\r
+</HTML>\r\r
diff --git a/www/docs/todo.html b/www/docs/todo.html
new file mode 100755 (executable)
index 0000000..a6dbce7
--- /dev/null
@@ -0,0 +1,84 @@
+<html>\r\r
+<head>\r\r
+<title>Spong v1.1 - Todo List</title>\r\r
+</head>\r\r
+<body>\r\r
+\r\r
+<h1>Spong v1.1 - Todo List</h1>\r\r
+<hr>\r\r
+\r\r
+Here are the features/changes that I want to make to spong.  They are in no\r\r
+particular order, but I will probably be working on the things at the top of\r\r
+this list before I get to the ones on the bottom.  If you have any suggestions\r\r
+or comments, send email to <a\r\r
+href="mailto:ed-hill@uiowa.edu">ed-hill@uiowa.edu</a>.  I have no specific time\r\r
+schedule in mind for implementing this list.  Spong is now a night-time\r\r
+project, so I get to this things when I can.<p>\r\r
+\r\r
+I have put *'s next to the items that I am currently working on - or have\r\r
+completed in cased you are curious about my progress.<p>\r\r
+\r\r
+<ul>\r\r
+<li>(*) Rework some of the design of spong to make things more object oriented.\r\r
+The first version of spong was basically a port of BB, version 2.0 will be\r\r
+different.  This will allow me to more easily integrate new features over time.\r\r
+\r\r
+<li>(*) Add nfs (and other rpc based services) to spong-network (using the\r\r
+rpcinfo command).\r\r
+\r\r
+<li>Client support (spong-client) for NT\r\r
+<li>Server support (spong-server, spong-network, spong-display) support for NT\r\r
+\r\r
+<li>(*) Provide different interfaces (currently only web - provide a PerlTk,\r\r
+and a terminal based interface).\r\r
+\r\r
+<li>Provide the ability to view spong information (run the spong, tkspong, and\r\r
+wwwspong (currently known as spong-display) programs from machines other then\r\r
+the spong server).\r\r
+\r\r
+<li>(*) Redo the web based spong-display to make it more extensible\r\r
+<ul>\r\r
+<li>Allow people to easily put the spong-server CGI program in /cgi-bin/\r\r
+<li>Allow people to easily define their own interfaces\r\r
+<li>Allow people to easily include parts of spong-display.cgi output in\r\r
+other pages\r\r
+<li>Allow for multiple views (table, network diagram, simple host summary\r\r
+with drill down for more specific information)\r\r
+<li>Handle groups better.\r\r
+\r\r
+</ul>\r\r
+\r\r
+<li>Provide a rules based solution to sending pages - this will allow people to\r\r
+specify whatever rules they want for sending pages when there are problems.\r\r
+\r\r
+<li>(*) Add acknowledgements - so that you can say that you know a service is\r\r
+red - and that you don't want paged about it.  You can also add some text so\r\r
+that others reading spong can have an idea what the problem is, and know\r\r
+someone is working on it.\r\r
+\r\r
+<li>Make spong-network more parallel, have it perform checks from a pool of\r\r
+children, that way if a system can not be pinged - it will not slow up the rest\r\r
+of the checks.\r\r
+\r\r
+<li>Make spong-network check more often on hosts that do not respond on the\r\r
+first try\r\r
+\r\r
+<li>Optimize the communication between client and server - by pipelining\r\r
+reports through a single channel and perhaps compressing the data before\r\r
+sending it.\r\r
+\r\r
+<li>Fix the log file checking - make it smarter.\r\r
+\r\r
+<li>Make it so that you can click on a host and find out status, history, \r\r
+configuration (inventory), and statistics. (starting to branch out).\r\r
+<ul>\r\r
+<li>Integrate my gstats (statistics collection) program. "spong-stats"\r\r
+<li>Add an inventory/configuration module. "spong-config"\r\r
+</ul>\r\r
+</ul>\r\r
+<hr>\r\r
+Most recently updated on May 8, 1997 by\r\r
+<a href="http://strobe.weeg.uiowa.edu/~edhill/">Ed Hill</a>\r\r
+(<a href="mailto:ed-hill@uiowa.edu">ed-hill@uiowa.edu</a>)\r\r
+</BODY>\r\r
+</HTML>\r\r