Simple System/Network Monitoring - spong v2.0
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)
-
rules based messaging when problems occur
-
configurable on a host by host basis
-
results displayed via text or web based interface
-
history of problems
-
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 -
but is on the todo list).
I'm a strong believer in KISS (keep it simple stupid), and hopefully
this package is as simple as possible (but no simpler). Spong is broken
up into components that each do a specific thing. Listed are some of the
(key) components:
spong |
Text based query program, reports information about hosts that are
monitored. |
spong-client |
Reports host based information (disk, cpu, logs, etc.) |
spong-network |
Reports on network based services (smtp, ping, http, etc.) |
spong-server |
Collects information reported and responds to queries about that information. |
Spong is currently at version 2.6. If you are using an older version and
want to see what's new in version 2.6, please
look at the bottom on this page.
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.
I would suggest having at least version 5.004 installed (otherwise you
will need to download the CGI.pm module as well). You can get the latest
version of Perl at:
You can retrieve the latest version of spong from my machine at:
This distribution contain the spong source, documentation, and gif images.
Notification
I have sent up a mailing list that is for spong discussion, help and annoucements.
The mailing list open to anyone. I am on the list and I endevour to answer
all questions submitted to the list.
To join the spong mailing list, send a message to spong-request@monsters.org
with the sentence:
in the body of the message. To have yourself removed from the spong-announce
mailing list, send a message to spong-request@monsters.org
with the sentence unsubscribe in the body of the message.
You can also visit the Spong
mailing list web page to subscribe or view the mailing list archives.
Dependencies
Perl v5.004 or greater is all that is required to set up spong. A web server
where you can install a CGI program, and a web browser that can display
tables and frames are required for use of the web interface to spong. 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 system (and to ``some'' degree
any environment where Perl is available).
Documentation
Don't let the amount of documentation scare you, I still think spong is
simple to setup and use.
The documentation is provided in HTML format (the old Perl pod
format just didn't do all that I wanted). It is located in the docs directory
and is self contained (the links will still work if you move it), so you
should be able to copy it to whatever location that you want.
There are four main documents that describe spong from different
perspectives.
-
FAQ
-
Frequently Asked Questions by users and their answers.
-
User's Guide
-
Geared towards the person who will be using the spong text or web based
clients. This is the documentation that will be seen when the user clicks
on the Help button provided in www-spong.
-
Administrator's Guide
-
Written for the person who will be installing spong, and setting up the
various configuration files. This provides a step by step installation
process and gives some suggestions on things spong can do that you might
not have thought of.
-
Developer's Guide
-
Written for the person who wants to have spong look differently, or what
to add some new feature in their version of spong, or whats to incorporate
spong output in other programs. This details the spong internals, and describes
the various protocols that are used.
There are also specific "man" pages for each program and configuration
file which provide detailed explanations of each option, command line argument,
etc... Finally, if you are in a pinch, the code is readable enough (and
well commented) to provide some help as well.
I hopefully have provided enough documentation that the only email
I get are suggestions for new features and bug reports - but if you are
stuck, feel free to send me email and I will respond if I can.
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> os specific config changes
spong.hosts host/service config file
spong.groups group config file
src:
spong.pl text based spong display client
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-message.pl alerts humans there's a problem
spong-ack.pl text based acknowledgement program
www-spong.pl web based spong display client
www-spong-ack.pl web based acknowledgement program
www:
docs:
<*>.html documentation for the above files
gifs: various icons used by spong-display
Licensing
Copyright 1999, Stephen Johnson
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 sjohnson@monsters.org,
and I will mail you a copy.
Changes
The list of changes can be found at:
http://monsters.org/pub/spong/CHANGES
You can see a list of features that I hope to add to spong at:
History
Version 2.6 |
Notification rules enhanced with matching and excluding by host groups.
Added delayed and repeat notifications. Module Plugin mechanisms added
to spong-client, spong-network, spong-server, and spong-message programs.
Programs now automatic background themselves. Event duration added to spong-server
database. NTP and SSH checks added to spong-network. |
Version 2.5 |
First releae by Stephen L johnson. Rules based notifications added,
a limited Big Brother Server emulation was to allow Big Bother Clients
to be used. A new log monitoring routnie which tracks last position read.
Enhanced network checks to eliminate momentary network problems. |
Version 2.0 |
A OO redesign of the spong-server and display programs, added acknowledgments
and group support, added a text based interface, made www interface more
extensible. |
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.
The about acknowledgements are from Ed Hill. I would like to thank Ed
hill for creating Spong and allowing me to take up the development
touch. The current Spong user and development community is small but growing.
i would like to thank them for their patient in allowing me to whip the
Spong distribution into shape and helping me work out the numerous installation
problems.
Known Problems in v2.6
Here are a list of problems, and possible fixes that have been reported
for version 2.8. I will update this section as bugs come in (if there are
any 8-). These fixes will all be included in the next release of spong,
but if you can't wait - here are some suggestions.
-
Memory leak in spong-network on RedHat 6.0 - spong-network has a
memory leak when running on a RedHat 6.0 Linux system. The program memory
core size grows after each check cycle. The fix is to upgrade the glibc
from version 2.1.1 to version 2.1.2.
Author
Ported by:
Ed Hill (ed-hill@uiowa.edu)
Internet Software Developer at The
University of Iowa
Currently maintained by:
Stephen L Johnson (sjohnson@monsters.org)
Please feel free to send me bug reports, patches, suggestions, or comments.
Most recently updated on Dec 15, 1997 by Stephen
L Johnson (sjohnson@monsters.org)