Solved

How to set email notification in Nagios?

Posted on 2010-11-25
6
970 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
Comment Utility
In yours commands.cfg what is your send notification command ?
0
 
LVL 1

Expert Comment

by:fracassa79
Comment Utility
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
Comment Utility
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
Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

 
LVL 18

Expert Comment

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

Author Comment

by:aloknet21
Comment Utility
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
Comment Utility
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

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

Suggested Solutions

Large and small networks have one same need, Service monitoring. Service monitoring consists of watch services of the several servers in the network. To monitor means that the administrator will receive an alert when a service is down or it's state …
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…
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…
Learn how to navigate the file tree with the shell. Use pwd to print the current working directory: Use ls to list a directory's contents: Use cd to change to a new directory: Use wildcards instead of typing out long directory names: Use ../ to move…

744 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

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now