Одним из больших минусов системы мониторинга Zabbix является неумение отсылать почту через почтовые сервера с авторизацией. Решений данной проблемы несколько, в данной статье приводится готовый рецепт настройки для системы на базе CentOS 6.3. Мы будем отсылать почту через скрипт, что несколько безопаснее и надёжнее, чем отсылка через локально установленный почтовый сервер.
Настройки в консоли сервера Zabbix.
1. Первым делом устанавливаем SSMTP – простой консольный отсыльщик.
yum install ssmtp
2. После установки правим файл /etc/ssmtp/ssmtp.conf
nano /etc/ssmtp/ssmtp.conf
Добавляем следующие строчки:
mailhub=[ваш почтовый сервер]:[порт]
UseSTARTTLS=[Значения YES или NO]
AuthUser=[Имя пользователя]
AuthPass=[Пароль пользователя]
FromLineOverride=YES
Если в вашем конфигурационном файле уже есть какая-то из этих строк, то исправляем значение в ней. Квадратные скобки в конфигурационном файле не требуются, они только показывают обязательные для установки значения. Последний параметр строго YES, он позволяет менять отправителя, что сделает наши письма более наглядными.
3. Переходим к просмотру файла конфигурации Zabbix сервера, по умолчанию: /etc/zabbix/zabbix_server.conf. В данном файле находим параметр AlertScriptsPath и записываем путь указанный в нём. По умолчанию путь: /usr/lib/zabbix/alertscripts
4. Переходим в указанную папку и создаём файл zabbix_sendmail.sh, содержание скрипта следующее:
#!/bin/sh export smtpemailfrom=[почтовый адрес вашей системы мониторинга, аналогичен адресу в ssmtp] export zabbixemailto=$1 export zabbixsubject=$2 export zabbixbody=$3 echo "Subject: $zabbixsubject" > /tmp/mymailinput echo "Content-Type: text/plain; charset="utf-8"" >> /tmp/mymailinput echo "From: \"Zabbix Monitor\"<$smtpemailfrom>" >> /tmp/mymailinput echo "" >> /tmp/mymailinput echo "$zabbixbody" >> /tmp/mymailinput /usr/sbin/ssmtp $zabbixemailto -F $smtpemailfrom $zabbixemailto < /tmp/mymailinput
5. Скрипту нужно установить право на запуск:
chmod 755 zabbix_sendmail.sh
6. Тестируем работу скрипта в консоли, для этого выполняем:
/usr/lib/zabbix/alertscripts/zabbix_sendmail.sh [почтовый адрес куда шлём] [тема] [Сообщение]
Если вы получили письмо, то всё хорошо. Если нет, то рекомендую в скрипте вместо /usr/sbin/ssmtp поставить /usr/sbin/ssmtp –v и повторить попытку. В таком случае в консоли вы увидите вывод процесса обмена с почтовиком и все возникающие ошибки. Кстати, если оставить этот параметр и на боевую эксплуатацию, то весь лог вывода скрипта будет записываться в лог сервера мониторинга. В зависимости от интенсивности рассылки почтовых уведомлений это может быть полезной, а может быть вредной информацией.
7. Внимание! После теста скрипта обязательно требуется удалить файл /tmp/mymailinput, так как Заббикс не может сам удалить файл, созданный из-под другой учётной записи! (подразумеваются правильные настройки безопасности).
Настройки в веб интерфейсе сервера Zabbix.
1. Переходим в раздел Администрирование -> Медиа
2. Нажимаем кнопку создать новый тип.
3. Заполняем поля в соответствии со скриншотом, сохраняем.
4. Переходим в раздел Администрирование -> Пользователи, выбираем нужного нам пользователя, в его закладках переходим к разделу Медиа
5. Нажимаем кнопку Добавить
6. В появившемся окне выбираем график отправки почты сотруднику, типы угроз. Нажимаем сохранить.
На этом настройка завершена.