понедельник, 22 октября 2012 г.

Nagios, notify


После того как мониторинг заработал хотя бы для двух-трех хостов нужно настроить отправку уведомлений на почту.
По умолчанию стоят неправильные пути к почтовому мейлеру, но даже если их исправить все равно почта не будет приходить. Причина - не настроен sendmail.
Решений несколько: можно долго разбираться с конфигами sendmail, поставить postfix или же просто установить утилиту sendEmail и прописать ее в конфигах nagios. Что я и сделал.

После эксперментов с разными вариантами команды в итоге остановился на следующем:

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/local/bin/sendEmail -s $USER7$ -t $CONTACTEMAIL$ -f $USER5$ -l /var/log/sendEmail -u "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" -m "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n"
        }
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/local/bin/sendEmail -s $USER7$ -t $CONTACTEMAIL$ -f $USER5$ -l /var/log/sendEmail -u "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" -m "***** 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"

Если внимательно изучить выше написанное, можно заметить что используется несколько новых переменных.
Их нужно прописать вручную (при генерировании и размещении конфигов они не затираются):

cat /usr/local/etc/nagios/resource.cfg
# Sets $USER1$ to be the path to the plugins
$USER1$=/usr/local/libexec/nagios
# mail from
$USER5$=nagios@domain.somein.ua
# mail server
$USER7$=nagios.ua

После внесения всех изменений перезапускам nagios, и проверяем. Если почтовый сервер расположен в одном физическом сегменте с nagios'ом то уведомления должны приходить на ваш ящик.
Иначе придется добавлять авторизацию в ключах утилиты sendEmail.

Комментариев нет:

Отправить комментарий