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

日志记录概述

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

通过了解和使用 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 文件。