# Проверка прохождения почтовых сообщений Набор скриптов для проведения проверок прохождения почтовых сообщений на/с почтовые сервера при помощи 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 используются разные ящики из-за ограничения гугла на количество сообщений в сутки): - SENDER_EMAIL=delivery_speed@example.com - SENDER_PASSWORD= - RECEIVER_EMAIL=delivery_speed_local@example.com - RECEIVER_PASSWOR= - EXT_SENDER_EMAIL=external@gmail.com - EXT_SENDER_PASSWORD= - EXT_RECEIVER_EMAIL=external@gmail.com - EXT_RECEIVER_PASSWORD= - EXT_SENDER_EMAIL_2=external2@gmail.com - EXT_RECEIVER_EMAIL_2=external2@gmail.com Сборка контейнера в локальном репозитории: ```docker build --rm -t email_delivery_check .``` Проверка для каждого сервера запускается в отдельном контейнере. Запуск осуществляется при помощи docker-compose: ```docker-compose up -d```