zabbix-helpers/check_email_delivery/README.md

97 lines
5.3 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Проверка прохождения почтовых сообщений
Набор скриптов для проведения проверок прохождения почтовых сообщений на/с почтовые сервера при помощи 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```