]> git.etc.gen.nz Git - spong.git/commitdiff
added/updated documentation in perl pod format
authorStephen L Johnson <sjohnson@monsters.org>
Wed, 24 May 2000 20:59:45 +0000 (20:59 +0000)
committerStephen L Johnson <sjohnson@monsters.org>
Wed, 24 May 2000 20:59:45 +0000 (20:59 +0000)
src/spong-ack.pl
src/spong-cleanup.pl
src/spong-client.pl
src/spong-message.pl
src/spong-network.pl
src/spong-server.pl
src/spong-status.pl
src/spong.pl
src/www-spong-ack.pl
src/www-spong.pl

index b49e89d43940771fd17d413b6c9cc1076c7fccd9..4a2619d060191a1587d61147acfb272bf3349b0e 100755 (executable)
@@ -1,4 +1,26 @@
 #!@@PERL@@
+
+=head1 NAME
+
+B<spong-ack> - Spong acknowledgment tool
+
+=head1 SYNOPSIS
+
+B<spong-ack> [B<--debug>] [B<--batch>] host services time [message]
+
+B<spong-ack> [B<--debug>] B<--delete> ack-id
+
+=head1 DESCRIPTION
+
+When a spong evet occurs (or will occur), you can use this tool to acknowledge
+that you know that there is a problem. You can provide text that will be seen
+by others looking at the event (via a spong display program). You can specify
+at time limit that the problem will occur. If a problem has been acknowledged, you
+will no longer received notifications of the problem, and the display programs will
+show the status of the service as "blue".
+
+=cut 
+
 #
 # Spong acknowledgment tool.  When a spong event occurs (or will occur), you
 # can use this tool to acknowledge that you know there is a problem.  You can
@@ -291,3 +313,135 @@ _EOF_
    exit(0);
 }
 
+__END__
+
+=head1 OPTIONS
+
+=over
+
+=item B<--debug>
+
+Print debugging statements. This option can be specified while creating or deleting acks.
+
+=item B<--batch>
+
+Print the ack-id instead of the normal output. The primary use of this parameter
+is for scripts. An ack can be created when a job that runs causes a service to
+temporarily exceed it's normally limits, or if a service is taken down for an
+unknown or irregular length of time.
+
+=item B<--delete>
+
+Delete a previously created ack.
+
+=back
+
+Here is a descirption of the arguments for creating acks:
+
+=over
+
+=item host
+
+The host having the problem(s) you are acknowledging.
+
+=item service
+
+The service or services (seperated by ".") or I<all> services that your are 
+acknowledging.
+
+=item time
+
+The that the acknowledgement will late. This can be an offet "+1h, +3a,d +1w" or
+an absolute date and/or time indicator "12/25/1997 14:00:00. The date needs to be
+a 4 digit year, and the time needs to be in 24 hour format.
+
+=item message
+
+An optional message that will appear to those viewing the state of the host with a
+spong display program. If the value is "-", then the message will read from STDIN.
+
+=back
+
+Here is a description of the arguments for deleting acks:
+
+=over
+
+=item ack-id
+
+The acknowledgment id to delete. The id can be obtained by using the B<--batch>
+parameter when creating the acknowledgment, or by using the L<spong> command
+with the B<--brief> and B<--ack> parameters.
+
+=over
+
+=head1 CONFIGURATION
+
+=head2 Configuration Files
+
+B<spong-cleanup> reads the standard spong.conf and spong.conf.E<lt>hostE<gt>
+configuration files.
+
+=head2 Configuration Variables
+
+=over
+
+=item $SPONGSERVER
+
+The host that at least the L<spong-server> and L<spong-message>
+programs are running on. Typically the L<spong-network> program runs on that
+host as well.
+
+=item $SPONG_UPDATE_PORT
+
+This variable defines the port that the L<spong-server> update process listens
+on. If this variable is not defined on the I<$SPONGSERVER> host, the
+L<spong-server> update process will not be started.  The default value is 1998.
+
+=back
+
+=head1 FILES
+
+F<SPONGHOME/etc/spong.conf>, F<SPONGHOME/etc/spong.conf.E<lt>hostE<gt>>
+
+=head1 EXAMPLES
+
+   spong-ack mailhub.my-inc.com all '05/27/2000 06:00:00' 'Server is being upgraded'
+
+   spong-ack www5.my-inc.com http +1h 'Web server is randomly dying. Investigating.'
+
+In a shell script:
+
+  ...
+  HOST=`hostname`
+  ACKID=`spong-ack --batch $HOST cpu +8h 'Database exports are running'`
+  ...
+  # Database exports are done here
+  ...
+  spong-ack --delete $ACKID
+  ...
+
+=head1 DEPENDENCIES
+
+Perl v5.005_03 or greater is required.
+
+=head1 BUGS
+
+No know bugs.
+
+=head1 SEE ALSO
+
+L<spong-server>, L<spong.conf>, L<developer-guide>
+
+=head1 AUTHOR
+
+Stephen L Johnson <F<sjohnson@monsters.org>>
+
+=head1 HISTORY
+
+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.
+
+
index da5abe6aabecf858323fe2ffe97a85b20f3aee08..cd6d20db570202f98b9fc7bacff6b27789e57e78 100755 (executable)
@@ -1,4 +1,40 @@
 #!@@PERL@@
