Sun Java System Messaging Server 6 2005Q4 管理指南

第 21 章 管理日志记录

本章提供了用于 Messaging Server MTA、邮件存储和服务的日志记录工具的概述信息。本章还提供了管理这些日志记录工具的过程。

本章包含以下各节:

日志记录概述

日志记录是系统提供有关系统服务的时间戳和标记信息的一种方法。日志记录提供了系统的当前快照和历史视图。

通过了解和使用 Messaging Server 日志文件,您可以:

例如,如果您的站点由于用户数量的增加需要添加更多的磁盘存储空间,您可以使用 Messaging Server 日志文件来查看系统需求已增加的百分比,然后规划所需的新磁盘存储量。

您还可以使用 Messaging Server 日志来了解一天的邮件服务模式情况。了解每日高峰负载出现的时间将有助于您进行容量规划。

日志记录还有助于对用户问题进行错误诊断。例如,如果某用户没有收到预期的邮件,您可以使用 Messaging Server 日志记录工具来跟踪该用户的邮件。执行此操作时,您可能会发现这些邮件没有到达是因为它们被自动过滤并发送到垃圾邮件文件夹中。

日志记录数据的类型

一般情况下,日志记录提供两种类型信息:

通常,Messaging Server 日志记录提供操作数据。此操作数据包含的信息有:邮件进入系统的日期和时间;邮件的发件人和收件人;邮件写入磁盘的时间;以后,邮件从磁盘删除的时间和插入用户邮箱的时间。

但是,Messaging Server 日志记录还提供某些事件日志记录数据。要获得事件日志记录数据,您需要将来自不同日志文件的多个项目组合到一起。然后,您可以使用一个特殊的常数(例如,邮件 ID)来搜索并关联邮件在系统中所经历的生命周期。

Messaging Server 日志文件的类型

Messaging Server 日志记录包含三种类型日志文件:

  1. MTA 日志。这些日志为邮件传输代理提供上述操作数据。

  2. 错误日志。这些日志是 MTA 调试日志和 MTA 子组件日志(即作业控制器、分发程序等)。

  3. 邮件存储和服务日志。这些日志提供来自 HTTP 服务器、mshttpd、imap、pop 和 Admin 服务的邮件。这些日志的格式与前两种类型日志的格式不同。

下表列出了日志文件的不同类型。默认情况下,日志文件位于 msg_svr_base/data/log 目录中。您可以分别自定义和查看每种日志文件类型。

表 21–1 Messaging Server 日志文件

日志文件的类型 

日志文件说明 

默认名称 

邮件传输代理 

显示有关通过 MTA 的邮件通信的信息,其中包括日期和时间信息、入队列和出队列信息等等。 

mail.log、mail.log_current 或 mail.log_yesterday 

连接 

包含连接至此系统以发送电子邮件的远程计算机 (MTA)。 

connection.log 

计数器 

包含依据在每个通道基础上发送和接收的邮件的邮件趋势。 

counters 

作业控制器 

包含主程序、作业控制器程序、发送器程序和出队列通道程序上的数据。 

job_controller.log 

分发程序 

包含与分发程序相关的错误。打开分发程序调试将增加信息。 

dispatcher.log 

通道 

记录与通道相关的错误。关键字 master_debug 和 slave_debug 可以打开通道调试,这将增加通道日志文件的详细程度。信息的级别和类型由 option.dat 中的各种 *_DEBUG MTA 选项进行控制。 

channelname_master.log*(示例:tcp_local_master.log*)

channelname_slave.log*(示例:tcp_local_slave.log*)

Admin 

包含与 Console 和 Messaging Server 之间通信(大多数通过几个 CGI 进程)相关的日志事件,通过其 Administration Server 进行 

admin、admin.sequenceNum.timeStamp

IMAP 

包含与此服务器的 IMAP4 活动相关的日志事件 

imap、imap.sequenceNum.timeStamp

POP 

包含与此服务器的 POP3 活动相关的日志事件 

pop、pop.sequenceNum.timeStamp

HTTP 

包含与此服务器的 HTTP 活动相关的日志事件 

http、http.sequenceNum.timeStamp

默认值 

包含与此服务器的其他活动相关的日志事件,例如命令行实用程序和其他进程 

default、default.sequenceNum.timeStamp

msgtrace 

包含邮件存储的跟踪信息。文件可以快速地增长到非常大,并进行相应监视。 

msgtrace 

watcher 

监视进程故障和未响应服务(请参见表 4–4),并记录错误消息,指明具体故障。

watcher 

其中:

sequenceNum—指定一个整数,该整数指定了此日志文件相对于日志文件目录中的其他日志文件的创建顺序。具有较高序列号的日志文件相对于具有较低编号的日志文件而言,属于较新的文件。序列号无法回滚,而只能在服务器的生命期(从安装服务器开始)内单向增加。

timeStamp—指定一个较大整数,该整数指定了文件创建的日期和时间。(其值以标准 UNIX 时间表示:自 1970 年 1 月 1 日午夜开始的秒数。)

例如,名为 imap.63.915107696 的日志文件是指在 IMAP 日志文件目录中创建的第 63 个日志文件,创建时间为 1998 年 12 月 31 日中午 12:34:56。

开放式的序列号与时间戳的组合让您在旋转、终止和选择用于分析的文件时具有了更大的灵活性。有关更为具体的建议,请参见定义和设置服务日志记录选项

跟踪分布在各种日志文件中的邮件

以下介绍了邮件是如何流经系统的以及在哪些位置将信息写入各种日志文件。此说明有助于您了解如何使用 Message Server 的日志文件来进行错误诊断和解决问题。请参见图 8–2 以帮助您理解。

  1. 远程主机与邮件服务主机上的 TCP 插槽建立连接,请求 SMTP 服务。

  2. MTA 分发程序将响应该请求,并将连接传送至邮件服务主机的 SMTP 服务。

    MTA 采用模块化设计,它由一组进程组成,其中包括作业控制器和 SMTP 服务分发程序。分发程序接受外来 TCP 连接并将其发送至 SMTP 服务。SMTP 服务将邮件写入磁盘的通道区。SMTP 服务了解邮件的信封参数,例如,发件人和收件人。系统中的配置条目将通知它属于哪个目标通道。

  3. 分发程序写入 dispatcher.log 文件,它派生了一个线程并使此线程可用于来自某一 IP 地址的外来连接。

  4. SMTP 服务器写入其 tcp_smtp_server.log 文件,记录当远程主机与其建立连接并向其发送邮件时所发生的通讯情况。分发程序根据主机 IP 传送至 SMTP 服务器时创建此日志文件。

  5. SMTP 服务器为通道程序(例如,tcp_intranet)将邮件写入磁盘的队列区,并通知作业控制器。

  6. 作业控制器联系通道程序。

  7. 通道程序传送邮件。

    每个通道均有自己的日志文件。但是,这些日志通常显示通道的开始和停止。要获得更多信息,您需要为通道启用调试级别。但是,由于这会放慢系统速度,而且如果保持打开状态,实际上会使问题更加隐蔽,因此,您应仅当实际问题发生时才启用调试级别。


    注 –

    为了高效工作,如果已经为现有进程运行某通道,并且又进入了一个新邮件,系统将不会产生新的通道进程。当前运行的进程将选取该新邮件。


  8. 邮件被传送到它的下一个中继站,它可以是另一个主机、另一个 TCP 连接等。在 connection.log 文件中写入此信息。

    同时,SMTP 服务器将邮件写入磁盘的队列区,负责该邮件的通道在 mail.log_currentmail.log 文件中写入记录。此记录显示了诸如邮件入队列的日期和时间、发件人和收件人等信息。有关更多信息,请参见MTA 邮件日志记录示例。对跟踪邮件最有用的文件是 mail.log_current 文件。

管理日志记录的工具

通过使用 Console 和 configutil 命令,您可以自定义创建和管理 Messaging Server 日志文件的策略。

对于邮件存储日志,您可以使用 Console 来指定日志设置和查看日志。您指定的设置将影响所记录的事件以及事件的数目。分析日志文件时,您可以使用这些设置和其他特性来完善日志事件的搜索。

由于 MTA 使用了独立的日志记录工具,所以您无法使用 Console 来配置 MTA 日志记录服务以及查看日志。而是通过指定配置文件中的信息来配置 MTA 日志记录。

对于超出 Messaging Server 功能范围的日志分析和报告生成,您需要使用其他工具。您可以自行使用文本编辑器或标准系统工具处理日志文件。

使用支持正则表达式分析的可编写文本编辑器,您可以搜索和提取基于本章中讨论的任何标准的日志条目,并可以对结果进行排序,甚至还可以生成总数或其他统计信息。

在 UNIX 环境中,您还可以修改和使用现有报告生成工具,这些工具是为处理 UNIX syslog 文件而开发的。如果您希望使用公共域 syslog 处理工具,请记住您可能需要修改此工具以解释不同的日期/时间格式,以及出现在 Messaging Server 日志条目中但未在 syslog 条目中出现的两个附加组件(facilitylogLevel)。

管理 MTA 邮件和连接日志

MTA 提供了记录每个入队列和出队列的邮件的功能。还提供了分发程序错误和调试输出。

您可以控制每个通道上的日志记录,也可以指定要记录的所有通道上的邮件活动。在初始配置中,所有通道上均禁用日志记录。

有关更多信息,请参见启用 MTA 日志记录

启用日志记录会使 MTA 在每次邮件通过 MTA 通道时,都将一个条目写入 msg_svr_base/data/log/mail* 文件中。这类日志条目对收集有关通过 MTA(或通过特定通道)的邮件数量的统计信息将很有用。您还可以使用这些日志条目来调查其他问题,例如,是否发送或传送了邮件,以及发送或传送邮件的时间。

邮件返回作业(每晚午夜时分运行),将所有现有 mail.log_yesterday 都附加到累积日志文件 mail.log,将当前 mail.log_current 文件重命名为 mail.log_yesterday,然后开始一个新的 mail.log_current 文件。邮件返回作业对所有 connection.log* 文件也执行相似的操作。

