Мониторинг Postfix в Zabbix

Сперва выполним настройку Zabbix агента.

Создадим файл (в редакторе nano клавиши Ctrl+X для выхода, а y/n для сохранения или отмены изменений):

nano /etc/zabbix/zabbix_agentd.d/userparameter_postfix.conf

Добавим в него:

UserParameter=postfix.maildrop, find /var/spool/postfix/maildrop -type f | wc -l
UserParameter=postfix.deferred, find /var/spool/postfix/deferred -type f | wc -l
UserParameter=postfix.incoming, find /var/spool/postfix/incoming -type f | wc -l
UserParameter=postfix.active, find /var/spool/postfix/active -type f | wc -l
UserParameter=postfix.queue, mailq | grep -v "Mail queue is empty" | grep -c '^[0-9A-Z]'

Либо можно просто добавить строки выше в файл конфигурации Zabbix агента.

Также откроем файл конфигурации Zabbix агента:

nano /etc/zabbix/zabbix_agentd.conf

Разрешим работу Zabbix агента под root пользователем указав:

AllowRoot=1

Перезапустим Zabbix агент чтобы применить изменения:

sudo /etc/init.d/zabbix-agent restart

Теперь перейдем к Zabbix серверу.
Создадим шаблон Postfix, добавим в него элементы данных, указав тип — Zabbix агент, а ключи: postfix.maildrop, postfix.deferred, postfix.incoming, postfix.active, postfix.queue.
Создадим графики для созданных элементов данных.

Также можно создать элемент данных считающий количество процессов Postfix, указав тип — Zabbix агент, а ключ:

proc.num[,postfix]

Также создадим триггер сообщающий когда процессов 0.

Скачать готовый шаблон можно тут — Zabbix шаблон для Postfix

Zabbix шаблон для Postfix

Размер: ~ 2Kb
Инфо: Экспортирован из Zabbix 3.2, также подойдет для других версий.
Инструкция: Мониторинг Postfix в Zabbix
Ссылка на скачивание: Скачать Template App Postfix

Решение ошибки host NAME greeted me with my own hostname NAME

Заметил однажды на одном сервере, что Postfix не всегда отправляет письма, в логах была следующая ошибка:

warning: host NAME[192.168.5.5]:25 greeted me with my own hostname NAME

Посмотрев имя хоста:

hostname -f

Обнаружил что оно не правильное и совпадает с тем на которое шлется почта!

Изменил имя хоста на правильное в следующих файлах (в редакторе nano Ctrl+X для выхода, y/n для сохранения или отмены изменений):

sudo nano /etc/hostname
sudo nano /etc/postfix/main.cf
sudo nano /etc/hosts

Все, после этого ошибка не появлялась и почта успешно доставлялась.

Как разрешить SMTP без SSL на порт 25 в iRedMail/Postfix

Чтобы разрешить на почтовом сервере отправку писем без шифрования через порт 25, необходимо открыть файл конфигурации Postfix, например в редакторе nano (в котором Ctrl+X для выхода, y/n для сохранения или отмены изменений):

sudo nano /etc/postfix/main.cf

И раскомментировать две строки:

smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous

И оставить закомментированной строку:

#smtpd_tls_auth_only=yes

Перезагрузим Postfix чтобы применить изменения:

sudo service postfix restart

После этого можно будет отправлять письма по SMTP через 25 порт без SSL так и как обычно через 587 с SSL.

Смотрите также:
Небезопасные соединения к POP3/IMAP iRedMail

Установка и настройка Postfix

Postfix — агент пересылки почты (MTA — mail transfer agent) с открытым исходным кодом

Допустим на IP-адрес сервера настроено доменное имя, от которого в дальнейшем будет рассылаться почта.

Переключимся сразу на пользователя root:

sudo -i

Приступим к установке Postfix.
Для установки в Ubuntu выполним:

apt-get update
apt-get install postfix

Для установки в CentOS:

yum install postfix

Во время установки будут заданы некоторые вопросы.
1) Выберем «Интернет-сайт»
2) Укажем полное доменное имя сервера (FQDN), например example.com

После этого Postfix уже начнет работать.
Файлы конфигурации обычно находятся в /etc/postfix.

Можем посмотреть статус/перезапустить/остановить/запустить Postfix командами:

service postfix status
service postfix restart
service postfix stop
service postfix start

В случае необходимости можно перенастроить набрав команду:

dpkg-reconfigure postfix

Посмотрим используются ли порты:

netstat -na | grep LISTEN | grep 25
netstat -na | grep LISTEN | grep 587

Можно выполнить автоматическую проверку:

postfix check

Попробуем отправить письмо на указанный адрес (после команды наберем желаемый текст и поставим точку для завершения):

sendmail -v admin@example.com

Можно искать в логах нужную информацию через grep, например найдем все строки содержащие admin@example.com:

grep admin@example.com /var/log/mail.log

Можно также подключится с другого хоста на порт postfix через telnet и убедится что он запущен.

Для диагностики можно наблюдать за соединениями используя tcpdump:

tcpdump port 25
tcpdump port 587

Если на сервере несколько IP, а домен только на одном, то укажем с какого IP будет выполнятся отправка:

sudo nano /etc/postfix/main.cf
smtp_bind_address = 11.1.1.2

Также можно указать на каких интерфейсах будет работать Postfix:

#inet_interfaces = all
inet_interfaces = 127.0.0.1

Перезапустим Postfix чтобы применить изменения:

sudo /etc/init.d/postfix restart