Отправка email уведомлений в zabbix 2.4

После установки системы мониторинга и добавления узлов следует автоматизировать наблюдение за параметрами. Для этого мы включим и настроим в zabbix отправку email оповещений с авторизацией на smtp сервере yandex или gmail. Если этого не сделать, то никакой информации получить с мониторинга удаленно не получится, только через web интерфейс.

Углубленный онлайн-курс по MikroTik

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.

Данная статья актуальна для версий Zabbix 2.4 и ниже. Начиная с версии 3.0 функционал по отправке email уведомлений с авторизацией по smtp доступен в базовом функционале системы мониторинга. Как настроить оповещение читайте в отдельной статье по установке и настройке zabbix 3.0.

Введение

Поле установки сервер мониторинга Zabbix не настроен на отправку уведомлений о сработавших триггерах. Более того, штатный функционал по отправке оповещений на email не умеет авторизовываться на почтовом сервере. То есть вы сможете использовать эту возможность только если у вас есть свой собственный почтовый сервер, на котором вы разрешите заббиксу отправлять уведомления без авторизации.

Использовать в такой ситуации публичные сервера не получится. Это неудобно и не практично. Мне зачастую не хочется возиться с настройкой почтового сервера, гораздо удобнее и быстрее воспользоваться готовым. Этим мы и займемся далее - научим zabbix отправлять email уведомления с авторизацией на smtp сервере.

Настройка ssmtp для авторизации на почтовом сервере

Для отправки уведомлений на почту с помощью smtp авторизации нам понадобится почтовый клиент ssmtp. Установим его:

# yum install -y ssmtp

Если у вас еще не подключен репозиторий Epel, сделайте это. Пакет устанавливается оттуда. Теперь нужно настроить почтовый клиент на отправку писем через указанную учетную запись. Для этого открываем файл /etc/ssmtp/ssmtp.conf и приводим его к следующему виду для отправки через почтовый сервер Яндекса:

cat ssmtp.conf
root=zabbix@zeroxzed.ru
mailhub=smtp.yandex.ru:465
AuthUser=zabbix@zeroxzed.ru
AuthPass=password
AuthMethod=LOGIN
FromLineOverride=YES
UseTLS=YES
RewriteDomain=zeroxzed.ru
Hostname=zeroxzed.ru
Debug=YES
TLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt
В данном примере я использую почтовый домен zeroxzed.ru, он у меня прикреплен к Яндексу и обслуживается им. Если у вас обычный почтовый ящик, используйте адрес вида mailbox@yandex.ru.

Если вы хотите использовать учетную запись gmail то настройки ssmtp должны быть следующие:

root=mailbox@gmail.com
mailhub=smtp.gmail.com:587
RewriteDomain=gmail.com
AuthUser=mailbox
AuthPass=parolchik
Hostname=gmail.com
UseSTARTTLS=YES
AuthMethod=LOGIN
FromLineOverride=YES
UseTLS=YES
Debug=YES
TLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt

И редактируем там же файл revaliases, добавляя одну строку для яндекса:

root:zabbix@zeroxzed.ru:smtp.yandex.ru:465

И для gmail:

root:mailbox@gmail.com:smtp.gmail.com:587

Теперь проверим работу почтового клиента. Отправляем через консоль тестовое письмо:

# echo "test_message" | ssmtp -v zeroxzed@gmail.com

