|[Table of Contents]||[Index]|
spong-client - report system information to spong server
spong-client [ --debug|-d n ]
[ --kill|--restart|--nosleep|--norefresh ]
This program is run on each Unix machine in which you want to monitor local system attributes, and report that information to the spong server. It runs one or more configured checks. It then sleeps for a time period you have defined in your configuration file and does it all again (it actually adds or subtracts a random amount of time - no more then 10% of the total you have specified, to keep clients from sync'ing up and overloading the spong-server).
The checks are modular in nature. You can configure the number of checks to run and the order in which to run to them. The list of checks that are included are disk space, cpu load, running processes and log files.
It sends a message for each check to the spong server and reports the following:
The one line summary provides information that might be useful at a glance when looking at the overall system status (such as a brief report on the load, number of users, and uptime).
The more detailed message contains information such as the complete
df output, or a listing of the top 10 processes sorted by CPU.
You should start this program in your system startup file, and it should be running constantly. If no parameters are specified, spong-network forks and detaches itself to run as a daemon.
If you provide the --debug n flag, then debugging information will be printed to stdout, otherwise output will only be produced if there is a problem. Where n is a number from 1 - 9. A higher number means more verbosity in the debugging output.
If you provide the --restart flag, a signal will be sent to the spong-client process that is currently running that will cause it to reload it's configuration files. If you provide the --kill flag, a signal will be sent to the running spong-client process causing it to exit.
The --nosleep or --refresh flag causes the program to cycle through all of the checks once then exit. These flags can be used to run spong-client as a cron job (depreciated), this reduced the effectiveness of the check_logs module.
The checks are actually a set of modules that are called in series by
spong-client. The list of modules to run are defined in the $CHECKS
configuration variable. Upon initialization, spong-client will load the
modules defined in $CHECKS from the
directory. As each modules is initialized, it registers itself with the the
plugins registry (see the the Developer Guide|developer-guide entry elsewhere in this document).
Depreciated, please refer to the developer-guide/"CLIENT MODULES" entry elsewhere in this document.
If you want to check some service which is not being checked by spong-client,
then you can define a
&check_local() function in your
config file (either in your standard the spong.conf manpage config file or your host specific spong.conf.hostname
file - but not both!). That function can do anything you want, but at the
end needs to call the
&status() function to report
what you have found to the spong server.
By default this reads the the spong.conf manpage file on startup. You can specify an alternate config file via a command line option and it will read that file instead. If you change values in the configuration file you will need to restart this program for those changes to be re-read.
After reading the configuration file that you specify (or the default),
it then reads the
spong.conf.[hostname] file where [hostname] is the
hostname of the machine that you are running on. Since these configuration
files are just standard perl code that gets imported, the variables that you
define in the host specific config file will take precedence over the standard
Here is a listing of the configuration variables applicable to the spong-client program.
/tmpfor operation and security reasons.
check_local()function is present then 'local' is appended.
Each check is a hash that contains the fields:
spong-client --debug 5 --nosleep spong-client --debug 5 spong-client --restart
Perl v5.005_03 or greater is required.
None know bugs.
the spong-server entry elsewhere in this document,
client-modules, the developer-guide entry elsewhere in this document
Ed Hill <
email@example.com>, Unix System Administrator, The University of
Stephen L Johnson <
Based on code/ideas from Sean MacGuire (BB), and Helen Harrison (Pong). Ed Hill original converted Big Brother (http://www.bb4.com) into Perl which diverged from Big Brother to become Spong. Ed Hill continued Spong development until version 2.1. Stephen L Johnson took over development in October, 1999 with his changes which became Spong 2.5.