[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]

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


Управление почтовым протоколом

Команда sendmail отслеживает работу почтовой подсистемы с помощью демона syslogd. Для этого необходимо, чтобы демон syslogd был настроен и запущен. В частности, файл /etc/syslog.conf может содержать следующую строку:

mail.debug           /var/spool/mqueue/log

Если она отсутствует, добавьте эту строку в любом текстовом редакторе; убедитесь в правильности указанного пути. Если вы изменили файл /etc/syslog.conf когда демон syslogd был уже запущен, обновите демон syslogd с помощью следующей команды:

refresh -s syslogd

Если файл /var/spool/mqueue/log отсутствует, необходимо создать его с помощью следующей команды:

touch /var/spool/mqueue/log

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

Каждая строка системного протокола включает системное время, имя системы (для создания общих протоколов локальной сети), слово sendmail: и, собственно, сообщение. Большинство сообщений представляют собой последовательность пар имя=значение.

При обработке каждого сообщения в протокол обычно заносятся строки receipt и delivery attempt. Строка receipt регистрирует получение сообщения; для каждого сообщения будет создана одна такая запись. Некоторые поля могут отсутствовать. К таким полям относятся:

from Указывает адрес отправителя сообщения.
size Указывает размер сообщения в байтах.
class Указывает класс (числовой приоритет) сообщения.
pri Указывает исходный приоритет (необходим для сортировки очереди сообщений)
nrcpts Указывает количество получателей данного сообщения (после присвоения псевдонима и пересылки).
proto Указывает протокол получения почты, например ESMTP или Программа копирования UNIX-UNIX (UUCP).
relay Указывает, с какой машины было получено данное сообщение.

Кроме того, в протокол заносится строка delivery attempt для каждой попытки доставки (таким образом, в случае задержки доставки или нескольких получателей на одно сообщение может приходиться несколько таких строк). К таким полям относятся следующие:

to Здесь через запятую перечислены все получатели данной рассылки.
ctladdr Указывает управляющего пользователя, то есть имя пользователя, которое используется для доставки.
delay Указывает общую продолжительность задержки (промежуток между доставкой и получением сообщения).
xdelay Указывает время, затраченное при данной попытке доставки.
mailer Здесь указано имя почтовой программы, через которую сообщение было доставлено данному получателю.
relay Указывает имя хоста, который принял (или отказался принять) почту для данного получателя.
stat Здесь указано состояние доставки.

Ввиду большого объема регистрируемой информации, данные в файле протокола распределены в виде последовательности уровней. На низшем уровне в протокол заносятся лишь наиболее нестандартные ситуации. Высший уровень регистрирует даже самые незначительные события. Уровни ведения протокола до 10 включительно полезны для отслеживания обычной работы почтовой системы. Протоколы уровня 64 и выше предназначены для задач отладки. Уровни от 11 до 64 зарезервированы для подробных данных.

Типы действий, информацию о которых будет заносить в протокол команда sendmail, задаются опцией L в файле /etc/mail/sendmail.cf. (В предыдущих версиях до AIX 5.1, имя файла - /etc/sendmail.cf.)

Управление протоколом

К файлу протокола непрерывно добавляются новые данные, и поэтому он может стать очень большим. Кроме того, в случае ошибок в почтовую очередь могут заноситься самые неожиданные записи. Избежать ненужного разрастания почтовой очереди и файла протокола можно, запустив макрокоманду /usr/lib/smdemon.cleanu. Данный макрос вынуждает команду sendmail обрабатывать очередь и поддерживает четыре копии файла протокола, каждая последующая из которых старше предыдущей: log.0, log.1, log.2 и log.3. При каждом запуске макрокоманды происходит перемещение:

Таким образом, текущий протокол всегда записывается в только что созданный файл. Запускать эту макрокоманду можно вручную или через заданные промежутки времени с помощью демона cron.

Ведение протокола передаваемой информации

Многие реализации Простого протокола передачи почты (SMTP) являются неполными. Например, некоторые протоколы SMTP для PC не поддерживают строки продолжения в кодах ответа. Поэтому их очень сложно отслеживать. Если у вас возникли подобные затруднения, рекомендуется включить ведение протокола загрузки (с помощью флага -X). Например:

/usr/sbin/sendmail -X /tmp/traffic -bd

Выполнение этой команды приведет к сохранению протокола обмена в файле /tmp/traffic.

При этом в протокол очень быстро заносится огромное количество информации. В стандартных условиях эту команду использовать не следует. После запуска этой команды отправьте с помощью неполной версии почтового протокола сообщение на главный компьютер. В файле будет зарегистрирован весь входящий и исходящий поток данных, обрабатываемых командой sendmail, включая и данные, передаваемые по протоколу SMTP.

С помощью флага SIGUSR1 команды sendmail можно заносить в протокол дамп открываемых файлов и кэша соединений. Приоритет записи этих результатов - LOG_DEBUG.

Ведение протокола почтовой статистики

Команда sendmail отслеживает объем почты, обрабатываемой каждой из почтовых программ, с которыми она взаимодействует. Определения почтовых программ находятся в файле /etc/mail/sendmail.cf. (В предыдущих версиях до AIX 5.1, имя файла - /etc/sendmail.cf.)

Рис. 2-1. Почтовые программы, применяемые командой Sendmail. На иллюстрации представлена организационная диаграмма перевернутого типа. Наверху расположены Mail и MH. От них ответвляются bellmail, BNU и SMTP. Под предыдущим уровнем расположены локальный почтовый ящик, соединение UUCP и соединение TCP/IP, соответственно. Под соединениями UUCP и TCP/IP расположены удаленные почтовые ящики.

Рисунок comma3

Для сбора статистических данных создайте файл /etc/mail/statistics. Введите следующую команду:

touch /etc/mail/statistics

Если во время записи статистических данных команда sendmail сталкивается с ошибкой, она записывает сообщение с помощью подпрограммы syslog. Эти ошибки никак не влияют на остальные операции команды sendmail.

Команда sendmail обновляет информацию каждый раз, когда она обрабатывает почту. При этом увеличивается не размер файла, а число файлов. Файл содержит данные об объеме обработанной почты со времени создания или очистки файла /etc/mail/statistics.

Примечание: В предыдущих версиях до AIX 5.1, статистические данные хранились в файле /var/tmp/sendmail.st.

Просмотр данных о почтовых программах

Статистические данные хранятся в файле /etc/mail/statistics в формате базы данных, и их невозможно просмотреть с помощью средств работы с текстовыми файлами. Для просмотра статистических данных почтовой программы введите в командной строке следующую команду:

/usr/sbin/mailstats

Эта команда считывает данные из файла /etc/mail/statistics.st, форматирует их и выводит в следующем стандартном формате: Информация о выводе команды /usr/sbin/mailstats приведена в ее описании в книге AIX 5L Version 5.1 Commands Reference.


[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]