[<-] 220 smtp3m.mail.yandex.net ESMTP
[->] EHLO zeroxzed.ru
[<-] 250 ENHANCEDSTATUSCODES
[->] AUTH LOGIN
[<-] 334 VXNlcb5hbDU6
[->] emFiYml4QEplcm94tmVkLnJ1
[<-] 334 UGFzR3dvc2Q6
[<-] 235 2.7.0 Authentication successful.
[->] MAIL FROM:<zabbix@zeroxzed.ru>
[<-] 250 2.1.0 <zabbix@zeroxzed.ru> ok
[->] RCPT TO:<zeroxzed@gmail.com>
[<-] 250 2.1.5 <zeroxzed@gmail.com> recipient ok
[->] DATA
[<-] 354 Enter mail, end with "." on a line by itself
[->] Received: by zeroxzed.ru (sSMTP sendmail emulation); Thu, 05 Nov 2015 18:32:18 +0300
[->] From: "root" <zabbix@zeroxzed.ru>
[->] Date: Thu, 05 Nov 2015 18:32:18 +0300
[->] test_message
[->]
[->] .
[<-] 250 2.0.0 Ok: queued on smtp3m.mail.yandex.net as 1446737539-AXVW9QixF9-WJAWKNV9
[->] QUIT
[<-] 221 2.0.0 Closing connection.
Когда писал статью, не думал, что мне будут приходить на почту тестовые письма. Но долгое время не мог понять, что за сообщения с текстом test_message периодически прилетают в почту. Теперь понял, что это копипастом с этой статьи люди мне шлют тестовые письма. Не забывайте менять адрес получателя, мне ваши тестовые письма ни к чему :)

Все в порядке, письмо улетело. Если что, логи работы почтового клиента можно посмотреть в файле /var/log/maillog.

Email script для отправки оповещений

Отправлять почтовые уведомления из zabbix будем с помощью скрипта. Первым делом выясним, где наш заббикс хранит скрипты для оповещений. Для этого открываем файл конфигурации и ищем там строку AlertScriptsPath:

# cat /etc/zabbix/zabbix_server.conf | grep AlertScriptsPath
AlertScriptsPath=/usr/lib/zabbix/alertscripts

Идем в указанную папку и создаем там скрипт отправки уведомлений на почту:

# mcedit /usr/lib/zabbix/alertscripts/mail.sh
#!/bin/sh
export smtpemailfrom=zabbix@zeroxzed.ru
echo "To: $1" > /tmp/mymailinput
echo "Subject: $2" >> /tmp/mymailinput
echo "Content-Type: text/plain; charset="utf-8"" >> /tmp/mymailinput
echo "From: \"Zabbix Zeroxzed\"<$smtpemailfrom>" >> /tmp/mymailinput
echo "" >> /tmp/mymailinput
echo "$3" >> /tmp/mymailinput
/usr/sbin/ssmtp $1 -F $smtpemailfrom < /tmp/mymailinput

Не забудьте указать свой почтовый адрес и поле отправителя From. Сохраняем скрипт и делаем его исполняемым:

# chmod 0777 mail.sh

Настройка в Zabbix отправки уведомлений

Теперь идем в web интерфейс zabbix и настраиваем отправку оповещений на почту с smtp авторизацией. Для этого переходим в раздел Administration -> Media types и нажимаем на ссылку Email:

Настройка email оповещений в zabbix

Заполняем необходимые параметры как на картинке:

Включения скрипта отправки сообщений

Name Email
Type Script
Script name mail.sh

Сохраняем настройки, нажав Update. Дальше идем в раздел Administration -> Users. Меняем отображение с групп на пользователей:

Активация отправки уведомлений администратору

Нажимаем на пользователя Admin и переходим на вкладку Media, там жмем на add. Откроется окно добавления источника оповещений. Заполняем как на картинке:

добавление источника оповещений

Нажимаем Update. Затем в разделе Media пользователя Admin еще раз жмем Update для применения настроек:

zabbix-notifications-05

Теперь последний штрих, который лично я частенько забываю сделать, а потом долго разбираюсь, почему zabbix не отправляет оповещения на почту. Идем в раздел Configuration -> Actions и в единственной строке Report problems to Zabbix administrators жмем на Disabled в столбце статус, чтобы он стал Enabled:

zabbix-notifications-06

Теперь все готово. Надо ждать срабатывания тригера и проверять почту. После срабатывания тригера и отправки заббиксом письма, в системном почтовом логе /var/log/maillog должны появиться записи об этом.