MTA 执行自动轮转以维护当前文件时,您必须通过确定任务(例如备份文件、截断文件、删除文件等)的策略来管理累积 mail.log 文件。

考虑如何管理日志文件时,请注意 MTA 定期返回作业将执行站点提供的 msg_svr_base/bin/daily_cleanup 程序(如果存在)。因此,某些站点可能选择提供他们自己的清除程序,例如每周(或每月)重命名一次旧的 mail.log 文件等。


注 –

启用日志记录后,mail.log 文件将稳定地增长,如果不对其进行限制,则将消耗所有可用磁盘空间。监视此文件的大小并定期地删除不必要的内容。按照要求将创建此文件的另一版本时,还可以删除整个文件。


了解 MTA 日志条目格式

MTA 日志文件以 ASCII 文本书写。默认情况下,每个日志文件条目都包含八个或九个字段,如下面示例中所示。

19-Jan-1998 19:16:57.64 l tcp_local E 1 adam@sesta.com rfc822;marlowe@siroe.com marlowe@siroe.com

日志条目显示:

  1. 创建条目的日期和时间(在此示例中为 19-Jan-1998 19:16:57.64)。

  2. 源通道的通道名称(在此示例中为 l)。

  3. 目标通道的通道名称(在此示例中为 tcp_local)。(对于 SMTP 通道,当启用 LOG_CONNECTION 时,加号 (+) 表示入站到 SMTP 服务器;减号 (-) 表示通过 SMTP 客户机出站。)

  4. 条目的类型(在此示例中为 E);请参见表 21–2

  5. 邮件的大小(在此示例中为 1)。默认表示为千字节(使用 MTA 选项文件中的 BLOCK_SIZE 关键字可以更改此默认值)。

  6. 信封 From: 地址(在此示例中为 adam@sesta.com)。请注意带有空信封 From: 地址的邮件(例如通知邮件),此字段为空白。

  7. 原始格式的信封 To: 地址(在此示例中为 marlowe@siroe.com)。

  8. 信封 To: 地址(在此示例中为 marlowe@siroe.com)。

  9. 传送状态(仅适用于 SMTP 通道)。

下表说明了日志记录条目代码。

表 21–2 日志记录条目代码

条目 

说明 

发送至 SMTP 服务器的错误命令。收件人地址字段将包含被拒绝的命令,而诊断字段将包含 SMTP 服务器所给出的响应。MTA 通道选项 (MAX_B_ENTRIES) 用于控制将记录到给定会话中的错误命令的数量。默认值为 10。 

BA 

验证成功执行后事务中较早的错误命令。 

BS 

TLS 成功启动后的错误命令。 

BSA 

TLS 和 AUTH 的错误命令。 

成功出队列 

DA 

使用 SASL(验证)成功出队列 

DS 

使用 TLS(安全)成功出队列 

DSA 

使用 TLS 和 SASL(安全和验证)成功出队列 

入队列 

EA 

使用 SASL(验证)成功入队列 

ES 

使用 TLS(安全)成功入队列 

ESA 

使用 TLS 和 SASL(安全和验证)成功入队列 

拒绝尝试入队列(被从通道程序拒绝) 

拒绝收件人邮件。如果发件人请求 NOTIFY=NEVER DSN 标志设置、邮件超时,或者手动返回邮件(例如,imsimta qm "delete" 命令始终为每个收件人生成 "K" 记录,而 qm "return" 命令则生成 "K" 记录而非 "R" 记录)。这表示不会根据发件人自己的请求向发件人发送通知。

与 "K" 记录相比,"R" 记录也为相同的拒绝/超时类型,但在 "R" 中系统会根据失败邮件生成一封新的通知邮件(返回给原发件人)。 

出队列临时故障 

尝试出队列时收件人地址被拒绝(被主通道程序拒绝),或生成故障/退回邮件 

事务被异常中止时显示的警告消息。每个加入队列的收件人地址都有一个 "V" 记录。 

发送的警告消息以通知原发件人邮件尚未发送,但仍在重试的队列中。 

已成功发送给一些收件人,但临时未成功发送给此收件人;所有收件人的原始邮件文件已出队列,并在该位置将此收件人和其他未成功发送的收件人的新邮件文件加入队列 

SMTP 通道的 LOG_CONNECTION + 或 - 条目 

已关闭连接。将出现诊断字段。写入 connection.log_current(或者 mail.log_current,如果使用了单个日志文件)。用于记录关闭连接的原因。尤其是,如果关闭连接是由于达到了某些会话断开连接限制,则诊断字段中将显示此事实。 

已打开连接 

记录 SMTP 验证的成功信息和失败信息。格式与其他 O 和 C 条目相同。尤其是,相同的应用程序和传输信息字段以相同的顺序显示。如果已知用户名,则它将记录在用户名字段中。LOG_CONNECTION MTA 选项的位 7(值 128)将控制此过程。 

已拒绝连接 

建立连接之前尝试连接失败 

已收到 ETRN 命令 

LOG_CONNECTIONLOG_FILENAMELOG_MESSAGE_IDLOG_NOTARYLOG_PROCESSLOG_USERNAME 在 MTA 选项文件中全部启用后,格式将发生变化,如下面示例中所示。(此样例日志条目行已因版式原因而换行;实际日志条目将显示在一个物理行。)


19-Jan-1998 13:13:27.10 HOSTA   2e2d.2.1 tcp_local   l
 E 1 service@siroe.com rfc822;adam@sesta.com
 adam 276 /imta/queue/l/ZZ01IWFY9ELGWM00094D.00
 <01IWFVYLGTS499EC9Y@siroe.com> inetmail
 siroe.com (siroe.com [192.160.253.66])
                  

除了上面已讨论的那些字段外,其中的附加字段是:

  1. 运行通道进程的节点的名称(在本示例中为 HOSTA)。

  2. 进程 ID(以十六进制表示),其后是句号(点)字符和计数。如果此为多线程通道条目(即,tcp_* 通道条目),则在进程 ID 和计数之间还会显示线程 ID。在本示例中,进程 ID 是 2e2d.2.1

  3. 邮件的 NOTARY(传送收件人请求)标志,表示为整数(在本示例中为 276)。

  4. MTA 队列区域中的文件名(在本示例中为 /imta/queue/l/ZZ01IWFY9ELGWM00094D.00)。

  5. 邮件 ID(在本示例中为 <01IWFVYLGTS499EC9Y@siroe.com)。

  6. 正在执行的进程的名称(在本示例中为 inetmail)。在 UNIX 上,对于分发程序进程(例如 SMTP 服务器),此名称通常为 inetmail(除非已使用 SASL)。

  7. 连接信息(在本示例中为 siroe.com (siroe.com [192.160.253.66]))。连接信息由发送系统或通道名称组成,例如由 HELO/EHLO 线路上的发送系统表示的名称(对于外来 SMTP 邮件),或加入通道队列的官方主机名(对于其他类型的通道)。对于 TCP/IP 通道,发送系统的“真实”名称(即由 DNS 反向查找和/或 IP 地址报告的符号名称)也可在 ident* 通道关键字的控制下被报告在扩号内;请参见IDENT 查找。此示例假定使用其中一个关键字,例如使用默认的 identnone 关键字,该关键字选择显示在 DNS 中的名称和 IP 地址。

启用 MTA 日志记录

要仅收集几个特定 MTA 通道的统计信息,请仅启用感兴趣的那些 MTA 通道上的日志记录通道关键字。许多站点倾向于启用所有 MTA 通道上的日志记录。特别是,如果您要尝试跟踪问题,诊断某些问题的第一步是注意到邮件未进入您期望或想要的通道,启用所有通道的日志记录将有助于您调查此类问题。

Procedure在特定通道上启用 MTA 日志记录

步骤
  1. 编辑 imta.cnf 文件。

    该文件位于 /opt/SUNWmsgsr/config 目录中。

  2. 要为特定通道启用日志记录,请将 logging 关键字添加到通道定义中。例如:


    channel-name keyword1 keyword2 logging
    

    此外,您还可以设置一些配置参数,例如日志文件的目录路径、日志级别等等。请参见管理邮件存储、Admin 和 Default 服务的日志

Procedure在所有通道上启用 MTA 日志记录

步骤
  1. 编辑 imta.cnf 文件。

    该文件位于 /opt/SUNWmsgsr/config 目录中。

  2. 将 logging 关键字添加到 MTA 配置文件的通道块区域的 defaults 通道(请参见配置通道默认值)。例如:


    defaults logging notices 1 2 4 7 copywarnpost copysendpost postheadonly 
    noswitchchannel immnonurgent maxjobs 7 defaulthost siroe.com
    
    l defragment charset7 us-ascii charset8 iso-8859-01
    siroe.com

指定附加 MTA 日志记录选项

除了启用日志记录时通常提供的基本信息之外,您还可以通过设置 MTA 选项文件中的各种 LOG_* MTA 选项来指定要包含的其他可选信息字段。IMTA 调整文件 (msg_svr_base/config/imta_tailor) 中的 IMTA_OPTION_FILE 选项指定的文件将指定 MTA 选项文件。默认情况下,该文件为 msg_svr_base/config/option.dat 文件。

有关 MTA 选项文件的完整详细信息,请参见 《Sun Java System Messaging Server 6 2005Q4 Administration Reference》中的“Option File”

Procedure向系统日志发送 MTA 日志

步骤
  1. 编辑 MTA 选项文件。

  2. LOG_MESSAGES_SYSLOG 选项设置为 1。

    0 值为默认值并表示未执行系统日志(事件日志)记录。

Procedure与日志邮件条目相关联

步骤
  1. 编辑 MTA 选项文件。

  2. LOG_MESSAGE_ID 选项设置为 1。

    默认值为 0,表示邮件 ID 未保存在 mail.log 文件中。

Procedure标识邮件传送重试

