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

管理邮件存储、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