协议日志记录

适用于:Exchange Server 2013

协议日志记录记录邮件服务器之间作为邮件传递的一部分发生的 SMTP 对话。 这些 SMTP 会话发生在客户端访问服务器上的前端传输服务、邮箱服务器上的传输服务和邮箱服务器上的邮箱传输服务中存在的发送连接器和接收连接器上。 可以使用协议日志记录诊断邮件流问题。

默认情况下,在所有发送连接器和接收连接器上禁用协议日志记录。 在每个单独的连接器上启用或禁用协议日志记录。 为服务器上的每个传输服务中存在的所有接收连接器或所有发送连接器设置其他协议日志记录选项。 传输服务中的所有接收连接器共享相同的协议日志文件和协议日志选项。 这些协议日志文件和协议日志选项与同一服务器上的传输服务中的发送连接器协议日志文件和协议日志选项分开。

以下选项可用于 Exchange 服务器上每个传输服务中所有发送连接器或所有接收连接器的协议日志:

  • 指定发送连接器或接收连接器协议日志文件的位置。
  • 指定发送连接器或接收连接器协议日志文件的最大大小。 默认大小为 10 MB。
  • 指定包含发送连接器或接收连接器协议日志文件的目录的最大大小。 默认大小为 250 MB。
  • 指定发送连接器或接收连接器协议日志文件的最长期限。 默认期限为 30 天。

默认情况下,Exchange 使用循环日志记录根据文件大小和文件期限限制协议日志,以帮助控制日志文件使用的硬盘空间。

名为组织内部发送连接器的特殊发送连接器存在于每个邮箱服务器上的传输服务中,以及每个客户端访问服务器上的前端传输服务中。 此连接器是隐式创建的、不可见的,无需管理。 以下传输服务使用组织内部发送连接器:

  • 邮箱服务器上的传输服务
    • 将邮件中继到组织中的其他 Exchange 2013 邮箱服务器上的传输服务和邮箱传输服务。
    • 将邮件中继到组织中的其他 Exchange 2007 或 Exchange 2010 中心传输服务器。
    • 将消息中继到外围网络中边缘传输服务器。
  • 客户端访问服务器上的前端传输服务:将邮件中继到组织中的 Exchange 2013 邮箱服务器上的传输服务。

每个邮箱服务器上的邮箱传输服务中都存在一个名为邮箱传递发送连接器的等效的发送连接器。 此连接器也是隐式创建的、不可见的,无需管理。 邮箱传递发送连接器用于将邮件中继到组织中的其他邮箱服务器上的传输服务和邮箱传输服务。

默认情况下,邮箱传递发送连接器的协议日志记录也处于禁用状态。 可以使用 Set-MailboxTransportService cmdlet 上的 MailboxDeliveryConnectorProtocolLoggingLevel 参数启用或禁用邮箱传递发送连接器的协议日志记录。 如果为邮箱传递发送连接器启用协议日志记录,则邮箱服务器上的邮箱传输服务的发送连接器协议日志中会出现日志记录。

协议日志文件的结构

默认情况下,协议日志文件处于下列位置:

  • 在邮箱服务器上接收传输服务的连接器协议日志文件:%ExchangeInstallPath%TransportRoles\Logs\Hub\ProtocolLog\SmtpReceive

  • 在邮箱服务器上接收邮箱传输服务的连接器协议日志文件: %ExchangeInstallPath%TransportRoles\Logs\Mailbox\ProtocolLog\SmtpReceive

  • 在客户端访问服务器上接收前端传输服务的连接器协议日志文件: %ExchangeInstallPath%TransportRoles\Logs\FrontEnd\ProtocolLog\SmtpReceive

  • 在邮箱服务器上发送传输服务的连接器协议日志文件: %ExchangeInstallPath%TransportRoles\Logs\Hub\ProtocolLog\SmtpSend

  • 在邮箱服务器上发送邮箱传输服务的连接器协议日志文件: %ExchangeInstallPath%TransportRoles\Logs\Mailbox\ProtocolLog\SmtpSend

  • 在客户端访问服务器上发送前端传输服务的连接器协议日志文件:%ExchangeInstallPath%TransportRoles\Logs\FrontEnd\ProtocolLog\SmtpSend