步骤
  1. 编辑 MTA 选项文件。

  2. LOG_FILENAME 选项设置为 1。

    此选项便于立即发现特定邮件文件传送的重试次数。此选项在了解 MTA 是否将传送给多个收件人的邮件分割为磁盘上独立的邮件文件副本时也会很有用。

Procedure记录 TCP/IP 连接

步骤
  1. 编辑 MTA 选项文件。

  2. 设置 LOG_CONNECTION 选项。

    此选项可使 MTA 记录 TCP/IP 连接以及邮件通信流量。默认情况下,系统将连接日志条目写入 mail.log* 文件。也可以将连接日志条目写入 connection.log* 文件。有关更多信息,请参见 SEPARATE_CONNECTION_LOG 选项。

Procedure将条目写入 connection.log 文件

步骤
  1. 编辑 MTA 选项文件。

  2. SEPARATE_CONNECTION_LOG 选项设置为 1。

    使用此选项来指定将连接日志条目改写入 connection.log 文件中。默认值 0 将导致连接日志记录存储在 MTA 日志文件中。

Procedure通过进程 ID 与日志邮件相关联

步骤
  1. 编辑 MTA 选项文件。

  2. 设置 LOG_PROCESS 选项。

    LOG_CONNECTION 结合使用时,此选项通过进程 ID 启用连接条目与对应的邮件条目的关联关系。

Procedure将与使邮件加入队列的进程关联的用户名保存在 mail.log 文件中

步骤
  1. 编辑 MTA 选项文件。

  2. 设置 LOG_USERNAME 选项。

    此选项控制是否将与使邮件入队的进程相关联的用户名保存在 mail.log 文件中。对于使用了 SASL (SMTP AUTH) 的 SMTP 提交,用户名字段将是经过验证的用户名(带有星号字符前缀)。

MTA 邮件日志记录示例

记录在 MTA 邮件文件中的确切字段格式和字段列表将根据设置的日志记录选项而有所不同。本节将描述一些解释典型日志条目类别的示例。有关其他可选字段的说明,请参见指定附加 MTA 日志记录选项


注 –

由于印刷版式原因,日志文件条目被折叠成多行显示—实际日志文件条目是每个条目一行。


查看日志文件时,请记住在典型系统上会一次处理多封邮件。通常,与特定邮件相关的条目将散布在与其他同时正在处理的邮件相关的条目中。基本日志记录信息适用于收集通过 MTA 移动的邮件总体数目。

如果您希望有关至同一收件人的同一邮件的特定条目相关联,则启用 LOG_MESSAGE_ID。要将特定邮件与 MTA 队列区域中的特定文件相关联,或从条目查看已尝试传送特定的尚未成功出队列的邮件的次数,请启用 LOG_FILENAME。对于 SMTP 邮件(通过 TCP/IP 通道处理),如果希望将远程系统的 TCP 连接与已发送的邮件相关联,则启用 LOG_PROCESSLOG_CONNECTION 的某一级别。

MTA 日志记录示例:用户发送外发邮件

下面的示例显示了如果本地用户通过外发 TCP/IP 通道发送邮件(例如发送到 Internet),而可能看到的日志条目类别相当基本的示例。在本示例中,启用了 LOG_CONNECTION。标有 (1) 和 (2) 的行是一个条目—它们在实际日志文件中将显示为一个物理行。类似地,标有 (3) - (7) 的行是一个条目并将显示为一个物理行。


示例 21–1 MTA 日志记录:本地用户发送外发邮件


