NAME
Net::Peep::Notifier - Utility object for Peep client event or state e-mail notifications
SYNOPSIS
use Net::Peep::Notifier;
$notifier = new Net::Peep::Notifier;
$notifier->client('logparser'); # identify who is generating notifications
$notifier->from($from); # identify who is sending the e-mail
$notifier->recipients(@recipients); # identify some failsafe recipients
$notifier->relays(@relays); # identify some SMTP relays
$notifier->notify(); # sends an e-mail if it is time, otherwise caches
# the information for sending later
$john = new Net::Peep::Notifier;
$john->flush(); # flush (send) outstanding messages as necessary
DESCRIPTION
Utility object for notifications; for example, when logparser
matches a root login in /var/log/messages.
When a notification is created, the object will first check
whether a notification has been sent for that client (based on the
value of $NOTIFICATION_INTERVAL).
If so, the notification information is merely noted and no
notification is sent out. If not, the notification information,
as well as any previously unsent notification information, is sent
to the recipients specified by return value of the recipients()
method.
The object also supports a flush method, which can be used to
periodically flush (send out) any failsafe messages which are due
to be sent.
The basic idea is to populate the object attributes with pertinant
information (e.g., a a list of recipients, a set of SMTP relays, a
'From:' address, etc.), then call the notify method. If a
notification should be sent, it will be. If not, the information
will be cached for later use (e.g., a call to the flush() method.)
To flush out unsent messages, simply instantiate a new
Net::Peep::Notifier object and call the flush method.
EXPORT
None by default.
ATTRIBUTES
$LOGGER - A Net::Peep::Log object
$NOTIFICATIONS - Used for caching failsafe information
$NOTIFICATION_INTERVAL - Number of seconds between each
notification
$NOTIFICATION_LEVEL - A hash whose keys are client names (e.g.,
'logparser') and whose values are the level ('info', 'warn', or
'crit') at which to issue notifications for that client. Defaults
to 'info'.
%NOTIFICATION_RECIPIENTS - A hash whose keys are client names
(e.g., 'logparser') and whose values are arrays of e-mail
addresses to which notifications will be sent for that client.
Will be set to whatever is specified in the Peep configuration
file.
@SMTP_RELAYS - An array of SMTP servers from which e-mail
notifications may be relayed. Defaults to localhost. Will we set
to whatever is specified in the Peep configuration file.
METHODS
new() - The constructor
from() - A get/set method to store a 'From:' address for e-mail
notification. Must be set prior to calling the notify() method.
interval() - A get/set method to store the notification interval
(in seconds). Defaults to $NOTIFICATION_INTERVAL.
recipients() - A get/set method to store an array of e-mail
recipients. Must be set prior to calling the notify() method.
relays() - A get/set method to store an array of SMTP relays.
Must be set prior to calling the notify() method.
notify() - If applicable, notify recipients of an event or state
via e-mail based on attributes such as generator() etc. (see
above). Otherwise, store the information for later reference.
flush() - Clear out any unsent failsafe messages which have not
been sent in at least $NOTIFICATION_INTERVAL seconds
force() - Forcibly clear out any unsent failsafe messages whether
or not they have been sent in at least $NOTIFICATION_INTERVAL
seconds
AUTHOR
Collin Starkweather <collin.starkweather@colorado.edu> Copyright (C) 2001
SEE ALSO
perl(1), Net::Peep, Net::Peep::Mail