Назад | Перейти на главную страницу

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

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

При установке Nagios по умолчанию он также определяется в host-notify-by-mail или 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, и это должно сработать.

Не удалось заставить работать решение "- -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 nagios @ domain перед $ CONTACTEMAIL $ в commands.cfg

Что сработало для меня, так это добавление -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 (предоставляется постфиксом) вот так:

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