Определение адреса электронной почты, с которого Nagios отправляет электронные письма

16

Привет, в настоящее время Nagios отправляет уведомления от nagios@server.domain.com. Как мне настроить это? Благодарность


источник

Ответы:

14

При установке Nagios по умолчанию это также определяется в командах host-notify-by-mailor service-notify-by-mail, которые вы найдете в commands.cfg. По умолчанию будет что-то вроде:

/bin/echo -e "$NOTIFICATIONTYPE$ - Service notification for $SERVICEDESC$ from host $HOSTNAME$ - $HOSTALIAS$\n$SERVICEDESC$: $SERVICEOUTPUT$\n" | /bin/mail -s '$NOTIFICATIONTYPE$/$SERVICESTATE$ - $HOSTNAME$/$SERVICEDESC$' $CONTACTEMAIL$

Так что просто добавьте -r sender@addressопцию к команде mail, и это должно сработать.

RainyRat
источник
Это то, что я сделал, и это работало нормально. Разные оповещения отправляются разными учетными записями благодаря нашей автоматизированной программе продажи билетов.
breadly
1
Я добавил это между /bin/mailи-s
jgritty
@RainyRat - есть ли шанс отредактировать свой ответ, чтобы в качестве первого параметра указать -r? - так как другие ответы предлагают, то с радостью поддержу ваш ответ: o)
Ошеломленный
3

Не удалось заставить работать решение "- -r nagios@domain.com". Оказывается, опции после "-" - это опции для sendmail. Если посмотреть на параметры sendmail, он должен быть "-fnagios @ domain". ПРИМЕЧАНИЕ. НЕТ ПРОСТРАНСТВА между -f и nagios@domain.com.

Итак, теперь работает следующее:

  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$ -- -fnagios@domain.com
Nagios_Noob
источник
3

Поместите -r nagios @ domain перед $ CONTACTEMAIL $ в command.cfg

astroneo
источник
2

То, что работало для меня, это добавление -r $ADMINEMAIL$до -s(сразу после /bin/mail), и, конечно, $ADMINEMAIL$это должно быть установлено с nagios.cfgпомощью admin_emailнастроек.

Альберт Браден
источник
1

Я смог сделать это, изменив команду на что-то похожее:

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$

Магия - это часть "- -r".

ADMINEMAIL установлен в вашем nagios.cfg, но может быть любым адресом электронной почты для адреса «От».

jizaymes
источник
1

Ничто из вышеперечисленного не работает с текущими версиями Nagios и / или Postfix. Флаг, который необходимо добавить к командам Nagios "host-notify-by-mail" или "service-notify-by-mail" в файле "commands.cfg", выглядит следующим образом:

-a "From: john.doe@uzh.ch"

Обратите внимание, что кавычки необходимы!

AAG
источник
Это меняет адрес отправителя, но не изменяет адрес обратного пути. Вы можете изменить оба.
Кристофер К.
0

Это определено в etc/nagios3/conf.d/contacts_nagios2.cfg

Вы можете определить пользователей с помощью электронной почты и групп. Также вы можете настроить разные группы для разных целей - например, web_admin для оповещений http, admin для оповещений хоста и т. Д.

Hogfather
источник
В конфигурации контактов вы настраиваете получателей отправленных писем, а не адрес отправителя . Этот вопрос о том , как изменить адрес отправителя ( «где он отправляет письма от »).
Кристофер К.
0

Из-за того, bsd-mailxчто моя /usr/bin/mailкоманда ссылается, похоже, ничего не работает, поэтому я использовал /usr/sbin/sendmail(предоставленный postfix) так:

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 "nagios@example.com" $CONTACTEMAIL$

Для sendmailдвух вещей, чтобы рассмотреть:

  • Используйте, -rчтобы указать путь возврата (и адрес отправителя)
  • Нет -sдля предмета. Вместо этого добавьте Subject:почтовый заголовок с printfпоследующими двумя символами новой строки\n\n
Кристофер К.
источник