PDA

View Full Version : Отправка уведомлений через внешний smtp


titar
30-11-2009, 07:29
Подскажите, как это делается. Проблема заключается в том, что есть необходимость слать уведомления за пределы корпораитвной сети (sms-шлюз). В сети есть почтовик с ntlm авторизацией. Использовать что-либо еще по внутренним регламентам не разрешено. Поставил на машину с zabbix вещицу smsmtp, которая может отправлять через имеющийся почтовик.
Вот здесь нашел описание решения подобной проблемы: http://www.zabbix.com/forum/showthread.php?t=1323
Создал скрипт:

Sol-monitor:/tmp # cat /usr/local/bin/smtp_auth
#!/bin/sh

export smtpemailfrom=zabbix@net-monitor.somename.ru
export zabbixemailto=$1
export zabbixsubject=$2
export zabbixbody=$3


echo "From: <$smtpemailfrom>" > /tmp/mymailinput
echo "To: $zabbixemailto" >> /tmp/mymailinput
echo "Subject: $zabbixsubject" >> /tmp/mymailinput
echo "" >> /tmp/mymailinput
echo "$zabbixbody" >> /tmp/mymailinput

echo /tmp/mymailinput | /usr/local/bin/msmtp $zabbixemailto
Sol-monitor:/tmp #

Права на него поставил 777.
Далее в Media Types создал тип script: Description и Script name /usr/local/bin/smtp_auth.
После этого добавил этот тип оповещения пользователю, которому на корпоративный адрес уже приходили оповещения.
По логике вещей, при срабатывании триггера, этому пользователю должно приходить два сообщения: одно через оповещение email, вотрое через скрипт. Но сообщение приходит только через email.
Что я делаю не так?

titar
30-11-2009, 14:30
Вопрос отпал. Все что необходимо, это положить скрипт в папку, на которую указывает AlertScriptsPath= из zabbix_server.conf и в media types прописать просто имя скрипта без полного пути.
После описанных манипуляций заббикс отправляет сообщения через корпоративный mail сервер с ntlm авторизацией.