Статистика, тестирование и отладка
Категория: Электронная почта | Автор: admin | 1-06-2010, 03:48 | Просмотров: 2817

Программа sendmail может собирать статистические данные о количестве и размере сообщений, которые она обрабатывает. Эти данные группируются по агентам доставки и отображаются командой mailstats. Опция confSTATUS_FILE в файле каталога ostype программы sendmail задает имя файла, в котором должны сохраняться статистические данные. Если этот файл существует, автоматически включается функция сбора учетной информации.

По умолчанию файл статистики находится в каталоге /etc/mail/statistics, но некоторые поставщики перемещают его в каталог /var/log/sendmail.st или /usr/lib/sendmail.st. Данные накапливаются в файле с момента его создания. Поэтому, если необходима статистическая информация за определенный период времени, следует соответствующим образом проинициализировать этот файл из демона cron.

 

Ниже приведен образец статистических данных. Чтобы пример поместился на странице, мы удалили первую (там указаны номера агентов доставки) и последнюю (удаленные сообщения — она оказалась пустой) колонки.

 

Statistics from Wed Nov 17 00:56:30 1999

msgsfr      bytes_from    msgsto      bytes_to     msgsrej     Mailer

0           OK            2015       5314K        0           prog

0           OK            2          4K           0           *file*

5399        37455K        20         20K          18          local

42449       383837K        72885      450631K      4207        esmtp

====================================================================

47848       421292K       74922      455969K      4225

 

 

Показано пять значений: число полученных сообщений и их суммарный объем (msgsfr. bytes_from), число отправленных сообщений и их суммарный объем (msgsto, bytes_to), число отклоненных сообщений (msgsrej). Эти значения относятся как к локальной, так и к ретранслируемой почте.

 

Тестирование и отладка

 

Конфигурация, основанная на применении препроцессора m4, в какой-то степени тестируется автоматически. Низкоуровневая отладка в основном не требуется. Единственное, что невозможно контролировать при помощи флагов отладки, — это смысловые ошибки. В процессе подготовки этой главы мы обнаружили несколько подобного рода ошибок в конфигурационных файлах. Иногда, к примеру, вызывалось средство без сопутствующего ему макроса (в частности, активизировалось средство masquerade_envelope, но не включался режим маскирования с помощью макроса MASQUERADE_AS). Или конфигурация программы sendmail не соответствовала настройкам брандмауэра, который определял, какую почту разрешается пропускать.

Нельзя проектировать почтовую систему саму по себе. Ее необходимо согласовать с имеющимися DNS-записями NS и настройками брандмауэра.

Комплект отладочных средств программы sendmail — один из богатейших в UNIX-системах. Отладочные флаги представляют собой не просто булевы значения и даже не целые числа, а двухмерные величины х.у, где х определяет тему, а у — объем выдаваемой информации. Если у равно 0, то это означает отсутствие отладки, а значение 127 соответствует максимально подробному отчету. Темы могут иметь номера от 0 до 99 (в настоящее время определено 68 тем).

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

Если программа sendmail вызывается с флагом -dx.у, то отладочная информация поступает на экран (стандартный поток ошибок). Некоторые важные значения х и рекомендуемые Эриком Оллманом значения у приведены в табл. 19.18.

Таблица 19.18. Параметры отладки

Номер темы

Описание и предлагаемые знамения у

0

Отображение флагов компиляции, а также информации об операционной системе (попробуйте значения у, равные 1 или 10)

8

Выдача информации о преобразовании имен в DNS (попробуйте значение у, равное 7)

11

Трассировка процесса доставки (отображаются вызовы агентов доставки)

12

Выдача информации о преобразовании локальных имен в удаленные

17

Выдача списка записей MX

21

Трассировка правил подстановки (попробуйте значения у, равные 2 или 12)

27

Отображение данных о псевдонимах и перенаправлениях (попробуйте значение у, равное 4)

44

Отображение сведений о неудачных попытках открытия файлов (попробуйте значение у, равное 4)

60

Выдача информации о поиске в базах данных

 

Джин Ким (Gene Kim) и Роб Колстад (Rob Kolstad) написали Perl-сценарий checksendmail, который вызывает программу sendmail в режиме проверки адресов, передавая ей файл тестовых адресов (предоставляется пользователем). Этот сценарий сравнивает полученные результаты с ожидаемыми. Он позволяет построить тестовый набор типичных адресов и впоследствии проверять новые версии конфигурационных файлов на предмет того, не нарушилась ли случайно работоспособность программы.

 

Доставка с комментариями

 

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

Следующий пример получен с помощью почтового агента /usr/ucb/mail. Текст, набранный полужирным шрифтом, вводится пользователем; остальное — результаты работы программы sendmail.

 

