Инструменты пользователя

Инструменты сайта


postfix:debug_readme.html

Postfix Debugging Howto

Перевод: Доморадов Алексей. Все права защищены. Copyright © 2007.

Примечание: При размещении данного материала у себя на сайте, просьба указывать ссылку на оригинальный сайт - sys-adm.org.ua.

Все замечания и предложения по переводу документации на русский язык, а также найденные ошибки и опечатки присылайте на мой электронный адрес.

Благодарности: Спасибо всем, кто помогал мне переводить эту документацию.

Особенное спасибо: Галинурову Кириллу и Грозаку Михаилу aka RedStalker_Mike.

Special thanks to: Igor Luzanov aka ISKATEL.



Цель этого документа

Этот документ описывает процесс отладки частей почтовой системы Postfix, когда они не работают так, как ожидалось. Методы отличаются от увеличения информативности лог файла, до запуска некоторых процессов демона под управлением вызова трассировщика или отладчика.

Документ предполагает, что конфигурационные файлы Postfix - main.cf и master.cf располагаются в директории /etc/postfix. Вы можете использовать команду postconf config_directory, чтобы найти действительное расположение этой директории на вашей машине.

Список методик отладки, в порядке увеличения уровня отладки, следующий:

  • Поиск очевидных признаков проблемы
  • Отладка Postfix изнутри
  • Попробуйте выключить chroot режим в master.cf
  • Ведение подробного протокола определенных SMTP подключений
  • Запись SMTP сессии с помощью сетевого сниффера
  • Увеличение информативности программ демонов Postfix
  • Ручная трассировка процесса демона Postfix
  • Автоматическая трассировка процесса демона Postfix
  • Запуск программ демонов с интерактивным отладчиком xxgdb
  • Запуск программ демонов с неинтерактивным отладчиком
  • Странности поведения
  • Сообщение о проблемах [email protected]

Поиск очевидных признаков проблемы

Postfix регистрирует все неудачные и успешные доставки в лог файл. Обычно, этот файл называется /var/log/maillog или /var/log/mail; точный путь определен в файле /etc/syslog.conf. Когда Postfix не получает или не доставляет почту, первым делом надо посмотреть ошибки, которые препятствуют Postfix работать правильно:

% egrep '(warning|error|fatal|panic):' /some/log/file | more

Примечание: наиболее важное сообщение находится вначале вывода. Сообщения об ошибках, расположенные далее, менее полезны.

Характер каждой проблемы обозначается следующим образом:

  • «panic» указывает, что проблема непосредственно в ПО и ее может исправить только программист. Postfix не сможет работать, пока не будет исправлена данная ошибка.
  • «fatal» является результатом отсутствующих файлов, неправильных разрешений, неправильных параметров настройки конфигурационного файла, которые вы можете исправить. Postfix не сможет работать, пока не будет исправлена данная ошибка.
  • «error» сообщает исправимое или не исправимое ошибочное состояние. Postfix не сможет работать, пока не будет исправлена данная ошибка.
  • «warning» указывает на некритические ошибки. Это ошибки, которые вы не в состоянии исправить (например, неисправный DNS сервер, где-то в сети), но также могут указывать локальные ошибки конфигурации, которые могут стать проблемой позже.

Отладка Postfix изнутри

Начиная с версии Postfix 2.1 и более поздние, вы можете использовать Postfix для получения отладочных версий отчетов доставки почты. Эти отчеты показывают не только адреса отправителя/получателя после переписывания адреса и применения псевдонимов или пересылки (forwarding), они также показывают информацию о доставке в mailbox, доставке для не-Postfix команды, ответы от удаленных SMTP серверов, и так далее. Postfix может производить два типа отчетов о доставке почты для отладки:

  • Что-если: сообщает, что случилось бы, но не доставляет почту на самом деле. Этот режим работы запрашивается с помощью:
% /usr/sbin/sendmail -bv address...
Mail Delivery Status Report will be mailed to <your login name>.
  • Что случилось: доставляет почту и сообщает о успешных и/или неудачных доставках, включая ответы от удаленных SMTP серверов. Этот режим работы запрашивается с помощью:

% /usr/sbin/sendmail -v address…

Mail Delivery Status Report will be mailed to <your login name>.

Эти отчеты содержат информацию сгенерированную, агентами доставки Postfix. Так как это запускает процессы демоны и не взаимодействует непосредственно с пользователями, результат посылается в виде почты, отправителю тестового сообщения. Формат этих отчетов фактически идентичен обычному уведомлению о не доставки. Для детального примера отчета состояния доставки почты смотрите раздел debugging в конце документа ADDRESS_REWRITING_README.

Попробуйте выключить chroot режим в master.cf

postfix/debug_readme.html.txt · Последние изменения: 2009/08/29 16:16 (внешнее изменение)