每个协议日志目录中日志文件的命名约定是 PrefixyyyyMMdd-nnnn.log。 占位符代表下列信息:

  • 对于发送连接器,占位符 前缀 为 SEND,对于接收连接器为 RECV。
  • 占位符 yyyyMMdd 是协调世界时 (UTC) 创建日志文件的日期。 占位符 yyyy = year,MM = month,dd = day。
  • 占位符 nnnn 是每天从值 1 开始的实例编号。

信息将写入日志文件,直到文件大小达到其最大值指定值,并打开具有递增实例编号的新日志文件。 此过程在全天重复进行。 当协议日志目录达到其最大指定大小或日志文件达到其最大指定期限时,循环日志记录会删除最早的日志文件。

协议日志文件是文本文件,其中包含逗号分隔值文件 (CSV) 格式的数据。 每个协议日志文件的文件头都包含下列信息:

  • #Software:创建协议日志文件的软件的名称。 通常情况下,此值是 Microsoft Exchange Server。

  • #Version:创建协议日志文件的软件的版本号。 当前值为 15.0.0.0。

  • #Log 类型:此字段的日志类型值,即 SMTP 接收协议日志或 SMTP 发送协议日志。

  • #Date:创建日志文件的 UTC 日期时间。 UTC 日期时间以 ISO 8601 日期时间格式表示: yyyy-MM-ddThh:mm:ss.fffZ, 其中 yyyy = year, MM = month, dd = day, T 指示时间分量开头, hh = 小时, mm = 分钟, ss = second, fff = 分数秒,Z 表示 Zulu,这是表示 UTC 的另一种方法。

  • #Fields:协议日志文件中使用的逗号分隔字段名称。

写入协议日志的信息

协议日志将每个 SMTP 协议事件存储在协议日志中的单行上。 存储在每行上的信息按字段进行组织。 这些字段用逗号分隔。 下表描述了用于对每个协议进行分类的字段。

对每个协议事件分类所用的字段

字段名 说明
date-time 协议事件的 UTC 日期-时间。 UTC 日期时间以 ISO 8601 日期时间格式表示: yyyy-MM-ddThh:mm:ss.fffZ, 其中 yyyy = year, MM = month, dd = day, T 指示时间分量开头, hh = 小时, mm = 分钟, ss = second, fff = 分数秒,Z 表示 Zulu,这是表示 UTC 的另一种方法。
connector-id 与 SMTP 事件关联的连接器的可分辨名称 (DN) 。
session-id 对于每个 SMTP 会话是唯一的 GUID,但对于与该 SMTP 会话关联的每个事件都是相同的。
sequence-number 从 0 开始并为同一个 SMTP 会话内的每个事件递增的计数器。
local-endpoint SMTP 会话的本地终结点。 这包括一个 IP 地址和格式化为 <IP 地址><端口>的 TCP 端口号。
remote-endpoint SMTP 会话的远程终结点。 这包括一个 IP 地址和格式化为 <IP 地址><端口>的 TCP 端口号。
事件 代表协议事件的单个字符。 事件的可能值如下:
  • +:连接
  • -:断开
  • >:发送
  • <:收到
  • *:信息
data 与 SMTP 事件关联的文本信息。
context 可能与 SMTP 事件关联的其他上下文信息。

表示发送或接收单个电子邮件的单个 SMTP 对话将生成多个 SMTP 事件。 这些 SMTP 事件会导致将多行写入协议日志。 表示发送或接收多个电子邮件的多个 SMTP 对话可以同时发生。 这会从穿插的不同 SMTP 对话创建协议日志条目。 可以使用会话 ID 和序列号字段按 SMTP 会话对协议日志条目进行排序。