Solved

How to set email notification in Nagios?

Posted on 2010-11-25
6
974 Views
Last Modified: 2012-06-27
I have setup Nagios on Centos 5. Added all my Linux Server and windows Server. Everything seems to be fine except Email Notification.

Please suggest me how to set Email Notification?

Already i have a Mail Server running on another system that is based on RHEL 5.
0
Comment
Question by:aloknet21
6 Comments
 
LVL 18

Expert Comment

by:Sanga Collins
ID: 34212588
In yours commands.cfg what is your send notification command ?
0
 
LVL 1

Expert Comment

by:fracassa79
ID: 34213123
I have installed ssmtp: it's a simple tool to configure your smtp account and so be able to send mail from linux command line with /usr/bin/mail command

http://www.linux.com/archive/feature/132006

my config:
cat /etc/ssmtp/ssmtp.conf
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=postmaster

# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com

mailhub=<smtpserver-ip-address>:25
AuthUser=<mailaccount>
AuthPass=<mailaccountpassword>
STARTSSL=YES

rewriteDomain=<yourdomain>

# The full hostname
hostname=<hostnameofnagiosserver>

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address


Then configure mail command in command.cfg
# 'notify-host-by-email' command definition
#define command{
#      command_name      notify-host-by-email
#      command_line      /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/mail -s "NAGIOS $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
#      }

# 'notify-service-by-email' command definition
#define command{
#      command_name      notify-service-by-email
#      command_line      /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nAdditional Info:\n$SERVICEOUTPUT$\n\nLong Additional Info:\n$LONGSERVICEOUTPUT$\n\nDate/Time: $LONGDATETIME$\n\nDate/Time: $LONGDATETIME$" | /usr/bin/mail -s "NAGIOS $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
#      }



0
 
LVL 14

Accepted Solution

by:
Deepak Kosaraju earned 500 total points
ID: 34213430
Make sure you have postfix setup on your server and let it relay the email to your email server on other redhat server.
Then if you follow the documented procedure of setting email you are good to go.

If you want to receive email notifications for Nagios alerts, you need to install the mailx (Postfix) package.


sudo yum install mailx

sudo yum install postfix

You'll have to edit the Nagios email notification commands found in /etc/nagios/commands.cfg and change any '/bin/mail' references to '/usr/bin/mail'. Once you do that you'll need to restart Nagios to make the configuration changes live.
Make sure you have these correct inside commands.cfg
# 'notify-host-by-email' command definition
define command{
command_name      notify-host-by-email
command_line      /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
}

# 'notify-service-by-email' command definition
define command{
command_name      notify-service-by-email
command_line      /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
}

sudo /etc/init.d/nagios restart
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 18

Expert Comment

by:Sanga Collins
ID: 34214138
kosarajudeepak comment is exactly how i did it as well. quite simple :)
0
 
LVL 1

Author Comment

by:aloknet21
ID: 34221544
thanks kosarajudeepak. it is working now.

Now i need to monitor My Firewall and Switches also. please suggest the steps for this.
0
 
LVL 2

Expert Comment

by:koffu
ID: 34238359
in /etc/nagios3/commands.cfg
be sure you have defined
define command{
        command_name    notify-host-by-email
......
}

define command{
        command_name    notify-service-by-email
.....
}

Open in new window

in /etc/nagios3/conf.d/contacts.cfg
define contactgroup{
        contactgroup_name       admins
        alias                   Nagios Administrators
        members                 it
            }

define contact{
    contact_name                    it
    alias                           it
    service_notification_period     24x7
    host_notification_period        hostmonitoringhours
    host_notification_options       d
    service_notification_options    n
    service_notification_commands   notify-service-by-email
    host_notification_commands      notify-host-by-email
    email                           user@domain
host_notifications_enabled              1
service_notifications_enabled           1
}

Open in new window

in /etc/nagios3/conf.d/generic-host_nagios2.cfg
define host{
        name                            generic-host    ; The name of this host template
        notifications_enabled           0       ; Host notifications are enabled

Open in new window


in /etc/nagios3/conf.d/generic-host_nagios2.cfg
define service{
        name                            generic-service ; The 'name' of this service template
        notifications_enabled           1       ; Service notifications are enabled

Open in new window





I'm using postfix with relayhost=[xxx.xxx.xxx.xxx] option, pointed directly to my server. This solution have outgoing queue, so you not loose your notification if connection hang or you can setup mail routing for multiple destiantions.
0

Featured Post

Don't miss ATEN at NAB Show April 24-27!

Visit ATEN at NAB Show to learn how our "Seamlessly Entertaining" solutions deliver fast, precise video streaming without delays for the broadcasting and media environment. ATEN will showcase its 16x16 Modular Matrix Switch (VM1600) and KVM Over IP Solution (KE6900 series).

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

SSH (Secure Shell) - Tips and Tricks As you all know SSH(Secure Shell) is a network protocol, which we use to access/transfer files securely between two networked devices. SSH was actually designed as a replacement for insecure protocols that sen…
Load balancing is the method of dividing the total amount of work performed by one computer between two or more computers. Its aim is to get more work done in the same amount of time, ensuring that all the users get served faster.
Learn how to get help with Linux/Unix bash shell commands. Use help to read help documents for built in bash shell commands.: Use man to interface with the online reference manuals for shell commands.: Use man to search man pages for unknown command…
In this tutorial you'll learn about bandwidth monitoring with flows and packet sniffing with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're interested in additional methods for monitoring bandwidt…

763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question