+
+=head1 NAME
+
+B<spong-cleanup> - perform nightly mantenance to the spong database
+
+=head1 SYNOPSIS
+
+B<spong-cleanup>
+
+=head1 DESCRIPTION
+
+This program performs routine, regular maintenace of the spong database.
+
+=over
+
+=item
+
+* Cleans out any history older then 7 days.  It moves the old history for
+each host into the L<$SPONG_ARCHIVE|spong.conf/"$SPONG_ARCHIVE"> directory.  If
+you don't think you would ever want to get at that history, then you can just
+change the script so that it is deleted.
+
+=item
+
+* Removes any acknowledgements that are no longer valid.
+
+=item
+
+* Removes any services that don't seem to be reported any more (if you
+stop monitoring something on a machine - the old entry will still hang around
+and show up as purple).
+
+=back
+
+=cut
+
 #
 # This program performs nightly maintanence to the spong database.  
 #
@@ -163,3 +199,75 @@ sub load_config_files {
       }
    }
 }
+
+__END__
+
+The B<spong-cleanup> program should be run every night as a cronjob. This will
+ensure that database queries are speedy especially the History Log displays.
+
+=head1 CONFIGURATION
+
+=head2 Configuration Files
+
+B<spong-cleanup> reads the standard spong.conf and spong.conf.E<lt>host<Egt>
+configuration files.
+
+=head2 Configuration Variables
+
+=over 
+
+=item $SPONGDB
+
+This defines the directory where the Spong database will be stored. Each host
+will have a subdirectory in this directory which is named for the host.
+
+=item $SPONG_ARCHIVE
+
+The directory where to put old history file entries for each host. Each host
+has it's own file in this directory.
+
+=item $OLD_HISTORY
+
+This is the number of days of history to keep for each host in the
+spong-server database. Any old history is append to the file for the host under
+the I<$SPONG_ARCHIVE> directory.
+
+=item $OLD_SERVICE
+
+This is the number of days to retain stale service status (i.e. purple
+status) entries in the spong-server database. Any service service status
+entries older than <$OLD_SERVICE> days old are deleted from the
+database.
+
+=back
+
+=head1 FILES
+
+F<spong.conf>, F<spong.conf.[hostname]>
+
+=head1 DEPENDENCIES
+
+Perl v5.005_03 or greater is required.
+
+=head1 BUGS
+
+None know bugs.
+
+=head1 SEE ALSO
+
+L<spong-server>, F<spong.conf>
+
+=head1 AUTHOR
+
+Ed Hill <F<ed-hill@uiowa.edu>>, Unix System Administrator, The University of
+Iowa
+
+Stephen L Johnson <F<sjohnson@monsters.org>>
+
+=head1 HISTORY
+
+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.
index c5fac2087e1d8053f0a1892928772d939c945486..23817ebce822840d134acf85185e2a3e46a9ef93 100755 (executable)
@@ -344,6 +344,30 @@ of the checks once then exit.  These flags can be used to run spong-client as a
 cron job (B<depreciated>), this reduced the effectiveness of the L<check_logs>
 module.
 
+=head2 Client Checks
+
+The checks are actually a set of modules that are called in series by
+B<spong-client>. The list of modules to run are defined in the I<$CHECKS>
+configuration variable. Upon initialization, B<spong-client> will load the
+modules defined in I<$CHECKS> from the F<LIBDIR/Spong/Client/plugins/>
+directory. As each modules is initialized, it registers itself with the the
+plugins registery (see the L<Developer Guide|developer-guide>). Spong comes
+with a standard set of client checks, see L<client-modules> for more
+information.
+
+=head2 Extending Functionality
+
+B<Depreciated>, please refer to the L<Client Modules|developer-guide/"Client Modules"> section of the Developer Guide.
+
+If you want to check some service which is not being checked by spong-client,
+then you can define a C<&check_local()> function in your
+config file (either in your standard L<spong.conf> config file or your host specific L<spong.conf.hostname>
+file - but not both!). That function can do anything you want, but at the
+end needs to call the C<&status()> function to report
+what you have found to the spong server.
+
+=head1 CONFIGURATION
+
 =head2 Configuration Files
 
 By default this reads the L<spong.conf|spong.conf> file on startup. You can