19-Jan-1998 19:16:57.64 l            tcp_local    E 1         (1)
 adam@sesta.com rfc822;marlowe@siroe.com marlowe@siroe.com     (2)
 
 19-Jan-1998 19:17:01.16 tcp_local                  D 1        (3)
 adam@sesta.com rfc822;marlowe@siroe.com marlowe@siroe.com     (4)
 dns;thor.siroe.com
 (TCP|206.184.139.12|2788|192.160.253.66|25)                   (5)
 (THOR.SIROE.COM -- Server ESMTP [iMS V5.0 #8694])             (6)
 smtp;250 2.1.5 marlowe@siroe.com and options OK.              (7)
  1. 此行显示了一 (1) 块邮件从 l 通道到 tcp_local 通道入队列 (E) 的日期和时间。

  2. 这是与 (1) 位于同一日志文件物理行的一部分,因排版方便而在此处分行显示。显示了信封 From: 地址(在本例中为 adam@sesta.com)以及原先版本和当前版本的信封 To: 地址(在本例中为 marlowe@siroe.com )。

  3. 显示了一 (1) 块邮件从 tcp_local 通道出队列 (D) 的日期和时间—即,由 tcp_local 通道成功发送到某一远程 SMTP 服务器。

  4. 显示了信封 From: 地址、原始信封 To: 地址和当前格式的信封 To: 地址。

  5. 显示了与之建立连接的实际系统在 DNS 中名为 thor.siroe.com,本地发送系统具有 IP 地址 206.184.139.12 并从端口 2788 发送,远程目标系统具有 IP 地址 192.160.253.66 并且远程目标系统的连接端口是端口 25。

  6. 显示了远程 SMTP 服务器的 SMTP 标志行。

  7. 显示了返回的此地址的 SMTP 状态代码;250 是基本的 SMTP 成功代码,而此远程 SMTP 服务器使用扩展的 SMTP 状态代码和某一附加文本进行响应。


MTA 日志记录示例:包括可选日志记录字段

此示例显示了类似于示例 21–3 中所示的日志记录条目,但通过设置显示文件名和邮件 ID 的LOG_FILENAME=1LOG_MESSAGE_ID=1 记录了附加信息;请参见 (1) 和 (2)。特别是邮件 ID 可用于将条目与邮件相关联。


示例 21–2 MTA 日志记录:包括可选日志记录字段


19-Jan-1998 19:16:57.64 l            tcp_local    E 1
  adam@sesta.com rfc822;marlowe@siroe.com marlowe@siroe.com
  /imta/queue/tcp_local/ZZ01ISKLSKLZLI90N15M.00
   <01ISKLSKC2QC90N15M@sesta.com>    (1)
                  
 19-Jan-1998 19:17:01.16 tcp_local                  D 1
  adam@sesta.com rfc822;marlowe@siroe.com marlowe@siroe.com
  /imta/queue/tcp_local/Z01ISKLSKLZLI90N15M.00
    <01ISKLSKC2QC90N15M@sesta.com>   (2)
  dns;thor.siroe.com (TCP|206.184.139.12|2788|192.160.253.66|25)
  (THOR.SIROE.COM -- Server ESMTP [iMS V5.0 #8694])
  smtp;250 2.1.5 marlowe@siroe.com and options OK.

MTA 日志记录示例:发送到列表

此示例对启用 LOG_FILENAME=1LOG_MESSAGE_ID=1LOG_CONNECTION=1 将邮件发送给多个收件人进行了说明。此处已将用户 adam@sesta.com 发送给 MTA 邮递列表 test-list@sesta.com,此邮递列表已扩展到 bob@sesta.comcarol@varrius.comdavid@varrius.com。请注意每个收件人的原始信封 To: 地址是 test-list@sesta.com,尽管当前信封 To: 地址是每个收件人各自的地址。请注意邮件 ID 是如何保持一致的,尽管涉及了两个单独的文件(一个用于 l 通道而另一个用于出 tcp_local 通道)。


示例 21–3 MTA 日志记录:发送到列表


19-Jan-1998 20:01:44.10 l    l                    E 1
  adam@sesta.com rfc822;test-list@sesta.com bob
  imta/queue/l/ZZ01ISKND3DE1K90N15M.00
  <01ISKND2H8MS90N15M@sesta.com>
 
 19-Jan-1998 20:01:44.81 l            tcp_local    E 1
  adam@sesta.com rfc822;test-list@sesta.com carol@varrius.com
  imta/queue/tcp_local/ZZ01ISKND2WS1I90N15M.00 
  <01ISKND2H8MS90N15M@sesta.com>
 
 19-Jan-1998 20:01:44.81 l            tcp_local    E 1
  adam@sesta.com rfc822;test-list@sesta.com david@varrius.com
  imta/queue/tcp_local/ZZ01ISKND2WS1I90N15M.00
 <01ISKND2H8MS90N15M@sesta.com>
 
 19-Jan-1998 20:01:50.69 l                         D 1
  adam@sesta.com rfc822;test-list@sesta.com bob
  imta/queue/l/ZZ01ISKND3DE1K90N15M.00
  <01ISKND2H8MS90N15M@sesta.com>
 
 19-Jan-1998 20:01:57.36 tcp_local                  D 1
  adam@sesta.com rfc822;test-list@sesta.com carol@varrius.com
  imta/queue/tcp_local/ZZ01ISKND2WS1I90N15M.00
  <01ISKND2H8MS90N15M@sesta.com>
  dns;gw.varrius.com (TCP|206.184.139.12|2788|192.160.253.66|25)
  (gw.varrius.com -- SMTP Sendmail)
  smtp;250 OK.
 
 19-Jan-1998 20:02:06.14 tcp_local                  D 1
  adam@sesta.com rfc822;test-list@sesta.com david@varrius.com
  imta/queue/tcp_local/ZZ01ISKND2WS1I90N15M.00
  <01ISKND2H8MS90N15M@sesta.com>
  dns;gw.varrius.com (TCP|206.184.139.12|2788|192.160.253.66|25)
  (gw.varrius.com -- SMTP Sendmail)
  smtp;250 OK.

MTA 日志记录:发送到不存在的域

此示例对尝试发送到不存在的域(此处为 very.bogus.com)进行了说明;即,发送到未被 MTA 的重写规则发现其不存在的、并且被 MTA 匹配到外发 TCP/IP 通道的域名。此示例假设 MTA 选项设置为 LOG_FILENAME=1LOG_MESSAGE_ID=1

TCP/IP 通道在 DNS 中运行并检查域名时,DNS 返回一个错误,指示该名称不存在。请注意 [5] 中所示的“拒绝”条目 (R),以及 [6] 中所示的 DNS 返回的错误(指示该域名为非法域名)。

由于提交邮件后地址被拒绝,MTA 将生成退回邮件给原发送人。MTA 将新拒绝邮件加入队列以发送给原发送人 (1),并在删除原出站邮件((5) 中所示的 R 条目)之前,将一份副本发送给邮寄主管 (4)。

通知邮件(例如退回邮件)具有空信封 From: 地址—例如,如 (2) 和 (8) 中所示—其中信封 From: 字段显示为空白。由 MTA 生成的退回邮件的初始排队显示了新通知邮件的邮件 ID 和紧随其后的原始邮件 (3) 的邮件 ID。(此类信息对于 MTA 不是总可以使用,但可用于记录时,它允许对应于出站失败的邮件的日志条目与对应于结果通知邮件的日志条目相关联。)此类通知邮件入队到进程通道,该通道转而又将这些邮件排队到相应的目标通道 (7)。


示例 21–4 MTA 日志记录:发送到不存在的域


19-JAN-1998 20:49:04 l            tcp_local    E 1
  adam@sesta.com rfc822;user@very.bogus.com user@very.bogus.com
  imta/queue/tcp_local/ZZ01ISKP0S0LVQ94DU0K.00
 <01ISKP0RYMAS94DU0K@SESTA.COM>
 
19-JAN-1998 20:49:33 tcp_local    process      E 1                (1)
 rfc822;adam@sesta.com adam@sesta.com                             (2)
 imta/queue/process/ZZ01ISKP0S0LVQ94DTZB.00
 <01ISKP22MW8894DTAS@SESTA.COM>,<01ISKP0RYMAS94DU0K@SESTA.COM>    (3)

19-JAN-1998 20:49:33 tcp_local    process      E 1                (4)
 rfc822;postmaster@sesta.com postmaster@sesta.com
 imta/queue/process/ZZ01ISKP0S0LVQ94DTZB.00
 <01ISKP22MW8894DTAS@SESTA.COM>,<01ISKP0RYMAS94DU0K@SESTA.COM>
 
19-JAN-1998 20:50:07 tcp_local                  R 1               (5)
 adam@sesta.com rfc822;user@very.bogus.com user@very.bogus.com
 imta/queue/tcp_local/ZZ01ISKP0S0LVQ94DU0K.00
 <01ISKP0RYMAS94DU0K@SESTA.COM>
 Illegal host/domain name found                                   (6)

19-JAN-1998 20:50:08 process      l            E 3                (7)
 rfc822;adam@sesta.com adam                                       (8)
 imta/queue/l/ZZ01ISKP23BUQS94DTYL.00
 <01ISKP22MW8894DTAS@SESTA.COM>
 
19-JAN-1998 20:50:08 process      l            E 3
  rfc822;postmaster@sesta.com postmaster
  imta/queue/l/ZZ01ISKP23BUQS94DTYL.00
 <01ISKP22MW8894DTAS@SESTA.COM>
 
19-JAN-1998 20:50:12 l                         D 3
  rfc822;adam@sesta.com adam
  imta/queue/l/ZZ01ISKP23BUQS94DTYL.00
  <01ISKP22MW8894DTAS@SESTA.COM>
 
19-JAN-1998 20:50:12 l                         D 3
  rfc822;postmaster@sesta.com postmaster
  imta/queue/l/ZZ01ISKP23BUQS94DTYL.00
  <01ISKP22MW8894DTAS@SIROE.COM>

MTA 日志记录示例:发送至不存在的远程用户

此示例对尝试发送到远程系统上的错误地址进行了说明。此示例假设 MTA 选项设置为 LOG_FILENAME=1LOG_MESSAGE_ID=1,通道选项设置为 LOG_BANNER=1LOG_TRANSPORTINFO=1。请注意拒绝条目 (R),如 (1) 中所示。但与示例 21–4 中的拒绝条目不同,请注意此处的拒绝条目显示了已建立到远程系统的连接,并显示了远程 SMTP 服务器发布的 SMTP 错误代码,(2) 和 (3)。(2) 中所示的信息是设置通道选项 LOG_BANNER=1LOG_TRANSPORTINFO=1 的结果。


示例 21–5 MTA 日志记录:发送至不存在的远程用户


20-JAN-1998 13:11:05 l            tcp_local    E 1
  adam@sesta.com rfc822;nonesuch@siroe.com nonesuch@siroe.com
  imta/queue/tcp_local/ZZ01ISLNBB1JOE94DUWH.00
  <01ISLNBAWV3094DUWH@sesta.com>
 
20-JAN-1998 13:11:08 tcp_local    process      E 1
  rfc822;adam@sesta.com adam@sesta.com
  imta/queue/process/ZZ01ISLNBB1JOE94DSGB.00
  <01ISLNBFKIDS94DUJ8@sesta.com>,<01ISLNBAWV3094DUWH@sesta.com>
 
 20-JAN-1998 13:11:08 tcp_local    process      E 1
  rfc822;postmaster@sesta.com postmaster@sesta.com
  imta/queue/process/ZZ01ISLNBB1JOE94DSGB.00
  <01ISLNBFKIDS94DUJ8@sesta.com>,<01ISLNBAWV3094DUWH@sesta.com>
 
20-JAN-1998 13:11:11 tcp_local                  R 1       (1)
  adam@sesta.com rfc822;nonesuch@siroe.com nonesuch@siroe.com
  imta/queue/tcp_local/ZZ01ISLNBB1JOE94DUWH.00 
  <01ISLNBAWV3094DUWH@sesta.com>
  dns;thor.siroe.com
  (TCP|206.184.139.12|2788|192.160.253.66|25)             (2)
  (THOR.SIROE.COM -- Server ESMTP [iMS V5.0 #8694])
  smtp; 553 unknown or illegal user: nonesuch@siroe.com   (3)
 
20-JAN-1998 13:11:12 process      l            E 3
  rfc822;adam@sesta.com adam
  imta/queue/l/ZZ01ISLNBGND1094DQDP.00
  <01ISLNBFKIDS94DUJ8@sesta.com>
 
20-JAN-1998 13:11:12 process      l            E 3
  rfc822;postmaster@sesta.com postmaster
  imta/queue/l/ZZ01ISLNBGND1094DQDP.00
  <01ISLNBFKIDS94DUJ8@sesta.com>
 
20-JAN-1998 13:11:13 l                         D 3
  rfc822;adam@sesta.com adam@sesta.com
  imta/queue/l/ZZ01ISLNBGND1094DQDP.00
  <01ISLNBFKIDS94DUJ8@sesta.com>
 
20-JAN-1998 13:11:13 l                         D 3
  rfc822;postmaster@sesta.com postmaster@sesta.com
  imta/queue/l/ZZ01ISLNBGND1094DQDP.00
  <01ISLNBFKIDS94DUJ8@sesta.com>

MTA 日志记录示例:拒绝远程端提交邮件的尝试

此示例对当 MTA 拒绝远程端提交邮件的尝试时所产生的日志文件条目的类别进行了说明。(本示例假设未启用 LOG_* 可选项,因此条目中仅记录了基本字段。请特别注意,启用 LOG_CONNECTION 选项将导致在此类 J 条目中产生附加信息字段。)在此例中,示例是对已使用 ORIG_SEND_ACCESS 映射设置了 SMTP 中继阻止(请参见配置 SMTP 中继阻止)的 MTA 而言的 ,该映射包括:

ORIG_SEND_ACCESS

! ...numerous entries omitted...
!
   tcp_local|*|tcp_local|*   $NRelaying$ not$ permitted

其中 alan@very.bogus.com 不是内部地址。因此远程用户 harold@varrius.com 尝试通过 MTA 系统中继到远程用户 alan@very.bogus.com 遭到拒绝。


示例 21–6 MTA 日志记录:拒绝远程端提交邮件的尝试


28-May-1998 12:02:23 tcp_local            J 0               (1)
 harold@varrius.com rfc822; alan@very.bogus.com             (2)
 550 5.7.1 Relaying not permitted: alan@very.bogus.com      (3)
  1. 此日志显示了拒绝远程端提交邮件的尝试的日期和时间。拒绝由 J 记录表示。(MTA 通道尝试发送邮件而被拒绝的情况以 R 记录表示,如示例 21–4示例 21–5 中所示)。


    注 –

    写入日志的最后一个 J 记录将有一个指示,用于声明它是给定会话的最后一个 J 记录。此外,Messaging Server 的当前版本没有对 J 记录的数量做出限制。


  2. 显示了尝试的信封 From: 和 To: 地址、地址。在此示例中,无可用的原始信封 To: 信息,因此该字段为空。

  3. 此条目包括 MTA 发给远程端(尝试的发件人)的 SMTP 错误消息。


MTA 日志记录示例:多次传送尝试

此示例对在第一次尝试时不能发送邮件所产生的日志文件条目的类别进行了说明,因此 MTA 将多次尝试发送该邮件。本示例假设选项设置为 LOG_FILENAME=1LOG_MESSAGE_ID=1


示例 21–7 MTA 日志记录:多次传送尝试


15-Jan-1998 10:31:05.18 tcp_internal   tcp_local   E 3          (1)
 adam@hosta.sesta.com rfc822;user@some.org user@some.org
 imta/queue/tcp_local/ZZ01IS3D2ZP7FQ9UN54R.00 
 <01IRUD7SVA3Q9UN2D4@sesta.com>
 
15-Jan-1998 10:31:10.37 tcp_local                  Q 3          (2)
 adam@hosta.sesta.com rfc822;user@some.org user@some.org
 imta/queue/tcp_local/ZZ01IS3D2ZP7FQ9UN54R.00                   (3)
 <01IRUD7SVA3Q9UN2D4@sesta.com>
 TCP active open: Failed connect()    Error: no route to host   (4)
 
     ...several hours worth of entries...

15-Jan-1998 12:45:39.48 tcp_local                  Q 3          (5)
  adam@hosta.sesta.com rfc822;user@some.org user@some.org
  imta/queue/tcp_local/ZY01IS3D2ZP7FQ9UN54R.00                  (6)
  <01IRUD7SVA3Q9UN2D4@sesta.com>
  TCP active open: Failed connect()    Error: no route to host
 
  ...several hours worth of entries...

 15-Jan-1998 16:45:24.72 tcp_local                  Q 3
  adam@hosta.sesta.com rfc822;user@some.org user@some.org
  imta/queue/tcp_local/ZX01IS67NY4RRK9UN7GP.00                  (7)
                   <01IRUD7SVA3Q9UN2D4@sesta.com>
  TCP active open: Failed connect() Error: connection refused   (8)

  ...several hours worth of entries...

 15-Jan-1998 20:45:51.55 tcp_local                  D 3         (9)
  adam@hosta.sesta.com rfc822;user@some.org user@some.org
  imta/queue/tcp_local/ZX01IS67NY4RRK9UN7GP.00
  <01IRUD7SVA3Q9UN2D4@sesta.com>
  dns;host.some.org (TCP|206.184.139.12|2788|192.1.1.1|25)
  (All set, fire away)
  smtp; 250 Ok
  1. 邮件进入 tcp_internal 通道—可能来自 POP 或 IMAP 客户机,或可能来自使用 MTA 作为 SMTP 中继的组织中的其他主机;MTA 将其加入到 tcp_local 外发通道队列。

  2. 第一次传送尝试失败,由 Q 条目表示。

  3. ZZ* 文件名可以看出这是第一次传送尝试。

  4. TCP/IP 软件包找不到至远程端的路由时,此传送尝试将失败。与 示例 21–4 不同,DNS 并非拒绝目标域名 some.org;而是,"no route to host" 错误表示在发送端和接收端之间存在网络问题。

  5. 下一次 MTA 定期作业运行时,它重新尝试传送,再次不成功。

  6. 文件名现在为 ZY*,表示这是第二次尝试。

  7. 第三次未成功尝试的文件名是 ZX*

  8. 下一次定期作业重新尝试传送,传送失败,尽管这一次 TCP/IP 软件包未对无法进入远程 SMTP 服务器表示不满,但其实是远程 SMTP 服务器不接受连接。(可能远程端修复了其网络问题,但尚未备份其 SMTP 服务器- - 或其 SMTP 服务器正忙于处理其他邮件而无法在 MTA 尝试连接时接受连接。)

  9. 最终对邮件取消排队。


MTA 日志记录:通过转换通道路由外来 SMTP 邮件

此示例对通过转换通道路由邮件的情况进行了说明。假设此站点具有 CONVERSIONS 映射表,例如:

CONVERSIONS
  IN-CHAN=tcp_local;OUT-CHAN=l;CONVERT   Yes

本示例假设选项设置为 LOG_FILENAME=1LOG_MESSAGE_ID=1


示例 21–8 MTA 日志记录:通过转换通道路由外来 SMTP 邮件


04-Feb-1998 00:06:26.72 tcp_local    conversion   E 9      (1)
  amy@siroe.edu rfc822;bert@sesta.com bert@sesta.com
  imta/queue/conversion/ZZ01IT5UAMZ4QW98518O.00
  <01IT5UALL14498518O@siroe.edu>
 
 04-Feb-1998 00:06:29.06 conversion   l            E 9     (2)
                   amy@siroe.edu rfc822;bert@sesta.com bert
  imta/queue/l/ZZ01IT5UAOXLDW98509E.00  <01IT5STUMUFO984Z8L@siroe.edu>
 
04-Feb-1998 00:06:29.31 conversion                D 9      (3)
 amy@siroe.edu rfc822;bert@sesta.com bert
 imta/queue/conversion/ZZ01IT5UAMZ4QW98518O.00
 <01IT5UALL14498518O@siroe.edu>
 
 04-Feb-1998 00:06:32.62 l                         D 9     (4)
  amy@siroe.edu rfc822;bert@siroe.com bert
  imta/queue/l/ZZ01IT5UAOXLDW98509E.00
  <01IT5STUMUFO984Z8L@siroe.edu>

               
  1. 来自外部用户 amy@siroe.edu 的邮件进入,其收件人地址为 l 通道收件人 bert@sesta.com 的地址。但是,CONVERSIONS 映射条目使邮件初始时排到转换通道(而不是直接进入 l 通道)。

  2. 转换通道运行并将邮件加入 l 通道队列。

  3. 然后转换通道可以使邮件出队列(删除旧邮件文件)。

  4. 最后,l 通道使邮件出队列(传送)。


MTA 日志记录示例:出站连接日志记录

此示例说明了通过 LOG_CONNECTION=3 启用连接日志记录后外发邮件的日志输出。在本示例中还假设 LOG_PROCESS=1LOG_MESSAGE_ID=1LOG_FILENAME=1。本示例显示了用户 adam@sesta.com 将同一邮件(请注意每个邮件副本的邮件 ID 都相同)发送给三个收件人 bobby@hosta.sesta.comcarl@hosta.sesta.comdave@hostb.sesta.com 的情况。本示例假设邮件从标有(如此类通道通常的那样)single_sys 通道关键字的 tcp_local 通道发出。因此,如 (1)、(2) 和 (3) 中所示,系统将在磁盘上为不同主机名的每组收件人分别创建邮件文件,其中 bobby@hosta.sesta.comcarl@hosta.sesta.com 收件人存储在同一邮件文件中,而 dave@hostb.sesta.com 收件人存储在另一邮件文件中。


示例 21–9 MTA 日志记录:出站连接日志记录


19-Feb-1998 10:52:05.41 1e488.0 l            tcp_local    E 1
 adam@sesta.com rfc822;bobby@hosta.sesta.com bobby@hosta.sesta.com
 imta/queue/tcp_local/ZZ01ITRF7BO388000FCN.00                    (1)
  <01ITRF7BDHS6000FCN@SESTA.COM>

19-Feb-1998 10:52:05.41 1e488.0 l            tcp_local    E 1
 adam@sesta.com rfc822;carl@hosta.sesta.com carl@hosta.sesta.com
 imta/queue/tcp_local/ZZ01ITRF7BO388000FCN.00                    (2)
   <01ITRF7BDHS6000FCN@SESTA.COM>

19-Feb-1998 10:52:05.74 1e488.1 l            tcp_local    E 1
 adam@sesta.com rfc822;dave@hostb.sesta.com dave@hostb.sesta.com
 imta/queue/tcp_local/ZZ01ITRF7C11FU000FCN.00                    (3)
   <01ITRF7BDHS6000FCN@SESTA.COM>

19-Feb-1998 10:52:10.79 1f625.2.0 tcp_local    -            O    (4)
 TCP|206.184.139.12|5900|206.184.139.66|25
 SMTP/hostb.sesta.com/mailhub.sesta.com                          (5)
 
19-Feb-1998 10:52:10.87 1f625.3.0 tcp_local    -            O    (6)
 TCP|206.184.139.12|5901|206.184.139.70|25
 SMTP/hosta.sesta.com/hosta.sesta.com                            (7)

19-Feb-1998 10:52:12.28 1f625.3.1 tcp_local                  D 1
 adam@sesta.com rfc822;bobby@hosta.sesta.com bobby@hosta.sesta.com
 imta/queue/tcp_local/ZZ01ITRF7BO388000FCN.00
  <01ITRF7BDHS6000FCN@SESTA.COM>
 hosta.sesta.com dns;hosta.sesta.com                            (8)
 (TCP|206.184.139.12|5901|206.184.139.70|25)
 (hosta.sesta.com -- Server ESMTP [iMS V5.0 #8790])
 (TCP|206.184.139.12|5901|206.184.139.70|25)
 smtp;250 2.1.5 bobby@hosta.sesta.com and options OK.

19-Feb-1998 10:52:12.28 1f625.3.1 tcp_local                  D 1
 adam@sesta.com rfc822;carl@hosta.sesta.com carl@hosta.sesta.com
 imta/queue/tcp_local/ZZ01ITRF7BO388000FCN.00
  <01ITRF7BDHS6000FCN@SESTA.COM>
 hosta.sesta.com dns;hosta.sesta.com
 (TCP|206.184.139.12|5901|206.184.139.70|25)
 (hosta.sesta.com -- Server ESMTP [iMS V5.0 #8790])
 (TCP|206.184.139.12|5901|206.184.139.70|25)
 smtp;250 2.1.5 carl@hosta.sesta.com and options OK.

19-Feb-1998 10:52:12.40 1f625.3.2 tcp_local      -            C  (9)
 TCP|206.184.139.12|5901|206.184.139.70|25
 SMTP/hosta.sesta.com/hosta.sesta.com

19-Feb-1998 10:52:13.01 1f625.2.1 tcp_local                  D 1
 adam@sesta.com rfc822;dave@hostb.sesta.com dave@hostb.sesta.com
 imta/queue/tcp_local/ZZ01ITRF7C11FU000FCN.00
  <01ITRF7BDHS6000FCN@SESTA.COM>
 mailhub.sesta.com dns;mailhub.sesta.com
 (TCP|206.184.139.12|5900|206.184.139.66|25)
 (MAILHUB.SESTA.COM -- Server ESMTP [iMS V5.0 #8694])
 (TCP|206.184.139.12|5900|206.184.139.66|25)
 smtp;250 2.1.5 dave@hostb.sesta.com and options OK.

19-Feb-1998 10:52:13.05 1f625.2.2 tcp_local      -            C  (10)
                  
 TCP|206.184.139.12|5900|206.184.139.66|25
 SMTP/hostb.sesta.com/mailhub.sesta.com

               
  1. 邮件已排入队列,准备发给第一个收件人...

  2. ....准备发给第二个收件人....

  3. ....准备发给第三个收件人。

  4. 设置 LOG_CONNECTION=3 将使 MTA 写入此条目。减号 (-) 表示此条目指外发连接。O 表示此条目对应于连接的开口。同时请注意尽管此开口由线程 2 和线程 3 来执行,但由于多线程的 TCP/IP 通道使用同一进程来处理这些不同的连接开口,因此此处的进程 ID 相同(均为 1f625)。

  5. 由于要连接到两个单独的远程系统,独立线程中的多线程 SMTP 客户机将打开与每个系统的连接—第一个显示在本条目中,第二个显示在 7 中。条目的此部分显示了发送和目标 IP 号以及端口号,并显示了初始主机名和通过 DNS 查找到的主机名。在 SMTP/initial-host/dns-host 子句中,请注意初始主机名和在初始主机名上执行 DNS MX 记录查找后所使用的主机名的显示:mailhub.sesta.com 显然是 hostb.sesta.com 的 MX 服务器。

  6. 多线程的 SMTP 客户机在单独的线程中(尽管进程相同)打开到第二系统的连接。

  7. 由于要连接到两个单独的远程系统,独立线程中的多线程 SMTP 客户机将打开与每个系统的连接—第二个显示在本条目中,第一个显示在上面的 5 中。条目的此部分显示了发送和目标 IP 号以及端口号,并显示了初始主机名和通过 DNS 查找到的主机名。在本示例中,系统 hosta.sesta.com 显然自己直接接收邮件。

  8. 除了产生特定的连接条目外,LOG_CONNECTION=3 还可将与连接相关的信息包含进常规邮件条目中,如此处所示。

  9. 设置 LOG_CONNECTION=3 将使 MTA 写入此条目。所有邮件(本示例中的 bobby 和 carl 邮件)出队列后,系统将关闭连接,如此条目中的 C 所表示。


MTA 日志记录示例:入站连接日志记录

此示例说明了通过 LOG_CONNECTION=3 启用连接日志记录后外来 SMTP 邮件的日志输出。


示例 21–10 MTA 日志记录:入站连接日志记录


19-Feb-1998 17:02:08.70 tcp_local    +            O          (1)
 TCP|206.184.139.12|25|192.160.253.66|1244 SMTP              (2)

19-Feb-1998 17:02:26.65 tcp_local    l             E 1
 service@siroe.com rfc822;adam@sesta.com adam
 THOR.SIROE.COM (THOR.SIROE.COM [192.160.253.66])            (3)

 19-Feb-1998 17:02:27.05 tcp_local    +             C        (4)
                   TCP|206.184.139.12|25|192.160.253.66|1244 SMTP
 
19-Feb-1998 17:02:31.73 l                          D 1
  service@siroe.com rfc822;adam@sesta.com adam
  1. 远程系统打开一个连接。字符 O 表示此条目与打开连接有关;字符 + 表示此条目与外来连接有关。

  2. 显示用于连接的 IP 号和端口。在此条目中,接收系统(创建日志文件条目的系统)具有 IP 地址 206.184.139.12 并且将连接指向端口 25;发送系统具有 IP 地址 192.160.253.66 并从端口 1244 发送。

  3. 在将外来 TCP/IP 通道 (tcp_local) 的邮件加入 l 通道收件人队列的条目中,请注意由于启用了 LOG_CONNECTION=3 而包含了超过默认值范围的信息。特别是,发送系统在其 HELO 或 EHLO 行中声明的名称、在连接 IP 号上由 DNS 反向查找到的发送系统的名称,以及发送系统的 IP 地址均被记录下来;请参见第 12 章,配置通道定义行为。

  4. 关闭入站连接。字符 C 表示此条目与关闭连接有关;字符 + 表示此条目与外来连接有关。


启用分发程序调试

分发程序错误和调试输出(如果已启用)将被写入 MTA 日志目录中的 dispatcher.log 文件。在 msg_svr_base/imta/dispatcher.cnf 文件中指定分发程序配置信息。安装时将创建一个默认的配置文件,可不必对其进行更改而直接使用。但是,如果出于安全性或性能原因需要修改默认配置文件,则可以通过编辑 dispatcher.cnf 文件来实现此操作。

表 21–3 分发程序调试位

位 

 

十六进制值 

十进制值 

用法 

 

x 00001 

基本服务分发程序主模块调试。 

x 00002 

附加服务分发程序主模块调试。 

x 00004 

服务分发程序配置文件日志记录。 

x 00008 

基本服务分发程序其他调试。 

x 00010 

16 

基本服务调试。 

x 00020 

32 

附加服务调试。 

x 00040 

64 

进程相关服务调试。 

x 00080 

128 

不使用。 

x 00100 

256 

基本服务分发程序和进程通信调试。 

x 00200 

512 

附加服务分发程序和进程通信调试。 

10 

x 00400 

1024 

软件包级别通信调试。 

11 

x 00800 

2048 

不使用。 

12 

x 01000 

4096 

基本工作进程调试。 

13 

x 02000 

8192 

附加工作进程调试。 

14 

x 04000 

16384 

附加工作进程调试,特别是连接切换。 

15 

x 08000 

32768 

不使用。 

16 

x 10000 

65536 

基本工作进程到服务分发程序 I/O 调试。 

17 

x 20000 

131072 

附加工作进程到服务分发程序 I/O 调试。 

20 

x 100000 

1048576 

基本统计信息调试。 

21 

x 200000 

2097152 

附加统计信息调试。 

24 

x 1000000 

16777216 

将 PORT_ACCESS 拒绝记录到 dispatcher.log 文件中。 

Procedure启用分发程序错误调试输出

步骤
  1. 编辑 dispatcher.cnf 文件。

  2. DEBUG 选项设置为 -1。

    您还可以设置逻辑变量或环境变量 IMTA_DISPATCHER_DEBUG (UNIX),它以十六进制将 32 位调试掩码定义为值 FFFFFFFF。上表介绍了每个位的含义。

Procedure设置分发程序参数 (Solaris)

分发程序配置文件中提供的分发程序服务将影响各种系统参数的要求。系统的堆大小 (datasize) 必须能够满足分发程序的线程堆栈使用。

步骤
  1. 要显示堆大小(即默认的 datasize),请使用以下命令之一:

    csh 命令:


    # limit
    

    ksh 命令:


    # ulimit -a
    

    Solaris 实用程序


    # sysdef
    
  2. 对每个分发程序服务计算 STACKSIZE*MAX_CONNS,然后把对每项服务计算的值相加。系统的堆大小必须至少是此数目的两倍。

管理邮件存储、Admin 和 Default 服务的日志

本节介绍了邮件存储(POP、IMAP 和 HTTP)、Admin 和 Default 服务的日志记录。(请参见表 21–1)。

对于这些服务,您可以使用 Console 来指定日志设置和查看日志。您指定的设置将影响所记录的事件以及事件的数目。分析日志文件时,您可以使用这些设置和其他特性来完善日志事件的搜索。

本节包含以下小节:

了解服务日志特性

本节描述了邮件存储和管理服务的以下日志特性:日志记录级别、日志事件的类别、日志文件名约定和日志文件目录。

日志记录级别

日志记录的级别或优先级定义了日志记录活动的详细程度或冗长度。高优先级意味着较简略,仅记录具有高优先级(高严重程度)的事件。低级别意味着更为详细,将在日志文件中记录更多事件。

您可以通过设置 logfile.service.loglevel 配置参数来为每种服务(POP、IMAP、HTTP、Admin 和 Default)单独设置日志记录级别(请参见定义和设置服务日志记录选项)。您还可以使用日志记录级别来过滤对日志事件的搜索。表 21–4 对可用级别进行了说明。这些日志记录级别是 UNIX syslog 工具所定义的级别的子集。

表 21–4 存储和管理服务的日志记录级别

级别 

说明 

Critical 

最少的日志记录信息。每当发生严重问题或紧急情况(例如服务器无法访问邮箱或其运行所需的库)时,将一个事件写入日志。 

Error 

每当发生错误情况(例如尝试连接到客户机或其他服务器失败)时,将一个事件写入日志。 

Warning 

每当发生警告情况(例如服务器无法理解客户机所发送的通信)时,将一个事件写入日志。 

Notice 

每当发生通知(正常但重要的情况,例如用户登录失败或会话关闭)时,将一个事件写入日志。这是默认日志级别。 

Information 

执行每个重要操作(例如用户成功登录、注销、创建或重命名邮箱)时,将一个事件写入日志。 

Debug 

最冗长的日志记录。仅供调试使用。执行每个进程或任务中的单个步骤时都将事件写入日志,用以确定问题。 

当选择一个特定日志记录级别时,与该级别以及高于该级别(较低冗长度)的所有级别相对应的事件都将包括在日志记录内。日志记录的默认级别为“通知”。


注 –

指定的日志记录越详细,日志文件将占用的磁盘空间就越大;有关指导原则,请参见定义和设置服务日志记录选项


日志事件的类别

在每个支持的服务或协议中,Messaging Server 将根据日志事件所发生的设备或功能区进一步对日志事件进行分类。每个日志事件都包含生成日志事件的设备的名称。这些类别将有助于在搜索过程中过滤事件。表 21–5 列出了 Messaging Server 为日志记录目的所标识的类别。

表 21–5 日志事件的发生类别

设备 

说明 

General 

与此协议或服务相关的无明显特征的操作 

LDAP 

与 Messaging Server 访问 LDAP 目录数据库相关的操作 

Network 

与网络连接相关的操作(套接字错误归入此类别) 

Account 

与用户帐户相关的操作(用户登录归入此类别) 

Protocol 

与特定于协议的命令相关的协议级操作(由 POP、IMAP 或 HTTP 函数返回的错误归入此类别) 

Stats 

与收集服务器统计信息相关的操作 

Store 

与访问邮件存储相关的低级操作(读/写错误归入此类别) 

有关在日志搜索中将类别用作过滤器的示例,请参见搜索并查看服务日志

服务日志文件目录

每项日志记录服务均被指定了单独的目录,其中存储了服务的日志文件。所有 IMAP 日志文件均存储在一起,所有 POP 日志文件及其他服务的日志文件也是如此。您可以定义每个目录的位置,也可以定义目录中允许存在的日志文件的最大大小和数目。

请确保存储容量足够所有日志文件使用。日志数据可能量很大,尤其在较低(较冗长)的日志记录级别中。

同时,定义适当的日志记录级别、日志旋转、日志过期和服务器备份策略也很重要,以便备份所有日志文件目录并使这些目录都不会过载;否则,就可能丢失信息。请参见定义和设置服务日志记录选项

了解服务日志文件格式

所有由 Messaging Server 创建的邮件存储和管理服务日志文件都具有相同的内容格式。日志文件是多行文本文件,其中每行描述一个日志事件。对于每项支持的服务,所有事件说明都具有通用格式:

dateTime hostName processName[pid]: category logLevel: eventMessage

表 21–6 列出了日志文件组件。请注意,除了日期/时间格式不同以及此格式包括两个附加组件(categorylogLevel)以外,此事件说明的格式与 UNIX syslog 工具定义的格式相同。

表 21–6 存储和管理日志文件组件

组件 

定义 

dateTime

记录事件时的日期和时间,以 dd/mm/yyyy hh:mm:ss 格式表示,时区字段以 GMT +/-hhmm 表示。例如:02/Jan/1999:13:08:21 -0700

hostName

服务器在其上运行的主机名:例如,showshoe

注释:如果主机上有多个 Messaging Server 示例,则可以使用进程 ID (pid) 将不同示例的日志事件相互分开。

processName

生成事件的进程名称:例如,cgi_store

pid

生成事件的进程 ID:例如,18753

category

事件所属的类别:例如,General(请参见示例 21–5)。

logLevel

事件所表示的日志记录级别:例如,Notice(请参见示例 21–4)。

eventMessage

可为任意长度的特定于事件的解释消息:例如,Log created (894305624)

以下是使用 Console 所查看到的三个日志事件示例:

02/May/1998:17:37:32 -0700 showshoe cgi_store[18753]:
 General Notice:
   Log created (894155852)

04/May/1998:11:07:44 -0400 xyzmail cgi_service[343]: General Error:
   function=getserverhello|port=2500|error=failed to connect

03/Dec/1998:06:54:32 +0200 SiroePost imapd[232]: Account Notice:
   close [127.0.0.1] [unauthenticated] 1998/12/3 6:54:32
   0:00:00 0 115 0

IMAP 和 POP 事件条目可能会以三个数字结束。以上示例中包含:0 115 0。第一个数字是客户机发送的字节数,第二个数字是服务器发送的字节数,第三个数字是选定的邮箱数(对于 POP 通常为 1)。

在“日志查看器”窗口中查看日志文件时,您可以通过搜索事件中的任意特定组件(例如特定的日志记录级别、类别或特定的进程 ID)来限制显示的事件。有关更多信息,请参见搜索并查看服务日志

每个日志条目事件消息的格式都特定于所记录事件的类型,即每个服务都定义了出现在其任何事件消息中的内容。许多事件消息简单明了,而其他事件消息则复杂一些。

定义和设置服务日志记录选项

您可以定义能最好地满足管理需要的邮件存储和管理服务日志记录配置。本节讨论了可帮助您决定最佳配置和策略的问题,并解释了如何实现这些配置和策略。

灵活的日志记录体系结构

日志文件的命名模式 (service.sequenceNum.timeStamp) 有助于您设计灵活的日志轮转和备份策略。将不同服务的事件写入不同的文件便于您快速隔离问题。同时,由于文件名中的序列号持续增长,并且时间戳始终是唯一的,因此当有限的序列号集用尽后,以后的日志文件也不会简单地覆写早期的日志文件。而是仅在达到更灵活的生存期限制、文件数目或存储总数时,才会覆写或删除较旧的日志文件。

Messaging Server 支持日志文件的自动旋转,此功能简化了管理,也使备份变得更容易。不必手动删除当前日志文件并创建新日志文件以保留后续日志事件。您可以随时备份目录中除当前日志文件之外的所有日志文件,而不必停止服务器或手动通知服务器启动新日志文件。

设置日志记录策略的过程中,您可以针对每种服务设置选项,这些选项控制着日志存储总数、最大日志文件数、单个文件大小、最大文件生存期和日志文件旋转的速度等限制。

规划所需的选项

请记住,您必须设置若干个限制,超过其中一个限制可能会导致日志文件的旋转或删除。最先到达的限制为控制限制。例如,如果最大日志文件大小是 3.5 MB,并且您指定每天创建一个新日志,如果每 24 小时建立的日志数据不止 3.5 MB,那么每天实际创建的日志文件则不止一个。而且,如果最大日志文件数目是 10 个并且最大生存期是 8 天,则可能永远不会达到日志文件的生存期限制,因为较快的日志旋转将意味着在不到 8 天之内便已创建 10 个文件。

为 Messaging Server 管理日志提供的以下默认值可能是规划的合理起始点:

目录中日志文件的最大数目:10

最大日志文件大小:2 MB

允许的所有日志文件的最大大小总计:20 MB

允许的最小可用磁盘空间:5 MB

日志轮转时间:1 天

过期之前的最大生存期:7 天

日志记录的级别:Notice

您可以看到此配置假设预计服务器管理日志数据每天累积大约 2 MB,每周备份,分配给管理日志的存储空间总数至少是 25 MB。(如果日志记录级别更冗长,则这些设置可能不足。)

对于 POP、IMAP 或 HTTP 日志,相同的值可能是合理的启动值。如果所有服务具有大致相同的日志存储要求(如此处所示的默认值),您可能期望初始规划总计约 150 MB 的日志存储容量。(请注意,这仅意味着存储要求的一般指示;实际的要求可能会显著不同。)

了解日志记录选项

您可以使用 Console 或命令行来设置控制邮件存储日志记录配置的选项。

这些选项的最优设置取决于日志数据积累的速度。可能需要 4,000 到 10,000 个日志条目以占用 1 MB 存储。在较冗长的日志记录级别(例如 Notice),一般忙碌的服务器每周可能生成成百上千兆字节的日志数据。可遵循以下方法:

搜索并查看服务日志

Console 提供了用于查看消息存储和管理日志数据的基本界面。它允许选择单个日志文件,并允许在那些文件中执行灵活的日志条目的过滤搜索。

对于给定的服务,日志文件以时间先后次序列出。选择要搜索的日志文件后,您可以通过指定搜索参数来缩小对单个事件的搜索范围。

搜索参数

以下是可以指定用于查看日志数据的搜索参数:

* 任何字符集(示例:*.com

? 任何单个字符(示例:199?

[nnn] nnn 集中的任何字符(示例:[aeiou]

[^nnn] nnn 集中没有的任何字符(示例:[^aeiou]

[n-m] 任何在 n-m 范围内的字符(示例:[A-Z]

[^n-m] 任何不在 n-m 范围内的字符(示例:[^0-9]

\ 转义符:置于 *?[] 之前以将这些符号用作字面值

注释:搜索区分大小写。

查看日志时,组合日志记录级别和设备的示例可能包括以下几种:

处理服务日志

本节介绍了如何通过使用 configutil 命令和 Console 来处理服务日志,以便搜索和查看日志。

Procedure向系统日志发送服务日志

步骤

    运行带有 syslogfacility 选项的 configutil 命令:

    configutil -o logfile.service.syslogfacility -v value

    其中 serviceadminpopimapimtahttpvalueusermaildaemonlocal0local7 或 none。

    设置了值之后,系统会将邮件记录到与设置值对应的 syslog 工具并忽略所有其他日志文件服务选项。如果未设置选项或值为 none,则日志记录将使用 Messaging Server 日志文件。

Procedure使用 Console 设置日志记录选项

步骤
  1. 打开要设置其日志文件选项的 Messaging Server。

  2. 单击“配置”选项卡,打开左窗格中的“日志文件”文件夹,并选择某一服务(例如 IMAP、HTTP 或 Admin)的日志文件。

  3. 从“详细程度”下拉式列表中选择日志记录级别。

  4. 在“日志文件的目录路径”字段中,输入要保留日志文件的目录名称。

  5. 在“每个日志的文件大小”字段中,输入最大日志文件大小。

  6. 在“创建一个新日志,每隔”字段中,输入日志轮转计划的数字。

  7. 在“每个目录的日志数量”和“如果一个日志生成时间超过”字段中,输入与备份计划相协调的最大日志文件数目和最大生存期。

  8. 在“如果超出总日志大小”字段中,输入期望的存储限制总数。

  9. 在“如果可用磁盘空间小于”字段中,输入希望保留的最小可用磁盘空间量。

禁用 HTTP 日志记录

如果系统不支持 HTTP 邮件访问(即 Webmail),则可以通过设置以下变量来禁用 HTTP 日志记录。如果系统要求 Webmail 支持(例如 Messenger Express),请勿设置这些变量。

Procedure设置服务器日志级别

步骤

    运行以下 configutil 命令:

    configutil -o logfile.service.loglevel -v level

    其中 serviceadminpopimapimtahttploglevelNologCriticalErrorWarningNoticeInformationDebug

Procedure指定服务器日志文件的目录路径

步骤

    运行以下 configutil 命令:


    configutil -o logfile.service.logdir -v dirpath
    

Procedure指定每个服务日志的最大文件大小

步骤

    运行以下 configutil 命令:


    configutil -o logfile.service.maxlogfilesize -v size
    

    其中 size 指定了字节数。

Procedure指定服务日志旋转时间安排

步骤

    运行以下 configutil 命令:


    configutil -o logfile.service.rollovertime -v number
    

    其中 number 指定了秒数。

Procedure指定每个目录的服务日志文件的最大数目

步骤

    运行以下 configutil 命令:


    configutil -o logfile.service.maxlogfiles -v number
    

    其中 number 指定了日志文件的最大数目。

Procedure指定存储限制

步骤

    运行以下 configutil 命令:


    configutil -o logfile.service.maxlogsize -v number
    

    其中 number 指定了一个以字节为单位的数量。

Procedure指定要保留的可用磁盘空间的最小量

步骤

    运行以下 configutil 命令:


    configutil -o logfile.service.minfreediskspace -v number
    

    其中 number 指定了一个以字节为单位的数量。

指定日志到期的生存期


configutil -o logfile.service.expirytime -v number

其中 number 指定了一个以秒为单位的数量。

Procedure指定搜索和查看结果

请按以下步骤使用给定服务所属的特定的特性来搜索日志事件:

步骤
  1. 在 Console 中,打开希望检查其日志文件的 Messaging Server。

  2. 请执行以下任一步骤以显示给定日志记录服务的日志文件“内容”选项卡:

    • 单击“任务”选项卡,然后单击“查看服务日志”,其中服务是日志记录服务(例如“IMAP 服务”或“管理”)的名称。

    • 单击“配置”选项卡,然后打开左窗格中的“日志文件”文件夹,并选择某一服务(例如 IMAP 或 Admin)的日志文件。然后单击右窗格中的“内容”选项卡。

  3. 系统将显示该日志记录服务的“内容”选项卡。

  4. 在“日志文件名”字段中,选择您要检查的日志文件。

  5. 单击“查看所选日志”按钮将打开“日志查看器”窗口。

  6. 在“日志查看器”窗口中,指定所需的搜索参数(已在上一节搜索参数中介绍)。

  7. 单击“更新”将执行搜索并将结果显示在“日志”条目字段中。

使用邮件存储日志记录的邮件跟踪

您可以通过邮件 ID 使用邮件存储日志记录来跟踪邮件,该方式类似于 MTA 跟踪邮件的方式。以此方式跟踪邮件使您可以跟踪邮件生命周期的紧急事件。

要在邮件存储日志中跟踪邮件,除了常规的日志记录配置外,您还需要配置邮件跟踪。默认情况下,不启用邮件跟踪。


注 –

邮件跟踪将填满大量的磁盘空间。请勿启用此功能,除非您有足够的磁盘空间。


邮件存储日志记录可以跟踪以下操作:

Procedure启用邮件跟踪

步骤

    运行以下 configutil 命令:


    configutil -o local.msgrace.active -v "yes"

    系统将邮件跟踪信息写入每个进程的默认日志中。IMAP 获取显示在 imap 日志文件中。ims_master 附加显示在 ims_master 通道日志文件中。

Procedure将邮件跟踪重定向到单个日志文件

步骤

    要将邮件跟踪日志记录重定向到单个 "msgtrace" 日志文件,您必须使用 configutil 命令来配置日志文件参数。msgtrace 日志文件与其他日志文件不同,它要在本地进行配置。例如:


    configutil -o "local.logfile.msgtrace.buffersize" -v "0"
    configutil -o "local.logfile.msgtrace.expirytime" -v "604800"
    configutil -o "local.logfile.msgtrace.flushinterval" -v "60"
    configutil -o "local.logfile.msgtrace.logdir" -v "/opt/SUNWmsgsr/data/log"
    configutil -o "local.logfile.msgtrace.loglevel" -v "Information"
    configutil -o "local.logfile.msgtrace.logtype" -v "NscpLog"
    configutil -o "local.logfile.msgtrace.maxlogfiles" -v "10"
    configutil -o "local.logfile.msgtrace.maxlogfilesize" -v "2097152"
    configutil -o "local.logfile.msgtrace.maxlogsize" -v "20971520"
    configutil -o "local.logfile.msgtrace.minfreediskspace" -v "5242880"
    configutil -o "local.logfile.msgtrace.rollovertime" -v "86400"

Procedure取消配置邮件跟踪日志记录

步骤

    要取消配置 msgtrace 日志文件,请使用 configutil 命令以删除所有对其配置的引用。例如:


    configutil -o "local.logfile.msgtrace.buffersize" -v ""
    configutil -o "local.logfile.msgtrace.expirytime" -v ""
    configutil -o "local.logfile.msgtrace.flushinterval" -v ""
    configutil -o "local.logfile.msgtrace.logdir" -v ""
    configutil -o "local.logfile.msgtrace.loglevel" -v ""
    configutil -o "local.logfile.msgtrace.logtype" -v ""
    configutil -o "local.logfile.msgtrace.maxlogfiles" -v ""
    configutil -o "local.logfile.msgtrace.maxlogfilesize" -v ""
    configutil -o "local.logfile.msgtrace.maxlogsize" -v ""
    configutil -o "local.logfile.msgtrace.minfreediskspace" -v ""
    configutil -o "local.logfile.msgtrace.rollovertime" -v ""
    
                      

Procedure配置 LMTP 日志记录

步骤

    如果您使用的是 LMTP,而未使用单个 "msgtrace" 日志文件,则必须也在本地配置 tcp_lmtp_server 日志文件。如果您未使用 LMTP,或未使用邮件跟踪,或使用的是 "msgtrace" 日志文件中的邮件跟踪,则无需初始化 LMTP 邮件存储端日志。(LMTP 已分别记录了 MTA 信息。)例如:


    configutil -o "local.logfile.tcp_lmtp_server.buffersize" -v "0"
    configutil -o "local.logfile.tcp_lmtp_server.expirytime" -v "604800"
    configutil -o "local.logfile.tcp_lmtp_server.flushinterval" -v "60"
    configutil -o "local.logfile.tcp_lmtp_server.logdir" -v \
       "/opt/SUNWmsgsr/data/log"
    configutil -o "local.logfile.tcp_lmtp_server.loglevel" -v "Information"
    configutil -o "local.logfile.tcp_lmtp_server.logtype" -v "NscpLog"
    configutil -o "local.logfile.tcp_lmtp_server.maxlogfiles" -v "10"
    configutil -o "local.logfile.tcp_lmtp_server.maxlogfilesize" -v "2097152"
    configutil -o "local.logfile.tcp_lmtp_server.maxlogsize" -v "20971520"
    configutil -o "local.logfile.tcp_lmtp_server.minfreediskspace" \
       -v "5242880"
    configutil -o "local.logfile.tcp_lmtp_server.rollovertime" -v "86400"
    
                      

其他邮件存储日志记录功能

Messaging Server 提供了一种称为自动测量的功能,可以将用户的全部 IMAP 或 POP 会话捕获到文件中。此功能对调试客户机问题很有用。例如,如果用户抱怨他们的邮件访问客户机未按预期那样工作,则此功能可用于跟踪访问客户机和 Messaging Server 之间的交互活动。请参见使用自动测量功能检查用户 IMAP/POP 会话

邮件存储日志记录示例

记录在邮件存储日志文件中的确切字段格式和字段列表将根据设置的日志记录选项而有所不同。本节将描述一些解释典型日志条目类别的示例。

邮件存储日志记录示例:错误密码

用户键入无效密码时,系统将记录“验证”失败,与之相对的是“未找到用户”消息。出于安全原因,“未找到用户”消息将以文本形式传送给客户机,但系统将记录真实原因(无效密码)。


示例 21–11 邮件存储日志记录:无效密码


 [30/Aug/2004:16:53:05 -0700] vadar imapd[13027]: Account Notice: badlogin:
[192.18.126.64:40718] plaintext user1 authentication failure

邮件存储日志记录:禁用的帐户

以下示例显示了用户无法登录的原因是由于帐户被禁用。此外,禁用的帐户被说明为 "(inactive)" 或 "(hold)"。


示例 21–12 邮件存储日志记录:禁用的帐户


[30/Aug/2004:16:53:31 -0700] vadar imapd[13027]: Account Notice: badlogin: 
[192.18.126.64:40720] plaintext user3 account disabled (hold)

邮件存储日志记录示例:附加的邮件

以下示例显示了附加邮件,每当将邮件附加至文件夹时它都会出现。邮件存储日志记录了所有通过 ims_masterlmtp 通道进入邮件存储的邮件。记录用户 ID、文件夹、邮件大小和邮件 ID 的“附加”。


示例 21–13 邮件存储日志记录:附加


[31/Aug/2004:16:33:14 -0700] vadar ims_master[13822]: Store Information:append:
user1:user/user1:659:<Roam.SIMC.2.0.6.1093995286.11265.user1@vadar.siroe.com>

邮件存储日志记录示例:客户机检索的邮件

当客户机检索邮件时,邮件存储日志将写入“获取”消息。邮件存储日志将至少记录客户机对一个主体部分的所有获取。记录“获取”的用户 ID、文件夹和邮件 ID。


示例 21–14 邮件存储日志记录:客户机检索的邮件


[31/Aug/2004:15:55:26 -0700] vadar imapd[13729]: Store Information:
fetch:user1:user/user1:<Roam.SIMC.2.0.6.1093051161.3655.user1@vad.siroe.com>

邮件存储日志记录示例:从文件夹删除的邮件


示例 21–15 邮件存储日志记录示例:从文件夹删除的邮件

当从文件夹中删除 IMAP 或 POP 邮件(但不是从系统中删除)时,邮件存储将写入“清除”消息。系统将记录它是被用户还是被实用程序清除的。记录“清除”的文件夹和邮件 ID。


31/Aug/2004:16:57:36 -0700] vadar imexpire[13923]: Store Information:
expunge:user/user1:<Roam.SIMC.2.0.6.1090458838.2929.user1@vadar.siroe.com>

邮件存储日志记录示例:复制登录邮件

如果您为一个 msgtrace 日志文件配置邮件跟踪,则显示在 imap 和 pop 日志文件中的常规“登录”邮件将在 msgtrace 文件中进行复制。以下为常规登录邮件:


示例 21–16 邮件存储日志记录:登录


[30/Aug/2004:16:53:13 -0700] vadar imapd[13027]: Account Information: login
[192.18.126.64:40718] user1 plaintext