From: Stephen L Johnson Date: Tue, 15 Apr 1997 14:29:48 +0000 (+0000) Subject: Initial import X-Git-Tag: start~49 X-Git-Url: http://git.etc.gen.nz/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8e589612e9b4bbde5105013aeec2758ac3bddb89;p=spong.git Initial import --- diff --git a/README b/README new file mode 100755 index 0000000..c444da6 --- /dev/null +++ b/README @@ -0,0 +1,282 @@ + +Simple System/Network Monitoring - spong v1.1 + +Description +=========== + +This is a simple system monitoring package called spong. It has the +following features: + + * client based monitoring (CPU, disk, processes, logs, etc...) + * monitoring of network services (smtp, http, ping, pop, dns, etc...) + * grouping of hosts (routers, servers, workstations, PCs) + * host specific contact information + * host specific downtime information + * configurable on a client by client basis + * results displayed via the web + * history of problems + * messaging (via email or pager) when problems occur + * verbose information to help diagnosis problems + +This is hopefully a *simple* tool. It does not compete with Tivoli, OpenView, +UniCenter, or any other commercial packages, and I have no intention of trying +to turn it into one. It is not SNMP based, it communicates via simple TCP +based messages. It is written in Perl, so hopefully it can be run on multiple +systems (including NT - although it has not been ported yet). + +I'm a strong believer in KISS (keep it simple stupid), and hopefully this +package is as simple as possible (but no simpler). There are just 5 "pieces", +1 program that runs on "client" machines, and 4 programs that run on your web +server (where the results are displayed). There are also only 2 config files, +one that defines OS and system specific information, and one that defines what +hosts you want to monitor, and who to contact when there is a problem. + + +Changes between v1.1 and v1.0 +============================= + +This is primarily a bug fix release with a few minor features added. +Everything done in this release is based on feedback that I got from my +co-workers and people who decided to take a look at spong after my message to +the BB list. The most significant changes are: + + BUG: Fixed problem with defunct processes under Solaris. + FEATURE: Made the http check more configurable. + FEATURE: Added a DNS check (if you have the Net::DNS library installed) + FEATURE: Added the ability to check multiple interfaces on a host. + CHANGE: Got rid of the Makefile, now build/installation is done via a + simple perl build script. + +You can get a more detailed summary of changes at: + + http://strobe.weeg.uiowa.edu/~edhill/public/spong/changes.html + +You can also see a list of features that I hope to add to spong at: + + http://strobe.weeg.uiowa.edu/~edhill/public/spong/todo.html + + +Availability +============ + +Perl is require to run spong. If you don't have Perl installed you can +retrieve it from the CPAN (http://www.perl.com/CPAN/) archive, along +with other optional modules such at the Net::DNS module at: + + http://www.perl.com/CPAN/src/latest.tar.gz + +You can retrieve the latest version of spong from my machine at: + + http://strobe.weeg.uiowa.edu/~edhill/public/spong/spong.tar.gz + +You can see some screen shots of spong in action (note these are just examples +of HTML that is produced - not the actual programming running - most people +don't want this level of system information public to the world (if they can +help it). + + Main Spong Page + http://strobe.weeg.uiowa.edu/~edhill/public/spong/example/main.html + Spong showing only Unix machines by group + http://strobe.weeg.uiowa.edu/~edhill/public/spong/example/unix.html + History of problems + http://strobe.weeg.uiowa.edu/~edhill/public/spong/example/history.html + Host summary page + http://strobe.weeg.uiowa.edu/~edhill/public/spong/example/host.html + Service specific summary page + http://strobe.weeg.uiowa.edu/~edhill/public/spong/example/service.html + +This distribution contain the spong source, documentation, and gif images. + + +Notification +============ + +I have sent up a mailing list that I will post to when I have released a new +version of spong. Anyone can join this list, but the traffic will be only one +way (me posting information about new-releases). If enough people are +interested in creating a list for discussion spong in general, I will set one +up at that time. + +To join the spong-announce mailing list, send a message to +majordomo@strobe.weeg.uiowa.edu with the sentence: + + subscribe spong-announce + +in the body of the message. To have yourself removed from the spong-announce +mailing list, send a message to majordomo@strobe.weeg.uiowa.edu with the +sentence unsubscribe spong-announce in the body of the message. + +The traffic on the list will be very light - about 1 message per month. + + +Dependencies +============ + +Perl v5.003 or greater, a web server that will allow you to run CGI programs, +and a web browser that can display tables are required. + +If you want to monitor DNS servers remotely, then you will need to install the +Net::DNS Perl module (available at CPAN). Spong will run fine without this +module, you just will not be able to monitor the DNS service. + +These scripts should run on any Unix or NT system (and to ``some'' degree any +environment where Perl is available). + + +Installation +============ + +To build and install the spong server do the following on the machine running +your web server. + + 1. Edit the "build" script, and set the variables at the top of that script + according to where you want spong installed, and where certain programs + that spong relies on are located. + + 2. Check to make sure there is a config/spong.conf. file corresponding + to your operating system, if not - create one. This file contains paths + and command line arguments to helper programs that are used to determine + things like disk usage, etc... If you have to create your own + spong.conf. file, then please email it to me so that I can add it to + the distribution. + + 3. Make sure you are in the directory that you unpacked spong in and type: + ./build where is the name corresponding to your + operating system. You can type ./build help to generate a list of + valid operating system strings. + + When the build completes, you will be left with some new directories in + the folder that you unpacked spong in. The build process takes the + spong source (and documentation), and replaces some "tokens" with values + that you have supplied at the top of the build script. The build + process also creates a spong.conf file, and generates various types of + documentation based on the POD files that come with spong. + + 4. Now, type ./build install. Note that the install process + makes no assumptions about what user you want to run spong as (you don't + have to run it as root). This means that you have to be a little more + careful when you install spong (making sure it has the correct + permissions, and that you have permission to copy the www pages into + your web server's document tree). + + 5. Now edit the spong.conf, and spong.hosts files that you just installed + and season to taste. You should now be able to read the manual pages + for each. + +Now you will have the executables and configuration files in place on the +server. You need to start the spong-server and spong-network programs. The +spong-server program will listen for reports from various agents, and the +spong-network program will start testing the hosts you have defined for any +problems. After starting those programs, you should start seeing files show up +in the SPONGSTATUS directory that you defined in the spong.conf file. + +For each client machine you will need to install the just the spong-client and +a spong.conf file and make sure they start up when your system is rebooted. + + +Documentation +============= + +The documentation is in pod format, which you can convert to html or manual +pages using the various pod2xxx tools that come with Perl. The documentation +is brief but hopefully enough to help you get things installed, and provide +enough information for you to modify it as you see fit. If you are in a pinch, +the code is readable enough (and well commented) to provide some help as well. + +There is a README file that describes the overall system (this file), and there +are pod files available for each program, and the 2 configuration files that +come with spong. + +On installation, the pod files are used to generate both HTML documentation, +and man pages. + + +Files +===== + +Here is a description of the directories and files that come in this package +prior to installation. More specific descriptions of each file are available +in the various documentation that comes with spong. + + + config: + spong.conf distributed config file + spong.conf. os specific config changes + spong.hosts host/service config file + + src: + spong-client.pl collects/reports cpu,disk,etc info + spong-network.pl collects/reports network service info + spong-server.pl listens for/saves spong status updates + spong-display.pl displays spong status via CGI program + spong-message.pl alerts humans there's a problem + <*>.pod documentation for the above files + + www: + gifs: various icons used by spong-display + docs: location of html versions of man pages + history: history files kept here + hosts: host specific html files + screens: html "screens" used to create the GUI + status: location of status information + tmp: temporary storage directory + + + +Licensing +========= + +Copyright 1997, Ed Hill - The University of Iowa + +Like Perl, spong may be copied only under the terms of either the Artistic +License or the GNU General Public License, which may be found in the Perl 5.0 +source kit. If either file is not available to you, send email to ed-hill@uiowa.edu, and I will mail you a +copy. + + +History +======= + +Version 1.1 Primarily a bug fix release with a few minor features (dns,http + config,multiple interfaces) added. + +Version 1.0 Initial public release, mostly based on Big Brother package + from Sean MacGuire. + + +Acknowledgments +=============== + +Many ideas (and some code) came from two similar packages. We have used a +program call "Pong" here at The University of Iowa for about a year. Pong was +written by Helen Harrison at SAS Institute and a paper on it was presented at +the Usenix LISA conference. Pong would allow us to do simple monitoring of +systems (via ping) and would report machine status via a web page. The name of +this package (Son of PONG, but pronounced as its spelled "spong") is an obvious +rip off... + +Originally, the main concepts and design came from Big Brother written by Sean +MacGuire. That package was written in C and sh scripts which I ``ported'' to +Perl, making many changes along the way (like adding more information to the +messages going from the client to the server, adding history, changing the way +that information is displayed, added some configuration options, etc.). + +There didn't seem to be any interest in my perl code from the author of BB, so +I've changed the name so there would be any confusion between this package and +its inspiration. + +I'd also like to thank the many people who have contributed patches and +comments, and where willing to try out spong and help me work out a few of the +early problems. + + +Author +====== + +Ported and currently maintained by: + + Ed Hill (ed-hill@uiowa.edu) + http://strobe.weeg.uiowa.edu/~edhill/ + Unix Systems Administrator at The University of Iowa + +Please feel free to send me bug reports, patches, suggestions, or comments.