spong-server
spong-server - save status information reported by spong programs
spong-server [--debug n] [--kill|--restart] [config_file
]
The spong-server is the central core program of Spong. The program received
status reports from various spong clients (specifically spong-network and
various spong-client program running). If the message is worth notifying
someone about, it calls the spong-message program. The status messages
messages are stored into an internal database with significant changes being
logged into a history event log. Queries from spong interface programs (like
spong and www-spong) seeking to display the data in the spong-server
database.
You should start this program in you system startup file, and it should be
running constantly. If no parameters are provided, spong-server will
fork and detach itself from the console to run as a daemon.
If you provide the --debug n flag then debugging information will be
printed to stderr. The n is an integer from 1 to 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-server process that is currently running. It will release reload it's
configuration and restart. If the --kill flag if provided, a signal will
be sent to the running spong-server process causing it to exit.
An alternate configuration file can be specified on the command line. This
file will be read instead of the default spong.conf
configuration file.
The spong-server has a main process that spawns a number of child processes
to handle all of the work. There are a query process which handles queries into
the Spong database, an update process which handles Spong formatted update
messages (see the section on SPONG PROTOCOL in the developer-guide manpage), a BBSERVER
update process which handled Big Brother client update messages, and possibly
other process are more feature are added in the future. The main process
monitors each of the child processes. It will restart any child process that
dies for any reason.
Each time a connection comes in, the child process is forks off to handle the
the above tasks. The main child process goes back to waiting for more
connections.
The spong-server has a plug-in module facility similar to the other
Spong programs. One or more modules can be installed in the
LIBDIR/Spong/plugins/
directory. The modules are loaded are run-time by
spong-server. As each module is initialized is registers itself with
the plug-ins registry.
Each module is called in turn after all of the normal processing is done for
incoming status messages. This allows you access to data of a status message
that will eventually be discarded. Data modules can do virtually anything that
you desire with the incoming data. The data can be written to a log or
database or feed to another application for further filter or processing.
Two sample data modules are located in the contrib/plugins/spong-server
directory of the Spong distribution. The two modules (data_rrd_disk and
data_rrd_la work in conjunction with a software package named RRD Tool to
log disk and cpu information into Round Robin Databases. The modules are
included as examples. They are not of must use by themselves. See the
Spong-RRD package (http://spong.sourceforge.net/downloads.html) for a
complete package that utilizes data modules.
- spong.conf
- By default this reads the spong.conf 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.
- spong.conf.[hostname]
- 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
configuration settings.
- spong.hosts
- spong-server reads all of the host that are defined in the
%HOSTS variable in the the spong.hosts manpage file.
spong-server uses this list of servers to validate incoming status and
control messages. And the list is used in format of database queries.
- spong.groups
- The the spong.groups manpage file defines groups of hosts. spong-server uses these
host groups to filter and format the data returned in database queries.
From spong.conf
:
Yes there are a lot of variables. But all of the variables have defined
default values. Most of these variables are used customizing the client
web and text interfaces.
- $SPONG_UPDATE_PORT
- This variable defines the port that the Spong update process listens on. If
This variable is not defined the Spong update process will not be started.
The default value is 1998.
- $SPONG_UPDATE_PORT
- This variable defines the port that the Spong query process listens on. If
this variable is not defined the Spong query process will not be started. The
default value is 1999.
- $SPONG_BB_UPDATE_PORT
- This variable defines the port that the Big Brother BBSERVER emulation
process listens on. If this variable is not defined the Big Brother BBSERVER
emulation process will not be started. The default value is 1984.
- $SPONGSLEEP (Depreciated)
- This variable is used by spong-server to determine how old a service
status can be before it is considered stale. It's status will be reported
as 'purple'. The exact time to live a message is 2 * $SPONGSLEEP. (This
variable is depreciated in favor of the new $SPONGSLEEP{} variables.)
- $SPONGSLEEP{'DEFAULT'}, $SPONGSLEEP{'spong-server'}
- This the new method for specifying the $SPONGSLEEP interval for Spong programs.
If there is not $SPONGSLEEP{} entry for the program, it will use the
$SPONGSLEEP{'DEFAULT'} value. If no value is then found, spong-client
fall back to using $SPONGSLEEP.
- $SPONGDB
- This defined the directory where the Spong database will be stored. Each host
will have a subdirectory in this directory which is named for the host.
- $SPONGTMP
- The directory that Spong programs use for temporary store and work files. It
should be different a directory than
/tmp
for operation and security reasons.
- $SPONGSTATUS
- If this variable is set to 1, it will enable the storing of the update
status message information for each event that is generated in the history
log. This status message information is access via the web interface by
click on the status color or icon link of an event in a History Listing.
- $SPONG_LOG_FILE
- If set to 1, spong-network will log errors to a log file in $SPONGTMP
named
spong-network.log
.
- $SPONG_LOG_SYSLOG
- If set to 1, spong-network will log errors to the syslog using the
USER facility and the ERR priority.
- $SPONG_SERVER_ALARM
- This variable defined the maximum amount of time (in seconds) that a incoming
connection of a status message can last. Once the time limit is exceeded
spong-server will terminated the connection. This action can be disables
by setting the variable to zero (0).
- $WWW_FQDN
- Set this variable to 1 to display the fully qualified domain name (FQDN) of
hosts in Spong client displays. Otherwise only the first element of the FQDN
will be displayed.
From spong.hosts
:
- %HOSTS
- All of the host names defined in %HOSTS are the list of hosts that
spong-server will accept status messages for. Any status message for an
unknown host will be logged as an error and discarded.
From spong.groups
:
- %GROUPS
- The host groups that are defined in this variable are used to filter and
format data queries of the Spong database.
spong.conf
, spong.conf.hostname
, spong.hosts
, spong.groups
Perl v5.005_03 or greater is required.
No know bugs.
the spong.conf manpage, the spong.hosts manpage, the spong.groups manpage, the spong-server-mod-template manpage,
the developer-guide manpage
Ed Hill <ed-hill@uiowa.edu
>, Unix System Administrator, The University of
Iowa
Stephen L Johnson <sjohnson@monsters.org
>
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.
[Top]
Generated by Pod::HTML 0.41 on Wed Nov 29 21:02:23 2000