@@ -466,28 +490,6 @@ me know what OS you are running on, and what the correct value should be.
 
 =back
 
-=head2 Client Checks
-
-The checks are actually a set of modules that are called in series by
-B<spong-client>. The list of modules to run are defined in the I<$CHECKS>
-configuration variable. Upon initialization, B<spong-client> will load the
-modules defined in I<$CHECKS> from the F<LIBDIR/Spong/Client/plugins/>
-directory. As each modules is initialized, it registers itself with the the
-plugins registery (see the L<Developer Guide|developer-guide>). Spong comes
-with a standard set of client checks, see L<client-modules> for more
-information.
-
-=head2 Extending Functionality
-
-B<Depreciated>, please refer to the L<Client Modules|developer-guide/"Client Modules"> section of the Developer Guide.
-
-If you want to check some service which is not being checked by spong-client,
-then you can define a C<&check_local()> function in your
-config file (either in your standard L<spong.conf> config file or your host specific L<spong.conf.hostname>
-file - but not both!). That function can do anything you want, but at the
-end needs to call the C<&status()> function to report
-what you have found to the spong server.
-
 
 =head1 FILES
 
@@ -522,6 +524,6 @@ Stephen L Johnson <F<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 develop until version
-2.1. Stephen L Johnson took over development in October, 1999 with his changes
-which became Spong 2.5.
+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.
index a42518cd300a0ac811b8dfcddf7ec2dfa78e92eb..9d5f7463d8e9cd241d1176dbf15e85987a31ad6c 100755 (executable)
@@ -776,6 +776,8 @@ B<spong-message> alerts people via the messaging modules that are installed.
 New messaging functions can be easily created.  See the L<Message
 Modules|developer-guide/"Messaging Modules"> section in the I<Developer Guide>.
 
+=head1 CONFIGURATION
+
 =head2 Configuration Files
 
 =over
@@ -966,6 +968,6 @@ Stephen L Johnson <F<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 develop until version
-2.1. Stephen L Johnson took over development in October, 1999 with his changes
-which became Spong 2.5.
+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.
index d212fd9b175e4e0483db4eb157fef2ae54af2728..323b12043885c11261870a56e1415d667ecf7c72 100755 (executable)
@@ -583,6 +583,25 @@ The more detailed message contains information such as the output of
 the ping command from the check ping module or the data read after testing
 a network service.
 
+=head2 Network Checks
+
+The check are actually a setup of modules that are called in series by
+B<spong-network>. Upon initialization, B<spong-network> will load the all of
+the modules that will be used from the F<LIBDIR/Spong/Network/plugins>
+directory.  As each module is initialized, it registers itself with the plugins
+registry (see the L<Developer Guide|developer-guide>). Spong comes with a
+standard set of network check modules, see L<"network-modules> for more
+information.
+
+The list of network checks and the order the are performed that are performed
+for a host are defined in the I<services> attribute of the host's entry in the
+L<%HOST|spong.hosts/"%HOSTS"> variable. The I<ping> service is appended by
+default to all of the lists of services to be check for a host.  If the
+metaservice name of I<noping> is defined for a host, the ping check will no be
+done for the host.
+
+=head1 CONFIGURATION
+
 =head2 Configuration Files
 
 =over
@@ -660,23 +679,6 @@ is prependied to the list of services unless 'noping' is defined.
 
 =back
 
-=head2 Network Checks
-
-The check are actually a setup of modules that are called in series by
-B<spong-network>. Upon initialization, B<spong-network> will load the all of
-the modules that will be used from the F<LIBDIR/Spong/Network/plugins>
-directory.  As each module is initialized, it registers itself with the plugins
-registry (see the L<Developer Guide|developer-guide>). Spong comes with a
-standard set of network check modules, see L<"network-modules> for more
-information.
-
-The list of network checks and the order the are performed that are performed
-for a host are defined in the I<services> attribute of the host's entry in the
-L<%HOST|spong.hosts/"%HOSTS"> variable. The I<ping> service is appended by
-default to all of the lists of services to be check for a host.  If the
-metaservice name of I<noping> is defined for a host, the ping check will no be
-done for the host.
-
 =head1 FILES
 
 F<spong.conf>, F<spong.conf.hostname>, F<spong.hosts>
@@ -712,8 +714,8 @@ Stephen L Johnson <F<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 develop until version
-2.1. Stephen L Johnson took over development in October, 1999 with his changes
-which became Spong 2.5.
+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.
 
 
index 5dfb89ce0d5acad5dd24637af0b3f154ce5bcabb..430eb2a1e543d660b3daae4f76a4669f357a53d9 100755 (executable)
@@ -1,4 +1,26 @@
 #!@@PERL@@
