Я использую nagios 3.06 для мониторинга серверов. Когда служба критически важна, она отправляет почту, но когда сервер не работает, почта не отправляется. Даже если все службы переходят в критическое состояние, почта не отправляется.
У меня такая конфигурация:
define command {
command_name notify-host-by-email
command_line python /etc/nagios3/send_mail.py "[Nagios] $HOSTNAME$" "******** Nagios ****\n\n Host: $HOSTNAME$\n Description: the server is down"
}
define command{
command_name notify-service-by-email
command_line python /etc/nagios3/send_mail.py "[Nagios] $HOSTNAME$: $SERVICEDESC$ ($NOTIFICATIONTYPE$)" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\nDate/Time: $LONGDATETIME$\nAdditional Info:$SERVICEOUTPUT$"
}
Скрипт python - это скрипт для отправки почты. Он работает, если я выполняю его из командной строки, но он не отправляет электронное письмо от nagios.
Что я делаю не так?
ОБНОВИТЬ: Контактные данные:
define contact{
contact_name root
alias Root
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,r
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
email myemail@gmail.com
}
define contactgroup{
contactgroup_name admins
alias Nagios Administrators
members root
}
Сначала проверьте и убедитесь, что nagios действительно запускает ваш скрипт, посмотрев на nagios.log. Если он предпринимает соответствующие действия, вы можете попробовать записать в журнал вывод своего почтового скрипта, добавив 2> & 1 >> /tmp/mynagiosemail.log, чтобы увидеть, не вызывает ли он ошибку, связанную с Python или ОС.
Я заметил, что ваш сценарий находится в / etc / nagios3, это ненормальное место для размещения чего-то, что будет выполнять nagios, вы можете переместить его в / usr / lib / nagios / plugins / или / usr / lib / nagios3 просто чтобы быть последовательным, а затем убедиться, что пользователь nagios может его прочитать и выполнить. Не похоже, что на это есть какие-то ограничения, но это не повредит.
Какие твои service_notification_options
и host_notification_options
установить для вашего contact
или contactgroup
(если он там есть)? Поскольку вы получаете электронное письмо с предупреждением, похоже, что у вас нет c
набор для service_notification_options
и нет d
набор для host_notification_options
в вашем контакте {} есть ли у вас следующее?
host_notification_commands host-notify-by-email