NAME

spong.hosts - define hosts and services to monitor


DESCRIPTION

The spong.hosts file defines two things. 1) What hosts you want to monitor (and the attributes associated with each host), and 2) What humans should be contact when a given host has problems (and the attributes associated with each human).

Each host should have the following attributes associated with it:

    * services      the network services running on that host


Optionally, the follow attributes can also be assigned to a host:
    * down          time period the host is scheduled down, problems

                    are not reported during this time.

    * ip_addr       a list of ip addresses corresponding to multiple 

                    interfaces the machine might have.


The services is a string listing the valid services seperated by spaces. Currently, valid services are ``dns'' (if you have the Net::DNS Perl module installed), ``ftp'', ``smtp'', ``http'', ``imap'', ``pop3'',  ``nntp'',  ``nfs'',  ``ntp'' and``ssh'' although more checks will be added in the future. The can include any addition network checks that you have developed (see spong-network for more details) . Any host listed is automatically checked for network connectivity (via ping).

The down attribute is a list of ``downtimes''. It is a list (well reference to one anyway) of one or more strings in the following format - ``d:hh:mm-hh:mm''. ``d'' is the day of the week (0-6, 0 = Sunday, 6 = Saturday), if ``d'' is ``*'', then every day of the week is matched. The string to the right of the day is the start and end time of the down time in 24 hour format

The ip_addr attribute is a list (well reference to one anyway) of IP address that the machine responds to.

Each human that is defined should have the following attributes associated with it:

    * name          name of the person to contact
And one or more of the following attributes assigned to each human for messaging when there are problems
 
    * email             email address

    * skytel            skytel pager number

    * alltelsms         phone number of a phone subscribered to Alltel Communications SMS service.

    * teletouch         teletouch pager number

    * teletouch_short   teletouch pages numer for small alpha pagers
 

 
 

These attributes are messaging functions for sending out notifictions to people. All of the messing methods are message modules that are load by the spoing-message as a plugin.  The attributes listed above are the message functions that are part of the current Spong distribution. New messaging modules can be easily be developed (see the spong-message manual and the Developer Guide for more details).


FORMAT

The spong.conf file is simply Perl code that gets imported by each spong program, so the only real format restrictions is just what is syntactically correct in Perl (which some would say is anything 8-).

What is expected in this file are the definitions for two hashes of hashes (in Perl speak). The %HOSTS hash, and the %HUMANS hash. If you are not comfortable with Perl lingo, then just think of them as stanza definitions.

First, the HUMANS. The following describes the %HUMANS hash.

    %HUMANS = ( [stanza], [stanza], [stanza] );
where [stanza] is a second hash, that looks like the following:
   'unix-staff' =>    { name  => 'Midrange On-call Staff',

                        email => 'its-unix@uiowa.edu',

                        skytel => '1234567' },
What this says is that the 'unix-staff' human has the following attributes (name = Midrange On-call Staff, email = its-unix@uiowa.edu, skytel = 1234567).

Now, the HOSTS. The following describes the %HOSTS hash.

    %HOSTS = ( [stanza], [stanza], [stanza] );
where [stanza] is a second hash, that looks like the following:
    'www.uiowa.edu' =>          { services => 'ftp smtp http',

                                  ip_addr  => ['192.168.15.2','10.2.124.200'],
                                  down     => [ '*:0015-0030','6:23:00-23:59'] }
What this says is that the 'www.uiowa.edu' host has the following attributes (services = ftp smtp http; ip address=192.168.15.2 and 10.2.124.200;  and down time of 12:15AM-12:30AM every day and from 11:00PM-12:00PM on Saturdays).

I know the format can be a little odd at first, but I chose it because of both its simplicity to work with in the code (I don't have to parse anything - Perl does all the work), and because it is easy to extend - adding additional attributes is quite straightforward.


EXAMPLES

Here are some lines from our spong.hosts file to show you possible configurations.
 %HUMANS = (

  'unix-staff' =>    { name  => 'Midrange On-call Staff',

                       email => 'its-unix@school.edu',

 

  'edhill' =>        { name  => 'Ed Hill',

                       email => 'ed-hill@school.edu',

                       skytel => '1234567' },

 );

 %HOSTS = (

  'strobe.weeg.school.edu' =>   { services => 'dns ftp smtp http',

                                  ip_addr  => [ '128.255.1.3', 

                                                '128.255.64.3' ],

                                  down     => [ "*:05:30-06:30",

                                                "0:00:00-04:00 ] },

  'www.school.edu' =>           { services => 'ftp smtp http' },

 );





COMPATABILITY

In a future release of spong the %HUMAN configuration information will be moved into the spong.message configuration file. It is currenly being retained in the spong.hosts file for compatability.

SEE ALSO

the spong-server manpage , the spong-network manpage , the spong-message manpage


AUTHOR

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

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