Hi currently Nagios sends notifications from email@example.com, How do I go about configuring this? Thanks
In a default Nagios install, it's also defined in the
service-notify-by-mail commands, which you'll find in
commands.cfg. The default would be something like:
/bin/echo -e "$NOTIFICATIONTYPE$ - Service notification for $SERVICEDESC$ from host $HOSTNAME$ - $HOSTALIAS$\n$SERVICEDESC$: $SERVICEOUTPUT$\n" | /bin/mail -s '$NOTIFICATIONTYPE$/$SERVICESTATE$ - $HOSTNAME$/$SERVICEDESC$' $CONTACTEMAIL$
So just add a
-r sender@address option to the mail command, and that should work.
Couldn't get the "-- -r firstname.lastname@example.org" solution to work. It turns out options after "--" are options for sendmail. Looking at sendmail options, it should be "-fnagios@domain" NOTE NO SPACE between -f and email@example.com.
So the following is now working :-
command_line /usr/bin/printf "%b" "Notification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTNAME$\Address: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$LONGSERVICEOUTPUT$" | /bin/mail -s "$SERVICESTATE$ - Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$ -- -firstname.lastname@example.org
Put -r nagios@domain before $CONTACTEMAIL$ on commands.cfg
What worked for me was adding
-r $ADMINEMAIL$ before the
-s (immediately after
/bin/mail), and of course
$ADMINEMAIL$ has to be set in
nagios.cfg using the
I was able to do this by changing the command to something liek:
command_line /usr/bin/printf "%b" "Notification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTNAME$\Address: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$LONGSERVICEOUTPUT$" | /bin/mail -s "$SERVICESTATE$ - Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$ -- -r $ADMINEMAIL$
The magic is the '-- -r' part.
ADMINEMAIL is set in your nagios.cfg, but could be any email address for the 'From' address.
None of the above works with current versions of Nagios and/or Postfix. The flag that needs to be added to the Nagios "host-notify-by-mail" or "service-notify-by-mail" commands in the file "commands.cfg" reads as follows:
-a "From: email@example.com"
Note that the quotation marks are essential!
This is defined in
You can define users with e-mails and groups. Also you can configure different groups for different purposes - e.g. web_admin for http alerts, admin for host alerts, etc.
bsd-mailx that my
/usr/bin/mail command links to, nothing seemed to work, so I used
/usr/sbin/sendmail (provided by postfix) like this:
command_line /usr/bin/printf "%b" "Subject:** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **\n\n**** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/sbin/sendmail -r "firstname.lastname@example.org" $CONTACTEMAIL$
sendmail two things to consider:
-rto specify the return path (and from-address)
- There is no
-sfor the subject. Instead, add the
Subject:mail header in the
printffollowed by two newlines