Дивним для мене було те, що zabbix дозволяє відсилати emal повідомлення тільки через smtp-сервери, які не вимагають авторизації. Мене це не влаштовує, тому що на даний момент, враховуючи цілі надійності та безпеки, я готовий користуватись лише своїм smtp-сервером та провайдера, які вимагають авторизацію. Тому прийшлось шукати рішення для відправки авторизованих повідомлень з цього серверу моніторингу. Рішення знайшов на форумі zabbix’а:
http://www.zabbix.com/forum/showthread.php?t=1323
Там в 1му та в 3му повідомленні були запропоновані варіанти, з яких я вибрав варіант з використанням sendEmail.
Отже:
1. Завантажуємо sendEmail:
# wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
(Якщо не вантажиться, то перевірити на правильність посилання на сайті http://caspian.dotconf.net/menu/Software/SendEmail/)
2. Ця програма не потребує ніякого встановлення. Достатньо просто розархівувати та можна запускати. Тому розархівовуємо:
# tar -xzvf sendEmail-v1.56.tar.gz
для порядку, копіюємо в каталог /opt
# cp -R ./sendEmail-v1.56 /opt/
і для того, щоб при завантаженні нової версії sendEmail, мені не доводилось переписувати всі скрипти, в яких вона використовується, робимо посилання:
# ln -s /opt/sendEmail-v1.56/sendEmail /opt/sendEmail
3. В файлі конфігурації zabbix-сервера дивимось місце знаходження каталогу AlertScriptsPath:
# cat /etc/zabbix/zabbix_server.conf | grep AlertScriptsPath
Створюємо в ньому файл zabbix_sendemail з скриптом (підставляючи свої значення адреси відправника, smtp-сервера та логіна-пароля відправника):
#!/bin/sh
export smtpemailfrom=поштова_адреса_відправника
export zabbixemailto=$1
export zabbixsubject=$2
export zabbixbody=$3
export smtpserver=адреса_smtp-сервера
export smtplogin=логін_відправника
export smtppass=пароль_відправника
/opt/sendEmail -f $smtpemailfrom -t $zabbixemailto -u $zabbixsubject -m $zabbixbody -s $smtpserver:25 -xu $smtplogin -xp $smtppass
та надаємо йому права доступу 755:
# chmod 755 zabbix_sendemail
4. Створюємо новий тип засобів передачі в меню Адміністрування → Типи засобів передачі → Створити (Administration → Media types → Create Media Type):


В полі Description вводимо будь-яку назву цьому типу передачі даних.
В полі Type, вибираємо script.
В полі Script name вводимо назву нашого скрипта (zabbix_sendmail).
Зберігаємо (Save).
5. Використовуємо цей засіб передачі даних при налаштуванні дій (Actions) в пункті Action operations, або ж, якщо у вже налаштованих діях, в Send only to стоїть -all-, то цей тип вже використовується.
