< meta name="referrer" content="origin">
Home » Linux » Отправка email уведомлений в zabbix 2.4

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

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

Данная статья актуальна для версий 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 интерфейс все необходимые параметры для успешной отправки оповещений. И в заключении провели диагностику возможных проблем.


Помогла статья? Есть возможность отблагодарить автора

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

Рекомендую полезные материалы по Zabbix:
Настройки системы
  • Установка 3.2 на CentOS 7
  • Обновление 3.0 -> 3.2
  • Обновление 2.4 -> 3.0
  • Установка Zabbix Proxy
  • Работа на NGINX
Видео и подробное описание установки и настройки Zabbix 3.2, а также установка агентов на linux и windows и подключение их к мониторингу.
Подробное описание обновления системы мониторинга zabbix версии 3.0 до новой версии 3.2.
Пошаговая процедура обновления сервера мониторинга 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. Отправка оповещений по событиям из лога.

3 комментария

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

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

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

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

Ваш e-mail не будет опубликован.