NAME
Simple System/Network Monitoring - spong v2.8
DESCRIPTION
This is a simple systems and network 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
- easily expandable via a plug-in module facility
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 to-do 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.
- www-spong
Web based query program, reports information about host that are monitored.
- spong-client
Program that runs on each monitored server. 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-message
Called by the spong-server program to send out notifications when problems occur.
Availability
Spong's Home Page is at http://spong.sourceforge.net/.
Perl is require to run spong. If you don't have Perl installed you can retrieve it from the CPAN archive http://www.cpan.org/CPAN/, 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 http://www.perl.com/CPAN/src/latest.tar.gz
You can retrieve the latest version of Spong from the Spong project at Source Forge. The 'Downloads' web is at http://spong.sourceforge.net/downloads.html. This distribution contain the spong source, documentation, and gif images.
SUPPORT
There are two mailings setup for Spong: spong-users and spongannounce.
spong-users is for general discussions or getting help for Spong. You can subscribe by sending a message to spong-usersrequest @lists.sourceforge.net with the work subscribe in the message. Or be visiting the mailing lists home page at http://lists.sourceforge.net/mailman/listinfo/spong-users.
spong-announce is a low-volume mailing which will be used for announcements and news concerning Spong. It is moderated, but feel free to submit any pertinent items. You can subscribe by sending a message to spong-announcerequest @lists.sourceforge.net with the work subscribe in the message. Or be visiting the mailing lists home page at http://lists.sourceforge.net/mailman/listinfo/spong-announce.
DEPENDENCES
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 perl POD format (the old Perl pod format just didn't do all that I wanted). The installation process will create HTML, text and man formatted versions of the documentation. The HTML documentation can be located anywhere. It's cross-links should survive a move intact.
There are four main documents that describe spong from different perspectives.
- FAQ
Frequently Asked Questions by users and their answers.
- User-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 wants 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
- docs
<*>.html documentation for the above files
gifs: various icons used by www-spong
LICENSING
Copyright 1999,200, Stephen L 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 for the latest version of Spong can be found at http://spong.sourceforge.net/documentation/CHANGES.
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 release 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 routine 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
By Ed Hill
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.
by Stephen L Johnson
I first found Big Brother and liked what it did. But I was put as a bit by it being written in C and shell scripts. While perusing the Big Brother mailing lists archives I ran across references to Spong, and it being written in Perl. This was Spong 1.1
I tried it out but there were some stability problems. So I reluctantly dropped Spong in favor of Big Brother. I didn't like some of the limitations of Big Brother, so I started hacking on the source code. To me it was akin to writing in assembler and getting a tooth pulled. I don't like either one.
Fortunately I found a link to Ed Hill's installation of Spong 2.1 at the University of Iowa. I feel in love with Spong all over again. I asked Ed Hill if I could have Spong 2.1. He sent me the distribution and I started evaluating it again.
Spong 2.1 was a big improvement over Spong 1.1 in terms of stability and features. I rolled the changes that I made to Big Brother into Spong 2.1 and I have been changing things ever since.
Ed Hill had stopped development of Spong and I was spending so much time on Spong. I asked Ed if I could take over development of Spong. He gave his blessing and the torch was passed in October of 1999.
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. There are still a lot of rough edges to need to be smoothed. 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.
BUGS
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 Linux
system and gligc 2.1.1. 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 http://www.uiowa.edu/
Currently maintained by:
Stephen L Johnson <sjohnson@monsters.org>
Alan Premselaar <alien@12inch.com>
Jan Willamowius <jan@willamowius.de>, http://www.willamowius.de
Please feel free to send me bug reports, patches, suggestions, or comments.
