Одно из основных мест, где следует искать диагностические сообщения, – это почтовый журнал. В Postfix используется стандартная для UNIX утилита регистрации
syslogd. Для ее настройки, как правило, используется файл
/etc/syslog.conf. Вот пример конфигурации:
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none /var/log/messages
# The authpriv file has restricted access.
authpriv.* /var/log/secure
# Log all the mail messages in one place.
mail.* /var/log/maillog
# Log cron stuff
cron.* /var/log/cron
# Everybody gets emergency messages, plus log them on another
# machine.
*.emerg *
# Save mail and news errors of level err and higher in a
# special file.
uucp,news.crit /var/log/spooler
# Save boot messages also to boot.log
local7.* /var/log/boot.log
Прежде всего обратите внимание на первую запись, содержащую элемент
mail.none, предотвращающий попадание сообщений почтовой
системы в
/var/log/messages. Это важно, если вы не хотите, чтобы журнал системных сообщений засорялся записями о работе почты. Как видите, для почтового журнала имеется собственная запись с указанием на файл
/var/log/maillog. Дефис перед именем файла сообщает, что утилита
syslogd должна записывать сообщения асинхронно, а не обращаться к диску всякий раз, когда надо внести в журнал новую запись.
К сожалению, есть несколько типичных проблем, которые могут возникнуть при работе с
syslogd. Если вы не видите в журнале ни одной записи, прежде всего надо проверить, действительно ли запущен демон
syslogd. В следующем примере показано, как проверить это с помощью команды
ps.
# ps aux | grep syslog
root 15540 0.0 0.0 1444 524 ? S May21 18:20 syslogd m 0
root 22616 0.0 0.0 1444 452 pts/0 R 18:09 0:00 grep syslog
В первой строке сообщается, что
syslogd работает с 21 мая. Кроме того, прежде чем давать указание
syslogd использовать журнальные файлы, убедитесь, что они существуют и доступны для записи. В некоторых реализациях
syslogd не предусмотрено автоматическое создание журнальных файлов и сообщений об ошибках при наличии проблем с ними. Этим славится
syslogd в Solaris.
Очень распространенная ошибка – использование пробелов вместо символов табуляции для отделения типа журнала от имени файла в файле конфигурации
/etc/syslog.conf. Запись в
syslog.conf должна выглядеть так:
mail.*<TAB> /var/log/maillog
Еще одна проблема с файлом
syslogd.conf связана с расположением журнала на другом хосте. Будьте осторожны с записями, подобными этой:
mail.* @loghost
В данном случае
syslogd посылает все сведения на хост
loghost, журнал которого вам и следует изучать вместо журнала почтового сервера. Убедитесь в том, что такой хост действительно существует. Это весьма распространенная ошибка, когда из за опечатки в
syslogd.conf все журнальные записи отправляются не на ту машину (или вообще в никуда).