+
+=head1 NAME
+
+B<spong-server> - save status information reported by spong programs
+
+=head1 SYNOPSIS
+
+B<spong-server> [B<--debug> I<n>] [B<--kill|--restart>] [F<config_file>]
+
+=head1 DESCRIPTION
+
+The B<spong-server> is the central core program of Spong. The program received
+status reports from various spong clients (specifically B<spong-network> and
+various B<spong-client> program running). If the message is worth notifying
+someone about, it calls the B<spong-message> program.  The status messages
+messages are stored into an internal datebase with significatnt changes being
+logged into a history event log. Queries from spong interface programs (like
+B<spong> and B<www-spong>) seeking to display the data in the B<spong-server)
+database.
+
+=cut
+
 #
 # This process splits into two processes.  The parent process listens at port
 # 1970 and responds to update requests.  It takes update information coming
@@ -1424,3 +1446,238 @@ sub load_data_funcs {
 
 }
 
+
+__END__
+
+=head2 Running the program
+
+You should start this program in you system startup file, and it should be
+running constantly. If no parameters are provided, B<spong-server> will
+fork and detach itself from the console to run as a daemon.
+
+If you provide the B<--debug> I<n> flag then debugging information will be
+printed to stderr. The I<n> is an integer from 1 to 9. A higher number means
+more verbosity in the debugging output.
+
+If you provide the B<--restart> flag, a signal will be sent to the
+B<spong-server> process that is currently running. It will release reload it's
+configuration and restart. If the B<--kill> flag if provided, a signal will
+be sent to the running B<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 F<spong.conf> configuration file.
+
+=head2 Theory of Operation
+
+The B<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 L<developer-guide/"Spong Update Message Format">), 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.
+
+=head2 Data Modules
+
+The B<spong-server> has a plugin module facility similar to the other
+Spong programs. One or more modules can be installed in the
+F<LIBDIR/Spong/plugins/> directory. The modules are loaded are run-time by
+B<spong-server>. As each module is initialized is registers itself with 
+the plugins 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
+tht 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 modiules are located in the F<contrib/plugins/spong-server>
+directory of the Spong distribution. The two modules (B<data_rrd_disk> and
+B<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
+B<Spong-RRD>  package (http://spong.sourceforge.net/downloads.html) for a
+complete package that utilizes data modules.
+
+=head2 Big Brother (BBSERVER) Emulation
+
+=head1 CONFIGURATION
+
+=head2 Configuration Files
+
+=over
+
+=item spong.conf
+
+By default this reads the L<spong.conf|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.
+
+=item spong.conf.[hostname]
+
+After reading the configuration file that you specify (or the default),
+it then reads the F<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.
+
+=item spong.hosts
+
+B<spong-server> reads all of the host that are idefined in the
+L<%HOSTS|spong.hosts/"%HOSTS"> variable in the L<spong.hosts> file.
+B<spong-server> uses this list of servers to validate incoming status and
+control messages.  And the list is used in format of database queries.
+
+=item spong.groups
+
+The L<spong.groups> file defines groups of hosts. B<spong-server> uses these
+host groups to filter and format the data returned in database queries.
+
+=back
+
+From F<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.
+
+=over
+
+=item $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.
+
+=item $SPONG_UPDATE_PORT
+
+This varirable defines the port that the Spong query process listens on. If
+this varirable is not defined the Spong query process will not be started. The
+default value is 1999.
+
+=item $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
+emluation process will not be started. The default value is 1984.
+
+=item $SPONGSLEEP (Depreciated)
+
+This variable is used by B<spong-server> to determine how old a service's 
+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.)
+
+=item $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
+I<$SPONGSLEEP{'DEFAULT'}> value. If no value is then found, B<spong-client>
+fall back to using $SPONGSLEEP.
+
+=item $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.
+
+=item $SPONGTMP
+
+The directory that Spong programs use for temporary store and work files. It
+should be different a directory than F</tmp> for operation and securiy reasons.
+
+=item $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.
+
+=item $SPONG_LOG_FILE
+
+If set to I<1>, B<spong-network> will log errors to a log file in I<$SPONGTMP>
+named F<spong-network.log>.
+
+=item $SPONG_LOG_SYSLOG
+
+If set to I<1>, B<spong-network> will log errors to the syslog using the
+I<USER> facility and the I<ERR> priority.
+
+=item $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
+B<spong-server> will terminated the connection. This action can be disables
+by setting the variable to zero (0).
+
+=item $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.
+
+=back
+
+From F<spong.hosts>:
+
+=over
+
+=item %HOSTS
+
+All of the host names defined in %HOSTS are the list of hosts that
+B<spong-server> will accept status messages for. Any status messsage for an
+unknown host will be logged as an error and discarded.
+
+= back
+
+From F<spong.groups>:
+
+=over
+
+=item %GROUPS
+
+The host groups that are defined in this variable are used to filter and 
+format data queries of the Spong database.
+
+=back
+
+=head1 FILES
+
+F<spong.conf>, F<spong.conf.hostname>, F<spong.hosts>, F<spong.groups>
+
+=head1 DEPENDENCIES
+
+Perl v5.005_03 or greater is required.
+
+=head1 BUGS
+
+No know bugs.
+
+=head1 SEE ALSO
+
+L<spong.conf>, L<spong.hosts>, L<spong.groups>, L<data-modules>, 
+L<developer-guide>
+
+=head1 AUTHOR
+
+Ed Hill <F<ed-hill@uiowa.edu>>, Unix System Administrator, The University of
+Iowa
+
+Stephen L Johnson <F<sjohnson@monsters.org>>
+
+=head1 HISTORY
+
+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.
+
+
index 7a64ac6e3e60c70dcc06807faed85cee00efea63..450fe00c68a99456a917118eb7a021fd80423c06 100755 (executable)
@@ -1,4 +1,26 @@
 #!@@PERL@@
+
+=head1 NAME
+
+B<spong-status> - send vaious type of messages to a spong-server
+
+=head1 SYNOPSIS
+
+ spong-status [--help]
+ spong-status [--ttl #] (--file name | --message "message text") CMD HOST
+              SERVICE COLOR "SUMMARY TEXT"
+ spong-status [--cmd cmd] --host name --service name --color color 
+              --summary text (--message text | -f filename) 
+              [--ttl seconds]
+
+=head1 DESCRIPTION 
+
+This program allows you to creat your own extern spong client programs or
+integrate existing monitoring program or scripts in Spong. B<spong-status>
+hids all of the details of the Spong Client/Server communication protocol.
+
+=cut
+
 #
 # This program can be used to send Status update messages to the Spong Server 
 # from shell scripts or other external programs. 
@@ -95,7 +117,7 @@ Usage: spong-status [--help]
        spong-status [--ttl #] (--file name | --message "message text") CMD HOST
                     SERVICE COLOR "SUMMARY TEXT"
        spong-status [--cmd cmd] --host name --service name --color color 
-                    --summary text (--message text | -f filename) 
+                    --summary text [--message text | -f filename] 
                     [--ttl seconds]
                    
 
@@ -138,3 +160,109 @@ sub load_config_files {
    }
 }
 
+__END__
+
+=head1 OPTIONS
+
+=item B<--help>
+
+Print the help text
+
+=item B<--cmd> I<status|page>
+
+Command type being sent to B<spong-server>. Defaults to 'status'.
+
+=item B<--host> I<NAME>
+
+Name of the host being reported.
+
+=item B<--service> I<NAME>
+
+Name of the service being reported.
+
+=item B<--color> <COLOR>
+
+Status color being reported. COLOR may be ``green'', ``yellow'', or ``red''.
+
+=item B<--summary> I<TEXT>
+
+Summary text to be reported.
+
+
+=item B<--ttl> I<SECONDS>
+
+Time to live of status report in seconds.
+
+=item B<--message> I<TEXT>
+
+Detailed message text being reported.
+
+=item B<--file> I<FILENAME>
+
+Detailed message info read from file FILENAME.  If FILENAME is S<'-'>, text is
+read from stdin.
+
+=back
+
+=head1 CONFIGURATION
+
+=head2 Configuration Files
+
+B<spong-cleanup> reads the standard spong.conf and spong.conf.E<lt>hostE<gt>
+configuration files.
+
+=head2 Configuration Variables
+
+=over 
+
+=item $SPONGSERVER 
+
+The host that at least the L<spong-server> and L<spong-message>
+programs are running on. Typically the L<spong-network> program runs on that
+host as well.
+
+=item $SPONG_UPDATE_PORT
+
+This variable defines the port that the L<spong-server> update process listens
+on. If this variable is not defined on the I<$SPONGSERVER> host, the
+L<spong-server> update process will not be started.  The default value is 1998.
+
+=back
+
+=head1 FILES
+
+F<SPONGHOME/etc/spong.conf>, F<SPONGHOME/etc/spong.conf.E<lt>hostE<gt>>
+
+=head1 EXAMPLES
+
+  spong-status --cmd status --host www.my-inc.com --service fping --color yellow
+            --summary "Host contacted. Response time more then 30 ms"
+            --file /tmp/fping.out
+
+  spong-status --tttl 86400 --message "Backup failed for /usr,/var" page
+            www.my-inc.com red backup "Backup failed"
+
+=head1 DEPENDENCIES
+
+Perl v5.005_03 or greater is required.
+
+=head1 BUGS
+
+No know bugs.
+
+=head1 SEE ALSO
+
+L<spong-server>, L<spong.conf>, L<developer-guide>
+
+=head1 AUTHOR
+
+Stephen L Johnson <F<sjohnson@monsters.org>>
+
+=head1 HISTORY
+
+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.
+
index a457d61acaaeef4168bc94621bf0bdb19d31be4a..3b7537e1bd6a4a0ed1c40efcaa154e96a1ccf202 100755 (executable)
@@ -1,4 +1,48 @@
 #!@@PERL@@
+
+=head1 NAME
+
+B<spong> - character based Spong client interface program
+
+=head1 SYNOPSIS
+
+=begin text
+
+    spong [--summary [hostlist] | --problems [hostlist] |
+              --history [hostlist] | --host host |
+              --services host | --stats host | --config host |
+              --info host | --service host:service]
+          [ --brief | --standard | --full ]
+
+=end text
+
+=begin html
+
+<b>spong</b> [--summary [hostlist] | --problems [hostlist] | --history
+[hostlist] | --host host | --services host | --stats host
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+| --config host | --info host | --service host:service ] [--brief | --standard
+| --full ]
+
+=end html
+
+=head1 DESCRIPTION
+
+The B<spong> program interfaces with the B<spong-server> to display the
+collected information; in text format. The B<spong> program does not have all
+of the functionality of the web-based interface. It's designed to be used from
+character based consoles. The B<spong> program doesn not have to load onto the
+same machine that spong-server is running on. You load this program onto any
+machine. It is a good ideal to load this onto machines, when possible, to allow
+the administrator of the machine to query the B<spong-server> when alert of
+received.
+
+When run with any parameters, spong will display a table that lists
+the hosts and services. All of the displays are text based with the legends
+at the top.
+
+=cut
+
 #
 # This program is used to display information collected by the spong server to
 # simple character based terminals.  It provides the same type of interface
@@ -212,3 +256,139 @@ sub load_config_files {
    }
 }
 
+__END__
+
+=head1 OPTIONS
+
+=over
+
+=item B<--summary> [I<HOSTLIST>]
+
+Summarize the status of hosts, in HOSTLIST, in a table that lists
+the hosts and services, and the current status is a single letter with
+the meaning defined in the ledgend at the top of the display. If I<HOSTLIST>
+if not specified all hosts defined in F<spong.hosts> are displayed.
+
+=item B<--problems> [I<HOSTLIST>]
+
+Shows a summary of all the problems (services that are red) for the all
+the hosts in <HOSTLIST>. If I<HOSTLIST> is not specified, all hosts defined
+in F<spong.hosts> are displayed.
+
+=item B<--history> [I<HOSTLIST>]
+
+Show history information for the the list of hosts in I<HOSTLIST>. If
+I<HOSTLIST> is not specified, all hosts defined in F<spong.hosts> are
+displayed.
+
+=item B<--host> I<HOST>
+
+Shows all information availiable for the given I<HOST>
+
+=item B<--services> I<host>
+
+Shows detailed service information for the given I<HOST>.
+
+=item B<--stats> I<HOST>
+
+Show statistical information for the given I<HOST>. (Not currently
+implemented.)
+
+=item B<--config> I<HOST>
+
+Shows configuration information for the given I<HOST>. (Not currenly
+implemented.)
+
+=item B<--info> I<HOST<
+
+Shows admin supplied text for the given I<HOST>.
+
+=item B<--service> I<HOST:SERVICE>
+
+Shows detailed information for the given HOST/SERVICE.
+
+=item B<--brief>
+
+Display output in a brief format.
+
+=item B<--standard>
+
+Display output in standard format (the default)
+
+=item B<--full>
+
+Display the maximum amount of information possible.
+
+=head1 CONFIGURATION
+
+=head2 Configuration Files
+
+By default the L<spong.conf> file is read on startup. It defines some specific
+variable that you probably don't need to override.
+
+After reading the configuration file, then reads the
+F<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.
+
+=head2 Configuration Variables
+
+Here are a list of variables in the spong.conf file that are applicable
+to the spong-server program:
+
+=over
+
+=item $SPONGSERVER
+
+The make of the server that spong-server is running on.
+
+=item $SPONG_QUERY_PORT
+
+The port number that spong-server listens at for database queries.
+
+=back
+
+=head1 FILES
+
+=over
+
+=item spong.conf
+
+Configuration file. This contains variables that detail spong and OS specific
+definitions used by spong-server. 
+
+=back
+
+=head1 DEPENDENCIES
+
+Perl v5.005_03 or greater is required.
+
+=head1 BUGS
+
+The B<--stats>, B<--config>, and B<--info> parameters are currently
+not implemented in the spong-server. When specified they will just generate
+a blank HTML page.
+
+=head1 SEE ALSO
+
+L<spong.hosts, L<spong.conf>
+
+ http://spong.sourceforge.net/  the Spong Home Page
+
+
+=head1 AUTHOR
+
+Ed Hill <F<ed-hill@uiowa.edu>>, Unix System Administrator, The University of
+Iowa
+
+Stephen L Johnson <F<sjohnson@monsters.org>>
+
+=head1 HISTORY
+
+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.
+
index e6b664925bb60b86e89ff406324b0c77b2fc19a5..0d2a6624c9b9f2b97d20a27403e012cd7fef5d30 100755 (executable)
@@ -1,4 +1,24 @@
 #!@@PERL@@
+
+=head1 NAME
+
+B<www-spong-ack> - WWW (CGI) based spong acknowledgment tool
+
+=head1 SYNOPSIS
+
+http://spong-server.my-inc.com/spong/www-spong-ack
+
+=head DESCRIPTION
+
+Then a spong event occurs (or will occur), you can use this tool to acknowledge
+that your know there is a problem. You can provide text that will be seen by others
+looking at the event (via a spong display program). You can specify a time limit
+that the problem will occur. If a probblem has been acknowledged, you will no longer
+receive notifications of the problem, and the spong display programs will show the
+of the service(s) as "blue".
+
+=cut
+
 #
 # WWW based spong acknowledgment tool.  When a spong event occurs (or will
 # occur), you can use this tool to acknowledge that you know there is a
@@ -548,4 +568,79 @@ _EOM_
    return "can not connect to spong server" if ! $ok;
 }
 
