Привет, в настоящее время Nagios отправляет уведомления от nagios@server.domain.com. Как мне настроить это? Благодарность
Привет, в настоящее время Nagios отправляет уведомления от nagios@server.domain.com. Как мне настроить это? Благодарность
Ответы:
При установке Nagios по умолчанию это также определяется в командах host-notify-by-mail
or 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, и это должно сработать.
/bin/mail
и-s
Не удалось заставить работать решение "- -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
То, что работало для меня, это добавление -r $ADMINEMAIL$
до -s
(сразу после /bin/mail
), и, конечно, $ADMINEMAIL$
это должно быть установлено с nagios.cfg
помощью admin_email
настроек.
Я смог сделать это, изменив команду на что-то похожее:
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, но может быть любым адресом электронной почты для адреса «От».
Ничто из вышеперечисленного не работает с текущими версиями Nagios и / или Postfix. Флаг, который необходимо добавить к командам Nagios "host-notify-by-mail" или "service-notify-by-mail" в файле "commands.cfg", выглядит следующим образом:
-a "From: john.doe@uzh.ch"
Обратите внимание, что кавычки необходимы!
Это определено в etc/nagios3/conf.d/contacts_nagios2.cfg
Вы можете определить пользователей с помощью электронной почты и групп. Также вы можете настроить разные группы для разных целей - например, web_admin для оповещений http, admin для оповещений хоста и т. Д.
Из-за того, 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