zabbix-helpers/check_email_delivery
Sergey Kalinin 781b717abe Initial release 2021-01-15 18:49:37 +03:00
..
check_email_delivery-0.7.1b Initial release 2021-01-15 18:49:37 +03:00
zabbix_jrpc_files Initial release 2021-01-15 18:49:37 +03:00
zabbix_templates Initial release 2021-01-15 18:49:37 +03:00
.gitlab-ci.yml Initial release 2021-01-15 18:49:37 +03:00
Dockerfile Initial release 2021-01-15 18:49:37 +03:00
README.md Initial release 2021-01-15 18:49:37 +03:00
check_email_send_delivery.sh Initial release 2021-01-15 18:49:37 +03:00
docker-compose.yml Initial release 2021-01-15 18:49:37 +03:00
email_delivery_check.cron Initial release 2021-01-15 18:49:37 +03:00
run.sh Initial release 2021-01-15 18:49:37 +03:00
sample.env Initial release 2021-01-15 18:49:37 +03:00
zabbix_create_host.sh Initial release 2021-01-15 18:49:37 +03:00

README.md

Проверка прохождения почтовых сообщений

Набор скриптов для проведения проверок прохождения почтовых сообщений на/с почтовые сервера при помощи zabbix.

За основу взяты скрипты от nagios http://nagiosplugins.org/

Сервис можно запускать как локально по времени (cron-ом) так и в docker-контейнерах. В данном примере все конфиги представлены для запуска проверки на двух почтовых серверах.

Описание

Для запуска проверки прохождения почты нужно запустить файл check_email_send_delivery.sh Формат команды запуска

check_email_send_delivery.sh METHOD MAIL_SERVER

Где METHOD - это тип проверки, должен быть:

  • "local" - локальная проверка (внутри сети)
  • "incoming" - проверка прохождения входящей почты (отправка извне)
  • "outgoing" - проверка прохождения исходящей почты (отправка изнутри наружу)

MAIL_SERVER - FQDN имя почтового сервера

Использование

Скрипт можно запускать как по времени так и ввиде docker-контейнера

Настройка переменных окружения

Настройки для каждого почтового сервера заданы в отдельных файлах (формат имени ".FQDN.env"):

  .mail2.exampla.com.env
  .mail1.example.com.env   

Соответствующий файл будет загружен при запуске скрипта.

Запуск по времени

Предварительно требуется скопировать рабочие файлы, файлы настроек серверов cron-a и настроить узлы в zabbix (можно применить скрипт zabbix_create_host.sh) Для этого можно выполнить следующие команды:

cp check_email_send_delivery.sh /usr/local/bin/
cp check_email_delivery-0.7.1b/check_* /usr/local/bin/
cp check_email_delivery-0.7.1b/imap_* /usr/local/bin/
cp email_delivery_check.cron /etc/cron.d/email_delivery_check
cp sample.env /usr/local/etc/.mail1.example.com.env
cp sample.env /usr/local/etc/.mail2.example.com.env
source /usr/local/etc/.mail1.example.com.env
./zabbix_create_host.sh
source /usr/local/etc/.mail2.example.com.env
./zabbix_create_host.sh

Файлы настроек "sample.env" правятся соответсвенно проверямемым серверам. Затем перезапускаем службу crond

systemctl restart crond

Запуск в Docker-контейнере

Предварительно требуется скопировать файл примерных настроек и отредактировать, согласно Вашим требованиям (FQDN полное имя вашего почтового сервера такое-же как и в docker-compose.yml)

cp sample.env .FQDN.env

При первом запуске контейнеров будут созданы узлы в заббикс и подключены шаблоны, при повторных запусках добавятся обнаруженные элементы данных. Это связанно с особенностями работы заббикса (временной промежуток). Данные будут поступать после 2-3 запуска контейнера.

Контейнеры запускаются автоматически раз в 5 (Check_email_delivery) минут. Настройки производятся через переменные окружения.

Перед запуском следует установить данные переменные (остальные можно оставить по умолчанию, полный список см. в docker-compose.yml):

Пользователь заббикс:

  • ZABBIX_USER=
  • ZABBIX_PASSWORD=
  • ZABBIX_TEMPLATE_NAME=Template_Email_Delivery_Check

Почтовые аккаунты (для двух MTA используются разные ящики из-за ограничения гугла на количество сообщений в сутки):

Сборка контейнера в локальном репозитории:

docker build --rm -t email_delivery_check .

Проверка для каждого сервера запускается в отдельном контейнере. Запуск осуществляется при помощи docker-compose:

docker-compose up -d