Zabbix. Отправка email-оповещений при помощи скрипта


Email-оповещения будут отправляться с общедоступных почтовых сервисов (mail.ru, yandex.ru, gmail.com)
В самом начале необходимо установить программу, которая будет по SMTP отправлять сообщения на сервер.
apt-get install ssmtp
После установки, нужно в настройках указать учетные данные для отправки сообщений.
cd /etc/ssmtp/
nano ssmtp.conf


В файле конфигурации необходимо указать следующие параметры:
root=zabbix                                       #Указать учётную запись в системе, от имени которой работает zabbix-server
mailhub=smtp.mail.ru:465         #Адрес SMTP сервера и порт
rewriteDomain=mail.ru                               #Вписать домен почтового сервиса
AuthUser=email@mail.ru           #Ваш email-адрес, с которого будут отправляться сообщения
AuthPass=password                     #Пароль от email-адреса
UseTLS=YES                                       #Использование TLS
AuthMethod=LOGIN                     #При использовании gmail.com почты – обязательно.

Далее редактируем следующий файл:

nano revaliases

Вписуем следующую строку:

zabbix:email@mail.ru:smtp.mail.ru

где:
zabbix – учётная запись в системе, от имени которой работает zabbix-server
email@mail.ru – Ваша почта, с которой будет отправляться рассылка
smtp.mail.ru SMTP сервер.



После установки программы для отправки почты, необходимо создать скрипт в директории, с которой zabbix исполняет скрипты, с этим нам поможет команда:

cat /etc/zabbix/zabbix_server.conf | grep alertscriptpath

Вывод программы покажет, что директория для скриптов находится за адресом:
AlertScriptsPath=/usr/lib/zabbix/alertscripts


Создаём файл скрипта:
nano /usr/lib/zabbix/alertscripts/email.sh

И вносим следующий текст:

#!/bin/bash
to=$1
subject=$2
body=$3
touch /tmp/msg.txt
cat /dev/null > /tmp/msg.txt
echo "To: $to" >> /tmp/msg.txt
echo "From:  email@mail.ru" >> /tmp/msg.txt                                # вместо email@mail.ru – вписать тот, с которого будет отправлено сообщение
echo "Subject: $subject" >> /tmp/msg.txt
echo $body >> /tmp/msg.txt
/usr/sbin/ssmtp "$to" <  /tmp/msg.txt
exit 0


Прописываем права файлу:

chown zabbix.zabbix /usr/lib/zabbix/alertscripts/email.sh
chmod +x /usr/lib/zabbix/alertscripts/email.sh

Настройка скрипта завершена. Теперь нужно на WEB-форме zabbix, от имени супер-администратора, добавить способ оповещения (Рис.1):
Administration -> Media types -> Create media type  (Администрирование -> Способы оповещений -> Создать способ оповещения)
Вписываем имя
Поле «Type» – выбираем Script
Поле «Script name» - имя скрипта, который лежит по адресу: /usr/lib/zabbix/alertscripts/
Поле «Enable» - Включить галочку


Сергей Фрейдин
http://efsol.ru/solutions/data-protection.html

2 комментария:

  1. chown zabbix.zabbix /usr/lib/zabbix/alertscripts/email.sh - невозможно получить доступ к "/usr/lib/zabbix/alertscripts/email.sh" : Нет такого файла или каталога
    Как исправить, ведь я проверил в MC файл существует

    ОтветитьУдалить