anchor 53% mail -v evi@xor.com

Subject: just testing, please ignore

hi

.

Cc:

evi@xor.com... Connecting to xor.com via esmtp..

220   xor.com ESMTP Sendmail 8.9.3/8.9.3;  Fri,  26 Nov 1999 17:42:57 -0700  (MST)

>>> EHLO anchor.cs.colorado.edu

250-xor.com Hello anchor.cs.Colorado.EDU [128.138.242.1], pleased to meet you

250-8BITMIME

250-SIZE 5000000

250-DSN

250-ONEX

250-ETRN

250-XUSR

250 HELP

>>> MAIL From:<evi@anchor.cs.Colorado.edu> SIZE=57

250 <evi@anchor.cs.Colorado.edu>... Sender ok

>>> RCPT To:<evi@xor.com>

250 <evi@xor.com>... Recipient ok

>>> DATA

354 Enter mail,  end with "." on a line by itself

>>> .

250 RAA00511 Message accepted for delivery

evi@xor.com... Sent  (RAA0051 Message accepted for delivery)

Closing connection to xor.com.

>>> QUIT

221  xor.com closing connection

 

 

Программа sendmail на компьютере anchor связалась с программой sendmail на узле xor.com. Оба компьютера в процессе обмена сообщениями общались по протоколу ESMTP.

 

Обмен данными по протоколу SMTP

 

В процессе отладки почтовой системы можно непосредственно выполнять команды протокола SMTP. Для запуска SMTP-сеанса свяжитесь с помощью программы telnet с ТСР-портом 25. На этом порте программа sendmail работает на прием в режиме демона (-bd). Некоторые SMTP-команды приведены в табл. 19.19.

В протоколе SMTP всего 14 команд, поэтому он прост в изучении и применении. Регистр символов здесь не различается. Полная спецификация протокола изложена в документе RFC821 (см. также RFC1123). В документах RFC1869, 1870, 1891 и 1985 описано расширение SMTP - протокол ESMTP.

Большинство транспортных агентов, включая sendmail, понимает и SMTP, и ESMTP. Исключение составляет лишь программа smap. В протоколе ESMTP диалог начинается командой EHLO, а не HELO. Если в ответ на эту команду противоположная сторона возвращает ОК, то участники диалога обмениваются информацией о поддерживаемых расширениях и приходят к наименьшему общему знаменателю. Если же возвращается сообщение об ошибке, осуществляется переход к протоколу SMTP.

Таблица 19.19. Команды протокола SMTP

Команда

Функция

HELO имя_компъютера

Идентифицирует компьютер, устанавливающий соединение по протоколу SMTP

EHLO имя_компъютера

Идентифицирует компьютер, устанавливающий соединение по протоколу ESMTP

MAIL From: обратный_путь

Инициирует почтовую операцию (отправитель конверта)

RCPT То: прямой_путь1

Идентифицирует получателей конверта

VRFY адрес

Проверяет действительность адреса (т.е. можно ли по нему доставить почту)

EXPN адрес

Раскрывает псевдонимы и соответствия, заданные в файле .forward

DATA

Начинает тело сообщения2

QUIT

Завершает обмен и закрывает соединение

RSET

Сбрасывает состояние соединения

HELP

Выводит список SMTP-команд

1 Для одного сообщения может быть несколько команд RCPT.

2 Тело завершается при вводе строки, состоящей из одной точки.

 

Регистрация событий

 

Для выдачи сообщений об ошибках и своем состоянии программа sendmail пользуется услугами системы Syslog. Сообщения регистрируются от имени средства "mail" на уровнях от "debug" до "crit" Все сообщения помечаются строкой "sendmail".

 

Опция confLOG_LEVEL, заданная в командной строке или в файле конфигурации, определяет уровень серьезности, который программа sendmail будет использовать как пороговый уровень регистрации. Высокие пороговые значения соответствуют низким уровням серьезности и обеспечивают регистрацию большего объема информации.

Вспомните, что сообщения, регистрируемые в системе Syslog на определенном уровне, передаются также на все вышестоящие уровни. В файле /etc/syslog.conf определяется, куда, в конце концов, попадет каждое сообщение. В табл. 19.20 показано приблизительное соответствие между уровнями регистрации в программе sendmail и уровнями серьезности Syslog.

Таблица 19.20. Соотношение между пороговыми уровнями sendmail и уровнями серьезности Syslog

Порог

Уровни

0

Без регистрации

 

"alert" или "crit"

2

"crit"

3

"err" или "warning"

4

"notice"

5-10

"info"

>=11

"debug"



 (голосов: 0)
Версия для печати | Комментариев: 0
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.


 
Логин
Пароль
 

 
Locations of visitors to this page