Проверка оповещений в Zabbix

Частенько возникают всякие нюансы в механизме отправки уведомлений в Zabbix. К сожалению, в самом заббиксе нет удобного средства мониторинга отправки уведомлений. И если возникают какие-то проблемы, не всегда бывает просто определить, где ошибка. Я рекомендую следующую последовательность действий при разборе ошибок отправки уведомлений zabbix с авторизацией по smtp. Без авторизации чаще всего все в порядке.

  1. Открываем dashboard и смотрим на сработавший триггер. В столбце Actions должны быть цифра 1, означающая, что уведомление было отправлено. При наведении мышки на эту цифру появится дополнительная информация. проверка оповещений на почту
  2. Затем идем в раздел Administration -> Notifications и смотрим на счетчик email уведомлений. Он должен увеличиваться при каждом новом срабатывании тригера. zabbix-notifications-08
  3. Если эти два условия выполняются, значит zabbix нормально отрабатывает событие отправки уведомления на почту. Если же нет, то нужно проверять настройки самого заббикса касательно отправки сообщений. Аккуратно проверить все разделы, которые имеют к этому отношения.
  4. Дальше нужно смотреть почтовый лог - /var/log/maillog. Там должны быть записи об отправке сообщения. Это будут либо успешные отправки, либо сообщения об ошибках. Если есть ошибки, то нужно разбираться с почтовым клиентом, в котором настроена авторизация smtp и скриптом отправки сообщений.
  5. Если все в порядке, а уведомления все равно не приходят, то можно попробовать сменить почтовый сервер. Идеальным был бы вариант почтового сервера, к логам которого у вас есть доступ. Так проще всего отладить работу, так как если в скрипте отправки есть какая-то ошибка, которую не видно на клиенте, ее можно заметить на сервере.

Заключение

Подведем итог того, что мы сделали. Нашей задачей была настройка уведомлений в zabbix о срабатываемых триггерах. Причем оповещения нам нам нужно было отправлять через сторонний smtp сервер с авторизацией. Так как стандартного средства авторизации smtp в zabbix нет, мы использовали ssmtp клиент для этих целей. Затем мы создали скрипт, с помощью которого заббикс будет отправлять уведомления, используя ssmtp.

После этого мы настроили через web интерфейс все необходимые параметры для успешной отправки оповещений. И в заключении провели диагностику возможных проблем.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Дополнительные материалы по Zabbix

Онлайн-курс по устройству компьютерных сетей.

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Рекомендую полезные материалы по Zabbix:
Настройки системы
  • Установка 4.0
  • Обновление 3.0 -> 3.2
  • Обновление 3.4 -> 4.0
  • Установка Zabbix Proxy
  • Работа на NGINX
Видео и подробное описание установки и настройки Zabbix 4.0, а также установка агентов на linux и windows и подключение их к мониторингу.
Подробное описание обновления системы мониторинга zabbix версии 3.4 до новой версии 4.0.
Пошаговая процедура обновления сервера мониторинга zabbix 2.4 до 3.0. Подробное описание каждого шага с пояснениями и рекомендациями.
Подробное описание установки и настройки zabbix proxy для организации распределенной системы мониторинга. Все показано на примерах.
Подробное описание установки системы мониторинга Zabbix на веб сервер на базе nginx + php-fpm.
Мониторинг служб и сервисов
 
  • Температура процессора
  • Nginx и php-fpm
  • Mysql репликация
  • Службы Linux
  • Рейд mdadm
  • Транки Asterisk
  • Synology
