28 марта 2024, 23:15

Цитата дня:

Никогда не спорьте с дураком - люди могут не заметить между вами разницы.


Nagios – не работают уведомления на почту

Автор STALKER_SLX, 26 мая 2020, 10:30

« предыдущая тема - следующая тема »

0 Пользователей и 2 Гостей просматривают эту тему.

Вниз

STALKER_SLX

Доброго времени суток уважаемые форумчане!
1. Имеется ОС «CentOS 7» с установленными одновременно ДВУМЯ системами мониторинга «Zabbix» (версия 4.4.8 ) и «Nagios» (версия 4.4.5)
2. Уживаются эти два сервиса без видимых конфликтов.
3. Настройку E-mail уведомлений делал по этой статье:
https://rtfm.co.ua/nagios-nastrojka-email-uvedomlenij/


Но оповещение так и не заработало, а в логах «var/log/maillog» имеется длинная простыня постоянно повторяющихся уведомлений типа:

«May 26 09:52:48 zabbix postfix/sendmail[81821]: fatal: usage: sendmail [options]»


Прошу помочь разобраться с этим вопросом…

Уваров А.С.

А рядом еще что в логах? Вручную почту отправлять через sendmail пробовали?

STALKER_SLX

Андрей, спасибо Вам огромное за правильный ориентир!
Свою задачу решил так.
1. Сначала разобрался как же все-таки отправлять почту из консоли - в моем случае срабатывает команда:
echo "test" | mail -s "test mail" adminus@example.com

echo "mail_new" | /usr/bin/mailx -s "test mail" adminus@example.com

2. Дальше сделал поиск среди установленных пакетов на предмет: где же находиться программа, отвечающая за отправку почты в системе:

whereis mail

mail: /usr/bin/mail /etc/mail.rc /usr/share/man/man1/mail.1.gz

whereis mailx

mailx: /usr/bin/mailx /usr/share/man/man1/mailx.1.gz


3. Потом более внимательно порылся в конфигах самого «Nagios» и в одном из них нашел, а именно «commands.cfg» нашел вот такой комментарий:
«SAMPLE NOTIFICATION COMMANDS
#
# These are some example notification commands.  They may or may not work on
# your system without modification.  As an example, some systems will require
# you to use "/usr/bin/mailx" instead of "/usr/bin/mail" in the commands below.»


А ниже в этом файле были расписаны команды, отвечающие за отправку почты самим «Nagios»:

«define command {

   command_name    notify-host-by-email
   command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /sbin/sendmail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
}


define command {

   command_name    notify-service-by-email
   command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /sbin/sendmail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$



После этого, я заменил в указанных выше строках команду «/sbin/sendmail -s» на «/usr/bin/mailx -s»

В итоге приведенные выше строки приняли такой вид:

define command {

   command_name    notify-host-by-email
   command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/mailx -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
}


define command {

   command_name    notify-service-by-email
   command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /usr/bin/mailx -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
}


4. Сохранив изменения в конфиге - перезапустил саму службу «Nagios»:
systemctl restart nagios.service

5. В результате - «Nagios» успешно отправляет почту

Вверх