Search Exchange
Search All Sites
Nagios Live Webinars
Let our experts show you how Nagios can help your organization.Login
Directory Tree
Nagios Alert Emailer
This script is a direct replacement for the basic Nagios emailer.
This perl script provides the following features:
* Allows you to specify the senders email address
* Allows you to specify the destination email address/group
* Allows you to differentiate between Host and Service outages
* Allows you to connect directly to any SMTP server
* Doesn't require any local sendmail configuration
* Uses standard Net::SMTP module
* Runs within Nagios's embedded perl interpreter
* Allows you to format the alert message subject and body
* Allows you to send emails to different alert groups based on nagios configuration
Configuration steps --------------
I put this in the nagios plugins directory /usr/local/nagios/libexec but you can put it anywhere.
commands.cfg
---
define command{
command_name notify-by-email
command_line $USER1$/send_mail.pl -n "$NOTIFICATIONTYPE$" -h "$HOSTNAME$" -s "$HOSTSTATE$" -a "$HOSTADDRESS$" -i "$HOSTOUTPUT$" -d "$LONGDATETIME$" -e "$CONTACTEMAIL$"
}
define command{
command_name host-notify-by-email
command_line $USER1$/send_mail.pl -n "HOST $NOTIFICATIONTYPE$" -h "$HOSTNAME$" -s "$HOSTSTATE$" -a "$HOSTADDRESS$" -i "$HOSTOUTPUT$" -d "$LONGDATETIME$" -e "$CONTACTEMAIL$"
}
define command{
command_name service-notify-by-email
command_line $USER1$/send_mail.pl -n "SERVICE $NOTIFICATIONTYPE$" -h "$HOSTNAME$" -s "$SERVICESTATE$" -a "$HOSTADDRESS$" -i "$SERVICEDESC$ - $SERVICEOUTPUT$ - $SERVICECHECKCOMMAND$" -d "$LONGDATETIME$" -e "$CONTACTEMAIL$"
}
contacts.cfg
---
define contact{
contact_name contact
host_notification_commands host-notify-by-email
service_notification_commands service-notify-by-email
email email@address.com
.... rest of contact details ....
}
This perl script provides the following features:
* Allows you to specify the senders email address
* Allows you to specify the destination email address/group
* Allows you to differentiate between Host and Service outages
* Allows you to connect directly to any SMTP server
* Doesn't require any local sendmail configuration
* Uses standard Net::SMTP module
* Runs within Nagios's embedded perl interpreter
* Allows you to format the alert message subject and body
* Allows you to send emails to different alert groups based on nagios configuration
Configuration steps --------------
I put this in the nagios plugins directory /usr/local/nagios/libexec but you can put it anywhere.
commands.cfg
---
define command{
command_name notify-by-email
command_line $USER1$/send_mail.pl -n "$NOTIFICATIONTYPE$" -h "$HOSTNAME$" -s "$HOSTSTATE$" -a "$HOSTADDRESS$" -i "$HOSTOUTPUT$" -d "$LONGDATETIME$" -e "$CONTACTEMAIL$"
}
define command{
command_name host-notify-by-email
command_line $USER1$/send_mail.pl -n "HOST $NOTIFICATIONTYPE$" -h "$HOSTNAME$" -s "$HOSTSTATE$" -a "$HOSTADDRESS$" -i "$HOSTOUTPUT$" -d "$LONGDATETIME$" -e "$CONTACTEMAIL$"
}
define command{
command_name service-notify-by-email
command_line $USER1$/send_mail.pl -n "SERVICE $NOTIFICATIONTYPE$" -h "$HOSTNAME$" -s "$SERVICESTATE$" -a "$HOSTADDRESS$" -i "$SERVICEDESC$ - $SERVICEOUTPUT$ - $SERVICECHECKCOMMAND$" -d "$LONGDATETIME$" -e "$CONTACTEMAIL$"
}
contacts.cfg
---
define contact{
contact_name contact
host_notification_commands host-notify-by-email
service_notification_commands service-notify-by-email
email email@address.com
.... rest of contact details ....
}
Reviews (2)
byjohn_lines, February 11, 2014
In my systems which run Debian Wheezy I needed to remove the
at the end of the datasend lines i.e.
$smtp->datasend("To: $mailto");
$smtp->datasend("From: $mailfrom");
$smtp->datasend("Subject: $mailsubject");
$smtp->datasend("
");
so that the headers acually are taken as headers.
I also set the subject as:
# $mailsubject = "Nagios Monitoring Alert: $opt_h is $opt_s";
$mailsubject = "$opt_n: $opt_h $opt_D is $opt_s";
which maximises the information in a view of mail messages with just headers, to prioritise dealing with alerts
at the end of the datasend lines i.e.
$smtp->datasend("To: $mailto");
$smtp->datasend("From: $mailfrom");
$smtp->datasend("Subject: $mailsubject");
$smtp->datasend("
");
so that the headers acually are taken as headers.
I also set the subject as:
# $mailsubject = "Nagios Monitoring Alert: $opt_h is $opt_s";
$mailsubject = "$opt_n: $opt_h $opt_D is $opt_s";
which maximises the information in a view of mail messages with just headers, to prioritise dealing with alerts
bydimsum, October 16, 2011