NAME

spong-server - save status information reported by spong programs


SYNOPSIS

spong-server [--debug] [--kill|--restart] [config_file]


DESCRIPTION

The spong-server program starts up and listens to status reports from various spong clients (specifically the spong-network and various spong-client programs running). It takes the information reported by the various spong clients and does the following:
    * Check for valid messages, and discards any invalid ones.

    * If the message is something worth notifying someone about, it calls
      the spong-message program and lets it determine how/if to contact
      someone about the problem.

    * Check to see if the color of this message is different then it
      used to be, and if so generate a history item indicating the change.

    * Save the information in the $SPONGDB directory.

    * Answers database queries from Spong Interface Clients

You should start this program in your system startup file, and it should be running constantly. If you provide the --debug flag, then debugging information will be printed to stdout, otherwise output will only be produced if there is a problem.

If you provide the --restart flag, a signal will be sent to the spong-server 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-server process causing it to exit.


CONFIGURATION

The configuration of the spong-server program is two fold, the first part is the /usr/local/etc/spong/spong.hosts file. This file lists the host that are being monitored by the spong-network and spong-client programs. Only status information on hosts in the spong.hosts file are considered valid and saved.

The second part of the configuration is the /usr/local/etc/spong/spong.conf file which define some specific variables that you probably don't need to override. By default the spong.conf file is read 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 /usr/local/etc/spong/spong.conf.[host] file where [host] 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 configuration settings.

Here are a list of variables in the spong.conf file that are applicable to the spong-server program:

$SEND_MESSAGE
$SEND_MESSAGE defines when spong-message is called by spong-server. This variable can contain one of three valid values. If it is ``RED'', then spong-message is called for every time a system or service reports a problem. If its value is ``CHANGE'', then spong-message is only called when there is a change of state (going from green to red, and then again going from red to green). If its value is ``NONE'', then spong-message is never called.

$SPONG_UPDATE_PORT
The port number that the server should be listening at for receiving update messages

$SPONG_QUERY_PORT
The port number that the server should be listening at for answering database queries from the various spong interface clients.

$SPONG_BB_UPDATE_PORT
The port that the server should be listeningat for receiving Big Brother status update messages. This is the Big Brother server emulation feature.

$SPONG_SPONG_ALARM
The is the amount of time (in seconds) a connection from a Spong Client to spong-server is allowed. After the timeout period elaspes the connection is closed.


DATA MODULES

spong-server has a plugin and registry mechanism what provides a hook for access incoming status updates. Any data plugin modules placed into the SPONGHOME/lib/Spong/plugins directory will be loaded upon spong-server initialization. As each module it registers itself with the plugin registry (see the Developer Guide). There are no standard Server Data Modules. There are some sample modules in the contrib/plugins/spong-server directory of the Spong distribution. For more information in developing a Server Data Modules see the  spong-server module template documenation.

FILES

/usr/local/etc/spong/spong.conf
Configuration file. This contains variables that detail spong and OS specific definitions used by spong-server. See spong.conf for additional documentation.
/usr/local/etc/spong/spong.hosts
Host and human configuration file. This defines what hosts you are monitoring, and what human you should contact if there is a problem. See spong.hosts for additional documentation.
/local/www/docs/spong/status/
The directory where status information is saved. The files in this directory should be readable by your web server as spong-display using this information to generate the web pages that it displays.
/local/www/docs/spong/history/
The directory where history information is stored. The files in this directory should also be readable by your web server.
/local/www/docs/spong/notes/
The directory where host specific information is stored. For each host that you monitor, if there is a file in this directory with the same name as that host then that file will be displayed by spong-display when the user clicks on a specific host.

 

 


DEPENDENCIES

Perl v5.003 or greater is required.


BUGS

It is not sufficiently paranoid. It should probably perform more strict authentication to protect against bogus data.


SEE ALSO

the spong-network manpage , the spong-client manpage , the spong-message manpage , spong.hosts, spong.conf


AUTHORS


Stephen L Johnson (stephen.johnson@mail.state.ar.us) or (sjohnson@monsters.org), Unix System Administator, DIS - State of Arkansas
Ed Hill (ed-hill@uiowa.edu), Unix System Administrator, The University of Iowa

Based on code/ideas from Sean MacGuire (BB), and Helen Harrison (Pong).