+__END__
+
+=head2 Theory of Operation
+
+The B<www-spong-ack> program is designed to interact with the L<www-spong> 
+Spong display program, but it the program can be used if it is invoked directly.
+
+When the program is initially invoked it will list all of the acknowledments at
+the top of the page in the "Current Acknowledgments" section. The host/service
+and the expiration date/time of the acks are displayed. A I<Delete> link is 
+provided for every ack. that will delete that particular ack. when selected.
+
+Below in the "New Acknowledgment" section is a form form for creating a new 
+acknowledgment. The hostname is selected from the drop-down box. The service(s)
+to be acknowledged is entered in service field. The duration of the event is
+entered in one of serveral formats into the duration field. Your e-mail addres
+should be entered into the e-mail address field. It is only used to show who
+created the ack. And a message about the aknowledgement can be entered.  Once
+all of the infomation is entered, press the 'Create' button to create the
+acknowledgement.
+
+=head1 CONFIGURATION
+
+=head2 Configuration Files
+
+B<spong-cleanup> reads the standard spong.conf and spong.conf.E<lt>hostE<gt>
+configuration files.
+
+=head2 Configuration Variables
+
+=over
+
+=item $SPONGSERVER
+
+The host that at least the L<spong-server> and L<spong-message>
+programs are running on. Typically the L<spong-network> program runs on that
+host as well.
+
+=item $SPONG_UPDATE_PORT
+
+This variable defines the port that the L<spong-server> update process listens
+on. If this variable is not defined on the I<$SPONGSERVER> host, the
+L<spong-server> update process will not be started.  The default value is 1998.
+
+=back
+
+=head1 FILES
+
+F<SPONGHOME/etc/spong.conf>, F<SPONGHOME/etc/spong.conf.E<lt>hostE<gt>>
+
+=head1 DEPENDENCIES
+
+Perl v5.005_03 or greater is required.
+
+A working web server that can run CGI programs.
+
+=head1 BUGS
+
+No know bugs.
+
+=head1 SEE ALSO
+
+L<spong-server>, L<spong-ack>, L<spong.conf>, L<user-guide>
+
+=head1 AUTHOR
+
+Stephen L Johnson <F<sjohnson@monsters.org>>
+
+=head1 HISTORY
+
+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.
 
index 4fd1f2f12e11250269333058503db895ede379ab..4c2b54ba728c11490c8f1cec57c888f59a1cc731 100755 (executable)
@@ -1,4 +1,50 @@
-#!/usr/bin/perl
+#!@@PERL@@
+
+=head1 NAME
+
+B<www-spong> - display spong system status via the web or general static HTML pages 
+of system status
+
+=head1 SYNOPSIS
+
+B<www-spong> [
+               S<B<--summary> [I<hostlist>] |>
+               S<B<--problems> [I<hostlist>] |>
+               S<B<--history> [<hostlist>] |>
+               S<B<--host> I<host> |>
+               S<B<--services> I<host> |>
+               S<B<--stats> I<host> |>
+               S<B<--config> I<host> |>
+               S<B<--info> I< host> |>
+               S<B<--service> I<host:service>>
+             ]
+             S<[--brief | --standard | --full ]>
+
+=head1 DESCRIPTION
+
+The B<www-spong> program interfaces with the spong-server to display the
+collected information in HTML format. B<www-spong> can be run in two modes: as
+a CGI program and from the command line.
+
+When run as a CGI program it does not have to loaded onto the same machine that
+spong-server is runnning. It queries the spong-server through it's query port.
+it will display information via a web page that reloads itself at regular
+intervals. When run with no parameters it created a page with two or three
+frames. In tree frames mode there will be a top title frame spanning the entire
+page thas has an action bar to switch views. The remain frames are displayed
+below.  The left frame displays a summary of systems along with their
+associated problems (services that are red). The right panel is a table that
+lists the hosts and services, and the current status is a colored block or an
+icon depending on how spong-server is configured.  For further information on
+how to use the web interface see <Users Guide|user-guide>.
+
+When run from a command line, www-spong generates HTML pages that are printed
+to the console. This mode can be used to generate static HTML pages.  If
+www-spong is run without any parameters a page that contains a summary display
+for all hosts is generated.
+
+=cut
+
 #
 # This program is used to display information collected by the spong server to
 # people using web based clients.  This provides the same type of interface to
@@ -773,3 +819,150 @@ _EOM_
    return "<font color=red><b>Can't connect to spong server!</b></font>";
 }
 
+__END__
+
+=head1 OPTIONS
+
+=over
+
+=item B<--summary> [I<hostlist>]
+
+Summarize the status of hosts, in hostlist, in a table that lists
+the hosts and services, and the current status is a colored block or an
+icon depending on how spong-server is configured. If hostlist if not specified
+all hosts defined in spong.hosts are displayed.
+
+=item B<--grp-summary> 
+
+Summary the status of all by Host Groups defined in the L<spong.groups> file.
+Each Host Group is displayed in a table that lists the hosts and services, and
+the current status is a colored block or an icon depending on how spng-server
+is configured.
+
+=item B<--problems> [I<hostlist>]
+
+Shows a summary of all the problems (services that are red) for the all
+the hosts in hostlist. If hostlist is not specified, all hosts defined
+in spong.hosts are displayed.
+
+=item B<--grp-problems>
+
+Shows a summary of all of the problems (services that are red) for all Host Groups
+defined in the L<spong.groups> file.
+
+=item B<--history> [I<hostlist>]
+
+Show history information for the the list of hosts in hostlist. If host
+list is not specified, all hosts defined in spong.hosts are displayed.
+
+=item B<--host> I<host>
+
+Shows all information availiable for the given host.
+
+=item B<--services> I<host>
+
+Shows detailed service information for the given host.
+
+
+=item B<--stats> I<host>
+
+Show statistical information for the given host.
+
+=item B<--config> I<host>
+
+Shows configuration information for the given host.
+
+=item B<--info> I<host>
+
+Shows admin supplied text for the given host.
+
+=item B<--service> I<host:service>
+
+Shows detailed information for the given host/service.
+
+=item B<--brief>
+
+Display output in a brief format.
+
+=item B<--standard>
+
+Display output in standard format (the default).
+
+=item B<--full>
+
+Display the maximum amount of information possible.
+
+=back
+
+=head1 CONFIGURATION
+
+=head2 Configuration Files
+
+By default the L<spong.conf> file is read on startup. It defines some specific
+variable that you probably don't need to override.
+
+After reading the configuration file, then reads the
+F<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.
+
+=head2 Configuration Variables
+
+Here are a list of variables in the spong.conf file that are applicable
+to the spong-server program:
+
+=over
+
+=item $SPONGSERVER
+
+The make of the server that spong-server is running on.
+
+=item $SPONG_QUERY_PORT
+
+The port number that spong-server listens at for database queries.
+
+=back
+
+=head1 FILES
+
+=over
+
+=item spong.conf
+
+Configuration file. This contains variables that detail spong and OS specific
+definitions used by spong-server.
+
+=back
+
+=head1 DEPENDENCIES
+
+Perl v5.005_03 or greater is required.
+
+=head1 BUGS
+
+The B<--stats>, B<--config>, and B<--info> parameters are currently
+not implemented in the spong-server. When specified they will just generate
+a blank HTML page.
+
+=head1 SEE ALSO
+
+L<spong.hosts>, L<spong.conf>, L<user-guide>
+
+ http://spong.sourceforge.net/  the Spong Home Page
+
+=head1 AUTHOR
+
+Ed Hill <F<ed-hill@uiowa.edu>>, Unix System Administrator, The University of
+Iowa
+
+Stephen L Johnson <F<sjohnson@monsters.org>>
+
+=head1 HISTORY
+
+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.
+