This is the changes for the the enhacements that I have been adding into Spong. You can pick up this file at http://monsters.org/pub/spong/CHANGES. You can pick up the latest spong version from: http://monsters.org/pub/spong/spong.tar.gz Stephen L Johnson Spong 2.7.5 06/07/01 - fixed logic bug in add_contact() routine with group recipients not being expanded - spong-message.pl 05/25/01 - fixed problem with stop_after flag not being reset on servics after a flagged service - spong-network.pl Version 2.7.4 05/07/01 - commiting various odl changed to CVS 04/20/01 - fixed misplaced brace in my previous fix for spong-message.pl 04/16/01 - fixed problem with contacts not being added to FIFO properly spong-message.pl. It broke delay/repeat notifications. 04/16/01 - fixed array compare bug in load_config_files() routines. Added missing parens. (Thanks to John Faichney ) files - www-spong.pl www-spong-ack.pl wap-spong.pl spong-server.pl spong-network.pl 04/12/01 - fixed bug in check_ntp module with $/ (record seporater) var being undef'ed and not restored. 03/26/01 FIXED - fixed wrong directory path bug of first_run logic in messaage_user (thanks to Christophe Delmon for the fix). spong-server.pl FIXED - fixed problem with sigmask not being cleared in restarted master processes in spong-server. (thanks to Christophe Delmon for the fix) FIXED - added wml_escape() around $summary in display_wml(). (thanks to Christophe Delmon for the fix) SPONGLIB/Spong/Service.pm Version 2.7.3 02/08/01 FIXED - replace wrong file version of spong-network in CVS tree 01/30/01 FIXED - Fixed problem with using month time for for minute field in BB emulation in spong-server. 01/19/01 FIXED - Fixed bug in 'skip_network_checks' flag logic, wrong variable name in spong-network.pl 01/17/01 FIXED - Added new check for /octets from/ from the Mandrake 7.2 ping command. file - /lib/Spong/Network/plugins/check_ping 01/08/01 CHANGED - Stephen Carpenter's 'stop_after' flag patch has been modified in spong-network.pl. The skipped service checks in the 'services' list will not be flagged with the new 'clear' status if the flagged service check fails. 01/07/01 CHANGED - Purple virtual statuses are now converted to real a status by the spong-server. Once a status is converted it a history event is generated for the host. (Thanks to Christophe Delmon for the patches). ADDED - A new status clear/not-available has been added. This is used to indicated that the status of service is not currenly available. Files - spong-server.pl lib/Spong/HistoryList.pm lib/Spong/HistoryService.pm lib/Spong/Service.pm lib/Spong/ServiceList.pm lib/Spong/HostGroups.pm lib/Spong/HostList.pm Version 2.7.2 01/06/01 FIXED - Fixed problem in Status.pm perl module about a missing alarm(0) when the module die's after an unsuccessfull socket creation. (Thanks for David Bronder finding the problem.) 01/04/01 UPDATED - The Status.pm module now allows you to specify multple Spong Servers along with the upate process port number. The full syntax is spong-server1[:port] [spong-server2[:port] ...] 12/30/00 CHANGED - Changed add_contact() procedure logic to not add actual 'group' contact on contacts FIFO. files - spong-message.pl ADDED - Added new 'last_if_match' attribute flag for messaging rules. If this attribute is set to '1' for a rules and it matches, the rules scanning engine will quit processing. The effect is to temporarily set $RULES_MATCH to "FIRST-MATCH" for that particular rule. files - spong-message.pl 12/24/00 ADDED - Added printing of new 'name' attribute of message rules to --debug output. Added help() procedure to print out program usage. files - spong-message.pl 12/21/00 ADDED - Added a new attribute flag 'skip_network_checks' for the spong.hosts config file. It is for the spong-network program. When set for a host, spong-network will skip all of the testing for that host. FIXED - Fix problem in the Makefile with a 'tmp' dir not being created in 'make client' directory. CHANGED - Added enhanced section of testing $MESSAGING_RULES with spong-message program in the spongfaq.pod question #3. 12/20/00 ADDED - Added exclude_color / exclude_status matching to the spong-message matching rules. You can specify one or more status color to exclude on. (thanks to John Wingenbach for the changes) ADDED - Added ignore_interface facility to check_interfaces spong-network module. This change allows you to specify one or more network faces to ignore on a host. (Thanks to Joe for the changes.) FIXED - Fix a slight logical problem with the check_interfaces spong-network module. And added a slight enhancement to the summary line. It will now return the number of interfaces that are down. (Thanks to Duncan Sargeant for the changes) ADDED - Added per service downtimes for spong.hosts file. Services are specified by a 'down:servicename' attribute in the host entry in spong.hosts. (Thanks to Andrew Ruthven for the patch) FIXED - Fixed syntax error in /lib/Spong/Host.pm module with the $WWW_PROB_ACTIONBAR actionbar generation code. (Thanks to Andrew Ruthven for the fix) 12/19/00 CHANGED - Added code in spong-server.pl to send "message" field of status message to spong-message program when notifications are sent. FIXED - Fixed problem in spong-message.pl with message throttling and contacts that are hashes. (Thanks to Michael Brown for the patches) FIXED - Fixed problem in spong-server.pl with SEND_MESSAGE = CHANGE mode. Notifications were being sent out if status was green and it was the first status update. (Thanks to Michael Brown for the patches) ADDED - Added "group" attribute for %HUAMNS entries. It allows a group of users to be specified. The change handles contact hashes properly. Read the documentation in the spong.hosts documentation for more info. (Thanks to Michael Brown for the patches). CHANGED - removed the pingecho() from check_ping spong-network module. And fixedalarm() timer problem with eval{} block. ADDED - (EXPERIMENTAL!!!) Added code to spong-network.pl to allow remaining tests for a host to be skiped if a flagged check(s) fail. Append a ":" to service name as the flag. Skipped tests will eventually turn purple. This is the first step of this modification. (Thanks to Stephen Carpenter ) FIXED - Fixed timer problem in tcp_check() when running spong-network under perl debugger. 12/18/00 FIXED - A couple of syntax bugs squish from new code transplanted from test programs. Effected spong-network.pl and spong-serer.pl. 12/15/00 A belated thanks goes out to Stephen Carpenter for patches to the check_processes spong-client module 05/2000. His changes made the module more effecient and quicker. I missed documenting his patch in this CHANGES file. CHANGED - Put '^' into regexp matches instead of modifying pattern variable. This avoids spurious ^s in the output. (Thanks to Michael Brown for the patch.) ADDED - Added code in History.pm module to display full host name if HISTORY_FQDN variable is set to 1. Updated spong.conf.pod documentation. (Thanks to Michael Brown for the patch) ADDED - Added --test param to spong-server which is passed to spong-message which skips the actual send of notifications (Thanks to Michael Brown for the patch ) 12/14/00 FIXED - Added code for maintain group names in order groups in the spong.groups config file. Group names order is now preserved in Host Goups displays. Files affect are spong-server.pl and SPONGLIB/HostGroups.pm. 11/30/00 FIXED - Added default message template in spong-message.pl if a default template is not found in spong.message config file. 11/29/00 CHANGED - Added code in check_http, check_interfaces and check_snmp use new spong.hosts host specific parameters. And added $Id: CHANGES,v 1.60 2001/06/13 16:12:24 sljohnson Exp $ RCS keyword. ADDED - Added wml_escape() in Service.pm module to escape WML format characters for display_wml() procedure. (Thanks to Christophe Delmon ) FIXED - Fixed problem in spong-server with save_ack and del_ack being called when an acknowledgment is deleted. (Thanks to Christophe Delmon ) Version 2.7.1 11/21/00 ADDED - Added code to www-spong.pl to default $WWW_TITLE_FRAME if not defined 11/14/00 ADDED - Added ability to adjust size of Top Frame of www-spong in 3 frame mode files - src/www-spong.pl config/spong.conf.in config/spong.conf.sample 11/06/00 FIXED - Fixed bug with $SPONGSLEEP defaulting to 300 in spong-server. moved sleep code to after loading of config files. (Thanks to David Bronder) FIXED - Fixed parsing bug with hostnames containing '-' in www-spong-ack. (thanks to David Bronder) 11/07/00 FIXED - Fixed problem with missing RPCINFO commands in spong.conf.* files. added -s in solaris ping command CHANGED - Add check_process changes by John Wingenbachm along with added optional critical counts for processes ( e.g. ['regexp:cnt','regexp:cnt'] ) CHANGED - Changed chown commands in Makefile to chown / chgrp command pairs FIXED - Fixed problem with check_http Network module in HTTP/1.1 check for problem in IIS running virt server but not to serve under it's FQDN (thanks to David Bronder Version 2.7.0 Changes 10/26/00 FIXED - Fixed a bug with the new host group 'display' attribute code in HostGroup.pm 10/17/00 FIXED - Miscellenous Makefile/make syntax and spelling errors 10/13/00 ADDED - Added initial Makefile install support. 09/25/00 ADDED - Added initial support for a WAP based interface. WAP display program is still very beta but usable. 09/19/00 FIXED - Fixed problem with check_telnet network module. check was croak'ing on errors. changed errmode() to 'return' go that errors are returned properly. 09/15/00 ADDED - Added check_telnet spong-network modules into CVS CHANGED - Various documentation updates to POD documentation 09/14/00 ADDED - Added /pod/builddoc program to build Spong documentation from all POD sources in the distribution. 09/13/00 CHANGED - Replace check_dns spong-network modules with one that doesn not use Net::Ping. It uses nslookup or dig to do the actual query. CHANGED - Update the spong.conf. files with the new $DNSCMD config variable. 09/01/00 CHANGED - Removed POD documetation from /src/*.pl source files to seperate files in /pod. 08/21/00 CHANGED - Changed WWWSPONG and WWWACK defaults in the spong.conf file by removing the "http://hostname/". It's not really needed. 08/21/00 UPDATED - Updated spong-client module to handle multiple mail queue directory capability of sendmail version 8.10 and higher. If spong.conf variables $MAILQ_SUBQ_WARN and $MAILQ_SUBQ_CRIT are defined, check_mailq will warning and critical counts checks for each queue directory. 08/15/00 CHANGED - Changed SendMsg to handle multiple servers in $SPONGSERVER variable. Port numbers can also be specified as a part of the host names. New syntax for $SPONGSERVER is now "hostname[:port] hostname2[:port] ...". If ":port" is not specified the the port will default to the $port variable passed in the function calls. 08/02/00 CHANGED - Changed status, event and page functions in /lib/Spong/Status.pm module to called a common SendMsg routine to send message. Updated error reporting to use main::error() routine. 07/28/00 UPDATED - Update question 2 in spongfaq.pod file with $HOST = "hostname" in spong.conf option 07/26/00 CHANGED - Various files. All other code that displays a date and/or a time have been changed to use the new DATETIMEFMT, DATEFMT, TIMEFMT, TIMEFMTNOSEC configuration varirables of the spong.conf file. These formatting varirables are strings that have strftime() presentation symbols to format the date and time to your local standards. Check out the defaults in the default spong.conf file. They are setting for North American Date and Time formats (i.e. Month / Day / Year for dates). Thanks to Andrew Ruthven for the patch that did most of the work. 07/25/00 CHANGED - Changed escalation code in spong-network to not report downgraded 'red' statuses until after the re-checks. The final status state is reported to spong-server. 07/23/00 CHANGED - In spong-network changed check_tcp function to use socket,bind,connect code to check sockets. Added better code to return error code text to caller. 07/20/00 FIXED - added missing msg template code for 'contact:module' formatted contacts. (Thanks to Scott Hebert ) 07/13/00 CHANGED - Updated spong-client and spong-server to use the $SPONGSLEEP{} has to allow for customizing sleep times on a per program basis. 07/12/00 UPDATED - Minor documentation updates. Especially the note in spong.groups about not have to put hosts as members of the 'all' host group. 07/08/00 ADDED - Adding message templates functionality to spong-message. Check spong.message config file for details. files - src/spong-message.pl config/spong.message CHANGED - Modified the messaging modules to use the new API calls from spong-message. files - lib/Spong/Message/plugins/* CHANGED - Update spong.message with new message templates section. CHANGES - Updates spong.conf with new DATEFMT, TIMEFMT and DATETIMEFMT variables for user configurable date and times formats using strftime formatting variables. 06/26/00 CHANGED - Various documentation updates and format conversion to POD. 06/02/00 FIXED - problem in spong-network with $color not being set if service is down when program starts up. 05/14/00 ADDED - Add updated documentation to spong-network.pl in pod format. 05/12/00 FIXED - save_status() function into spong-server didn't allow host names wot upper case letters. (Thanks to supermathie from SourceForce) 05/09/00 ADDED - Text displays code for all modes into HostGroups.pm. (Thanks to Andrew Ruthven for the changes) ADDED - Added code into spong text client interface program to call new text display code of HostGroup.pm. The new parameter is --grpsummary. (Thanks to Andrew Ruthven for the changes) 05/04/00 FIXED - Fixed some problems with my debugging code in the check_snmp and check_interfaces spong-network modules. The modules would never recover from reporting after an error. Every after would be reported as an error. ADDED - Added patch to HostGroups.pm by Andrew Ruthven that added a neat brief html view to the Host Groups Summary display. www-spong --brief --grp-summary or .../www-spong/brief/grp-summary/ (URL command string) 05/03/00 CHANGED - Perl POD format documenation was added to the check_snmp and check_interfaces modules. You can now use pod2man, pod2text, or any other pod convertor to get documenation on the modules. ADDED - Added check_snmp contributed by "mike bayliss" . I added some more error checking code for SNMP sesion problems and make the sysObjID check optional. SNMP Community names can be added to host entries in the spong.hosts file using the 'snmp_community' attribute name. The default community is 'public'. The sysObjID check can be enabled by adding an 'expect_objid' attribute to the host's entry in %HOSTS in spong.conf. FIXED - Fixed problem in spong-network where service that were previously down their status's where downgraded to yellow for the next cycle instead of remaining red. And critical count for services where not being reset at the start of the main check loop. 05/02/00 ADDED - Added check_interfaces contributed by "mike bayliss" . I added some more error checking code for SNMP sesion problems. SNMP Community names can be added to host entries in the spong.hosts file using the 'snmp_community' attribute name. The default community is 'public'. 04/21/00 FIXED - Fixed problem with Time::HiRes module on system where it's not installed. CHANGED - Changed the problem escalation code to be a subloop to will recheck services that check as down. The services will be reported as a warning (yellow) until they fail $CRIT_WARN_LEVEL times. The retry sleep interval if seperately configurable. 04/18/00 ADDED - Added support for noping via a routine that munges the $services field in the %HOSTS array. 04/16/00 CHANGED - removed Net::Ping from spong-network, moved it to check_ping module. added support to use Time::HiRes module if loaded. reactived problem esclation code in spong-network. Changed check_tcp routine to use increasing timeouts instead of a flat 10 second timeout. Made check_tcp to report reson why service is down (time out or service refused). 04/04/00 FIXED - wasn't closing duplicate $client and $sock file handles in all forking code in spong-server CHANGED - renamed 'overview' functions and parameters to 'grp' to reflect 'group' view name in spong-server and www-spong 04/03/00 CHANGED - listen_for_queries(), listeb_for_updates() and list_for_bb_updates() processes have been changed to use fork()'ing to handle incoming connections. 03/14/00 ADDED - listen_for_queries() routine now updates it's master list of services from the database every 15 minutes. FIXED - Fixed status color order in %COLORS hash. (thanks to "mike bayliss" ) ADDED - Enchanced Error logging with Spong::Log modules. Parameter processing now uses Getopt::Long. Program will about if another instance of the program is already running. Current program status is written to $0 to show up in ps command displays. files - spong-network spong-client FIXED - Call to Spong::Logger->new() in open_error_log() was missing logopt parameter in module lib/Spong/Log.pm. 03/13/00 ADDED - Added three frame mode for www-spong. Added tool bars for title frame, and hosts in problem display (left frame). files - www-spong lib/Spong/Host.pm config/spong.conf ADDED - Added RedHat 6.x boot scripts to the contrib directory. 03/09/00 FIXED - fixed misspelling of breif.html in lib/Spong/Info.pm module (thanks to Andrew Ruthven ) CHANGED - enchacement to spong-message to enable mulitple services to be placed in Spong Acks (thanks to Brian Jared ) 03/06/00 FIXED - the background color of CELLS where invalid if WWW_USE_IMAGE = 0 files - lib/Spong/HostGroups.pm 03/01/00 FIXED - added to build to chmod 755 to /lib/Spong/ directories (thanks to "Eric D. Christensen" ) 02/29/00 FIXED - added fix for repeated notifications for contacts with a 'delay' attributed defined in spong-message FIXED - added default value to $WWW_DEFAULT_VIEW if it is not defaulted in spong.conf file file - www-spong FIXED - moved calling to already_running() to handle_signals() because the signals parmas could not be used in spong-server FIXED - added code to clear out the signal mask in spong-netowrk, spong-client and spong-server in case the process inherits a blocked signal (thanks to "mike bayliss" ) 02/23/00 FIXED - fixed problem in HostList.pm where host URL's in display_html() are invalid when WWW_FQDN = 0 (Thanks to "mike bayliss" ) ADDED - added interactive functions for host group overview web displays 02/20/00 ADDED - added display_problem() function to HostGroups.pm modules file - lib/Spong/HostGroups.pm spong-server www-spong FIXED - added eval block around status() to prevent program from dying if it can't connect to spong-server ADDED - added support for 'page' message type to spong-status. file - spong-status lib/Spong/Status.pm FIXED - Added eval block around status() function to prevent program aborts if spong-server can't be contacted. file - lib/Spong/Status.pm FIXED - removed use Data::Dumper; statement from Host.pm file - lib/Spong/Host.pm 02/08/00 ADDED - Added time to live parameter for status update messages. files - spong-server lib/Spong/Status.pm ADDED - Added new spong-status program to allow update messages to be sent to Spong server from scripts and other programs. files - spong-status ADDED - Added new message type "event". This is similar to a 'status' message, except an event message is only written to a host's history. files - spong-server spong-status lib/Spong/History.pm 02/07/00 ADDED - Added initial support for a new Overview displays. This command displays statuses by Host Groups. Currenly on standard type views are supported. files - lib/Spong/HostGroup.pm lib/Spong/HostList.pm cgi-bin/www-spong bin/spong-server 01/30/00 FIXED - change print line in debug() method to print to STDERR instead of STDOUT. file - lib/Spong/Log.pm 01/30/00 FIXED - spong-client.pid was being deleted instead of spong-network.pid if --nosleep was specified. files - bin/spong-network.pl 01/03/00 FIXED - fixed problem with np_file deletion logic when $SEND_MESSAGE = "RED". 01/24/00 ADDED - New logging modules created. Logger is a generic logging class that can log to syslog, stderr, stdout, and a file. Log is modules to encapsulate all of the debug, error, and logging routines for spong program file - lib/Spong/Logger.pm lib/Spong/Log.pm 01/25/00 CHANGED - Modified spong-server to use the new Log module and enhanced logging routines. The --debug pararm now has an optional "debuglevel" option to control the level of debugging output. "debuglevel" is an integer that ranges from 1-9. 01/25/00 CHANGED - Modified spong-server to use Getopts::Long for parameter parsing. parameters are no longer position dependent. 01/24/00 FIXED - Fixed bug in services() and service_objects() method of ServiceList class. They were returning undef instead of a null list if there are no service status files. 01/13/00 FIXED - hostname and service name were not being added to www-spong-ack URL on Service Display web page. files - lib/Spong/Service.pm 01/06/00 FIXED - notification bug in spong-message where contacts without messaging method would no receive notifictions. 01/06/00 CHANGED - The debug loggin code in spong-message has been changed to allow the user to select how verbose the debugging output is. 01/04/00 CHANGED - Code for spwaning and handling child processes in spong-server has been rewritten. Update proceses can now be selectivedly turned off. The new code will make scaling up easier. 12/28/99 ADDED - The status updates associated with History entries are now kept. They are displayed by clicking the color icon or block in the first columns of the History Display web page. It is controlled by the $STATUS_HISTORY variable in spong.conf file. files - lib/Spong/HistoryService.pm lib/Spong/Service.pm lib/Spong/History.pm spong-server www-spong etc/spong.conf 12/27/99 ADDED - Added status summary line to image ALT text attribute to web pages using IMAGES. On most browsers this will display the status summary line in a popup window when the pointer is over the status icon. files - lib/Spong/HostList.pm Version 2.6 Changes 12/08/99 ADDED - Added data plugin mechanism to spong-server. This is a hook to the service status update to be used by output programs. Two sample plugin modules in contrib/plugins/spong-server are included. They both write data to RRD Tool databases. data_rrd_disk logs usage for file system on a host. data_rrd_la logs the load average, number of user and numbers of jobs. 12/07/99 FIXED - www-spong-ack was missing 'use Time::Local;' statement. This was causing web server error when an explicit date/time was used in the Duration field. (Thanks to Jonathan Byrne) 12/06/99 CHANGED - Moved spong-cleanup's configuration parameters to spong.conf file. CHANGED - Update documentation with new changes. 12/05/99 FIXED - Fixed bug in spong-message which cause contact with a delay and repeat attributes to be continually notified. FEATURE - Added host_groups and exclude_host_groups matching to spong-message. The hostname will be checked to see if it in any of the host groups defined in host_groups and exclude_host_groups. CHANGE - Moved the &load_msg_func() function from begging of program to after the rules scanning. They messaging functions will now only be loaded it there are notifications to be sent. CHANGE - Create module Status.pm to encapsulate the &status() function. Changed spong-network and spong-client to use the new package. files - lib/Spong/Status.pm spong-client spong-network 12/01/99 FIXED - Added error checking code to query process display routined. Querying for invalid information caused the query process to crash. 11/27/99 CHANGES - Various documenation updated and additions. 11/24/99 FIXED - spong-network and spong-client had a wrong variable name in the &status() function if the inet_aton() function failed. (Thanks to Tom Brown) files - spong-client spong-network FIXED - Changed file permissions setting of CGI programs installation in the 'build' program. The CGI programs were installed with write permission for the $WEB users in the build program. (Thanks to Tom Brown) CHANGE - The uiowa.edu "Machine Info" link on the Web Displays has been replaced with a $WWW_ACTIONBAR_CUSTOM variable in the spong.conf configuration file. If the $WWW_ACTIONBAR_CUSTOM variable is defined, the contents of the variable will be included in the Display frame's Action Bar. Only HTML code should be used in this variable. 11/22/99 FIXED - Some machines were core dumping in the spong-message program in the &load_msg_funcs() procedure on a glob() function. This function loads the messaging plugins from the library. The &load_msg_funcs was rewritten to use opendir() and readdir() instead of glob(). FIXED - spong-server had a bug in the --restart logic. It was not handling the terminated of it's child processes correctly. The HUP handler function (hup_handler) was rewritten to waitpid() explicit on the child process pids, instead of using the standard &chld_handler() function. FIXED - spong-server had another latent bug in the &chld_handler function. It was not reinitializing the $SIG{CHLD} signal handler. This has to be done on systems using System V based libraries. FIXED - spong.conf.solaris had a bug if spong-client was not run as root. The &gets_swap() function called "swap -s" without an explicit path. The fix was to call "swap -s" with the full path name to the swap command. CHANGED - Changed the check_ntp network check to be a bit less draconian with a critical error. It will not only be a critical is the service is not running. A yellow conditions will be reported if the time is more then one second off or it the ntp server is not synchonized yet. files - lib/Spong/Network/plugins/check_ntp 11/15/99 ADDED - Added code to spong-server to have it automatically daemonize itself and disconnect from the foreground. It is using a new Daemon.pm library module. files - spong-server lib/Spong/Daemon.pm CHANGED - The child process handle logic has been changed to better handle termination signals. The child processes now exit gracefull. files - spong-server CHANGED - spong-client and spong-network daemonize code has been replace with the Daemon.pm module. 11/02/99 CHANGED - Changed daemonize code to use the POSIX setsid() function to become session leader. Programs where not disconnecting from tty in FreeBSD. files - spong-network spong-client ADDED - Added new OS configure. FreeBSD. The uptime program has weird behaviour when called with full path name. ADDED - Added new client check 'check_mailq'. It checks sendmail mail queue levels against $MAILQWARN and $MAILQCRIT. It uses $MAILQ as the command to execute to display the mailq. Added $MAILQ to all spong.conf files. FIXED - spong-client program has a bug in the load_plugins subroutine. It was trying to use $HOSTS from spong.hosts, but the program doesn't use spong.hosts. Change the logic to look for $CHECKS in the spong.conf file instead. 11/01/99 FIXED - Fixed missing @@PERL@@ substitution variable for #! line of spong-clientand spong-network. 10/30/99 CHANGED - Added new client check plugin mechanism similar to spong-network. Client checks are now plugs that can be configured at runtime. Client plugs resident in the lib/Spong/Client/plugins directory. The current plugsin are the 'disk','cpu','processes','logs'. Spong-client now looks for a 'checks' field in the $HOSTS hash to see what plugins to run. The syntax the the same as the 'services' field. If no 'checks' field is present, spong-client defaults to 'disk_space cpu_load processes log_files' and &check_local if present. 10/29/99 FIX - Fixed forking and signal login of spong-server to fork off properly and terminate properly when signalled. 10/28/99 CHANGED - spong-network now, by default, forks, disconnects from the console and runs in the background. spong-network will run in the foreground if the --debug parameter is used. CHANGED - spong-message has been enchanced with a new messaging function plugin mechanism (like spong-network's). New messaging functions can be added by adding the msg_* file into the lib/Spong/Message/plugins directory. The old messaging functions converted use the new plugin mechanism, and a couple of others have been added to show the full functionality of the new code. CHANGED - spong-message contact syntax has been enhanced to allow finer control over the to whom messages are sent. Your can specify which message function/carrier to notify rather than all of a $HUMANS defined notifications. I.E.: 'sjohnson:email' or 'unix-oncall:teletouch' or 'thebosses:sprintphone'. Files - bin/spong-message etc/spong.message ADDED - You now specify an initial delay before notifications are send out (e.g. Don't page until a service has RED for at least 15 minutes). And you may also specify a repeat interval for notifications after the initial notification (e.g. Keep paging every 10 minutes until problem is acknowledged). The new synatx is detailed in the comments of spong.message configuration file. Files - bin/spong-server bin/spong-message etc/spong.message 10/12/99 ADDED - NTP (Network Time Protocol) spong-network plugin. This plugin checks the NTP offset of the server using the "ntpdate -q" command. If the ntpdate checks returns "Server not suitable for sync...", the status is red. Otherwise if the offset is not than one second the status is yellow. A $NTPDATE variable with the path to the ntpdate command must be added to the spong.conf configuration file. 10/11/99 ADDED - Secure Shell (ssh) spong-network plugin. It checks whether the Secure Shell service is running or not. 10/07/99 ADDED - A timestamp has been added to the services status file to track event duration. The start time of an event is defined as a when a change of status for a service. A new field 'stime' (Start Time) has been added to the Service.pm object. The display of the event duration has been added to the Service::display_* routines for a full format displays. Files - bin/spong-server lib/Spong/Service.pm 10/06/99 ADDED - Added code to spong-client to allow it to fork and daemionize. spong-client will not daemonize is run with --debug. version 2.5 Changes CHANGED - Updated basic help html files. spong-server ADDED - Code to handle purple colored service status files in the database. The start of code to allow spong-server to handle old status as a real status state.ADDED - Big Brother server emulation. The server can now handle Big Brother Clients. The emulation is not 100% percent yet. The client must be configured to use FQDN names. And the server can't handle PAGE commands. ADDED - Added new a type of SEND_MESSAGE rule: RED-CHANGE. The spong-server will attempt to send out messages on any status transition to or from RED. FIXED - Fixed problem with in save_acks with 2 acks bein created with-in the same second. The second ack would overlay the first ack with the same file name. spong-client CHANGED - The old log scanning code is gone. There is a new Object Oriented log scanning routine logmon. logmon monitors the log file by monitoring the end of a file like "tail -f". Events are not reported over and over again until he file is rotated or edited. They will be reported for a specified period of time and then are discard. This does not work if spong-client is run with --nosleep from a crontab. ADDED - Added new OS specified get_swap routines to check swap space levels in the disk checks. spong-network CHANGED - Change the check routines to a new plug-in mechanism. New checks can be added by writing a plug-in module and placing it in the plugin directory. The new service can be used by referencing in the spong.host file. spong-network will load the routine and it will be registered with the plugin registry. ADDED - Added a new escalation mechanism to guard against transiant network problems. A RED status is not reported until a service for host has failed a certain number of times. Otherwise it is reported as a YELLOW status. CHANGED - Added a loop to &check_tcp to check a service 3 time before reporting that it is down. This is guard against temporary network gliches. spong-message ADDED - Added new rules based messaging. The new code is configured in the new spong.message configuration file. The rules allow for host and service based include and/or exclusion, along with version flexible time and day selection. Multiple contacts can also be specified. spong-ack FIXED - Replace unreliable getlog() call with getuserbyname($<) to get user login name. FIXED - Made sure to exit with a non-zero exit code on any errors. This is to make it more script friendly. CHANGED - Change options processing to use GetOpts modules for to simplifiy checks. ADDED - Added --batch parameter which forces program to print the ack. id instead of the more verbose output. This is to make it more script friendly.