Мониторинг температуры процессора с помощью zabbix на Windows сервере с использованием пользовательских скриптов.
Настройка полноценного мониторинга web сервера nginx и php-fpm в zabbix с помощью скриптов и пользовательских параметров.
Мониторинг репликации mysql с помощью Zabbix. Подробный разбор методики и тестирование работы.
Описание настройки мониторинга tcp служб с помощью zabbix и его инструмента простых проверок (simple checks)
Настройка мониторинга рейда mdadm с помощью zabbix. Подробное пояснение принципа работы и пошаговая инструкция.
Подробное описание мониторинга регистраций транков (trunk) в asterisk с помощью сервера мониторинга zabbix.
Подробная инструкция со скриншотами по настройке мониторинга по snmp дискового хранилища synology с помощью сервера мониторинга zabbix.
Мониторинг различных значений
  • Мониторинг сайта
  • Мониторинг бэкапов
  • Размер бэкапа
  • Делегирование домена
  • Значения из текстового файла
  • Мониторинг логов
Настройка мониторинга web сайта в zabbix. Параметры для наблюдения - доступность сайта, время отклика, скорость доступа к сайту.
Один из способов мониторинга бэкапов с помощью zabbix через проверку даты последнего изменения файла из архивной копии с помощью vfs.file.time.
Подробное описание настройки мониторинга размера бэкапов в Zabbix с помощью внешних скриптов.
Пример настройки мониторинга за временем делегирования домена с помощью Zabbix и внешнего скрипта. Все скрипты и готовый шаблон представлены.
Описание мониторинга лог файлов в zabbix на примере анализа лога программы apcupsd. Отправка оповещений по событиям из лога.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

14 комментариев

  1. Сергей

    Я перевел своих клиентов на webjack, делает все то же самое, минимальный тариф дешевле.
    Можно получить месяц бесплатно по промокоду semen21, напишите его в чат техподдержки на сайте

  2. Андрей

    Добрый день, извините за нелепый вопрос, не подскажите, не приходят оповещения на почту с забикса. Нужен ли какой то почтовый клиент для это?

    • В версиях zabbix 3+ и далее используется встроенный клиент для отправки почты. Эта статья больше не актуальна. Подробнее тут - https://serveradmin.ru/ustanovka-i-nastroyka-zabbix-4-0/#_email

      • Андрей

        Извините, в чём тогда может быть причина, версия 3.2.7. вроде всё настроено. Но такое ощущение что с сервера с забиксом не отправляются сообщения.

        • Так невозможно подсказать. Смотрите лог сервера заббикса, может там будут какие-то ошибки. 100% вы где-то ошиблись. Отправка почты в заббиксе работает нормально. Если используете свой почтовый сервер, смотрите логи и там тоже.

          • Андрей

            Добрый день, а можно как то проверить пытается ли забикс что то отправить на почтовый сервер? В логах почтового сервера пусто.

            • Вы как проверяете отправку? Какой-то триггер срабатывает для отправки оповещения? Точно все настроено для отправки именно на email?

              • Андрей

                Да, ложно какой то определенный узел ломаю, к примеру ping, в мониторинге появляется проблема, к примеру с значением "среднее". Настроена отправка на сервер. На старом забиксе 2.3 версии всё работает, и на почтовом сервере, в логах старый забикс появлялся. От нового совсем ни чего.

  3. Зачем отправлять скриптом, если Zabbix умеет делать это сам из Actions? Или актуальная на момент статьи версия не умела?

    • Версия 2.4 это еще не умела делать. Zabbix сам научился отправлять сообщения с авторизацией на smtp сервере только с версии 3.0.

  4. Хммм... а по-моему, если требуется отправка на один домен, то всё работает и без авторизации - например, если ящик myname@yandex.ru, то достаточно в настройках Media type Email указать сервер "mx.yandex.ru" - и всё будет работать, даже с фэйкового адреса (у меня "отправитель" - zabbix@firm.lan)

  5. Скажите, а где, в скрипте, надо указать свой почтовый адрес и поле отправителя From?

    • Уже не могу проверить, откуда берутся данные в поле From. Я везде перешел на 3.0, там уже без скрипта все работает.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar