Exchange pipeline tracing(传输管道跟踪)

简介:

     Exchange邮件发送和接收均是通过Exchange传输服务器进行的,在传输服务中进行一系列的动作。在日常管理中,如果Exchange上启用了很多的传输代理(Transport Agent),在排错时如果要查找某一封邮件被阻止或删除的原因相当麻烦,通常的做法是查看Exchange上的传输代理日志,在代理日志中可以发现一些痕迹,但是有时候也无法找到具体原因。之前我在处理一个问题,要求找到接收部分域名的邮件为什么被标记为垃圾邮件,我通过查看传输代理日志没有找到原因,因为在传输代理日志中现在通过各个代理的日志均记录为代理策略是False的,最好没有办法我就逐一禁用Transport Agent,最好找到了对应的传输代理。

           好了,现在告诉一个更快跟踪邮件传输过程的办法,在Exchange中邮件在传递出去之前需要经过传递代理进行过滤或筛选。Exchange提供了一个功能pipeline tracing,此功能可以用于跟踪特定发件人发送的邮件在传输服务上的邮件流走向过程。启用pipeline tracing后会将传输服务中各个阶段的邮件生成一个快照到特定文件,以供管理员分析。(具体可以参考:https://technet.microsoft.com/zh-cn/library/bb125018(v=exchg.150).aspx

以下列表介绍了所创建的邮件快照文件:

  • Original.eml   此类文件包含电子邮件在遇到任何 SMTP 事件或传输代理之前的原始、未经修改的内容。

  • Routingnnnn.eml   此类文件包含电子邮件在传输服务的分类部分期间遇到传输 SMTP 事件和这些事件上注册的传输代理时的内容。占位符 nnnn 代表以 0001 开头的整数值。该值针对每个 SMTP 事件和这些事件上注册的传输代理按照这些事件和代理对邮件起作用的顺序递增。邮箱传输传递服务不生成这些 Routing 快照文件。

  • SmtpReceivennnn.eml   此类文件包含电子邮件在传输服务或邮箱传输传递服务的 SMTP 接收部分期间遇到 OnEndofData 和 OnEndOfHeaders SMTP 事件和这些事件上注册的传输代理时的内容。占位符 nnnn 代表以 0001 开头的整数值。该值针对每个 SMTP 事件和这些事件上注册的传输代理按照这些事件和代理对邮件起作用的顺序递增。

    在进行启用pipeline tracing功能之前,我们需要首先明白该功能适用于哪些场景;不能没事儿就随便启用,因为启用该功能后会消耗服务器的资源,并且会占用一定的磁盘空间。如果有如下情况可以考虑暂时启用pipeline tracing,抓取到数据后应立即关闭。

1)、在对邮件进行排除时,需要分析是哪个传输代理对邮件进行了操作。

2)、在启用或创建了自定义的传输代理,需要验证传输代理是否按照设想生效时。

 

      下面介绍如果启用pipeline tracing功能。

一、启用pipeline tracing功能

1、使用如下命令查看当前Exchange服务器当前pipeline tracing的配置情况,以便记录服务器的默认配置,方便以后恢复默认配置。

Get-TransportService | fl name,*pip*

Get-MailboxTransportService | fl name,*pip*

image

2、启用传输服务的PipelineTracing功能,并且同时制定日志目录和特定发件人。

Get-TransportService | Set-TransportService -PipelineTracingEnabled $true -PipelineTracingPath"c:\dump\" –PipelineTracingSenderAddress   test@contoso.com

image

3、启用邮箱传输服务的PipelineTracing功能,并且同时制定日志目录和特定发件人。

Get-MailboxTransportService | Set-MailboxTransportService -PipelineTracingEnabled $true -PipelineTracingPath "c:\dump" -PipelineTracingSenderAddress test@contoso.com    
image

4、PipelineTracing功能启用后无需重启传输服务即可生效。接下来进行测试。在对应目录下已经生产了快照数据。

image

5、查看对应文件中的数据。

image

6、能够看到收集到的快照数据。

image

 

image

image

image

 

image

 

二、禁用pipeline tracing功能

Get-TransportService | Set-TransportService -PipelineTracingEnabled $false

Get-MailboxTransportService | Set-MailboxTransportService -PipelineTracingEnabled $false

image

如下命令将pipeline tracing恢复为默认设置。

Get-TransportService | Set-TransportService -PipelineTracingEnabled $false -PipelineTracingPath "C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\Hub\PipelineTracing" –PipelineTracingSenderAddress $null

Get-MailboxTransportService | Set-MailboxTransportService -PipelineTracingEnabled $false -PipelineTracingPath "C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\Mailbox\PipelineTracing" -PipelineTracingSenderAddress $null



本文转自 jialt 51CTO博客,原文链接:http://blog.51cto.com/jialt/1958074

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
5月前
|
消息中间件
rabbitmq的trace消息跟踪显示乱码
rabbitmq的trace消息跟踪显示乱码
|
6月前
|
缓存 索引
SAP ABAP 系统传输请求(Transport Request)导入到其他系统背后执行的逻辑
SAP ABAP 系统传输请求(Transport Request)导入到其他系统背后执行的逻辑
87 0
|
11月前
|
网络协议 数据可视化 NoSQL
Envoy架构概览(8):统计,运行时配置,追踪和TCP代理
Envoy架构概览(8):统计,运行时配置,追踪和TCP代理
|
11月前
|
消息中间件 Kafka
Kafka Tool模拟数据发送
Kafka Tool模拟数据发送
153 0
ASM中GRPC/HTTP2流式传输场景的Sidecar资源占用调优
当应用使用GRPC流式传输时,数据经由Sidecar进行转发,由于Sidecar工作于7层,所以Sidecar会对GRPC消息元信息进行解析后在转发,在一些场景下(例如在单连接上建立大规模Stream)可能会造成Sidecar内存占用提升。本文将介绍Sidecar控制GRPC流式传输性能的相关参数和其作用机制,用户可以通过这些参数对Sidecar资源占用进行调整,已取得运行性能和资源消耗的平衡。S
149 0
ASM中GRPC/HTTP2流式传输场景的Sidecar资源占用调优
|
NoSQL Redis
pipline(流水线、管道)
一、什么是 pipline 1. 一次网络命令的通信模型 1次网络命令时间 = 1次网络传输时间(往返) + 1次命令执行时间
 pipline(流水线、管道)
|
存储
SkyWalking 中如何构建异步链路的 Trace
SkyWalking 中如何构建异步链路的 Trace
1843 1
SkyWalking 中如何构建异步链路的 Trace
|
Web App开发 存储 算法
|
Linux API
tracepath命令 – 追踪报文的路由信息《openstack网络》
tracepath命令 – 追踪报文的路由信息《openstack网络》
504 0
|
安全
我的mqtt协议和emqttd开源项目个人理解(2) - 订阅$SYS主题,捕获客户端上下线消息
我的mqtt协议和emqttd开源项目个人理解(2) - 订阅$SYS主题,捕获客户端上下线消息
208 0
我的mqtt协议和emqttd开源项目个人理解(2) - 订阅$SYS主题,捕获客户端上下线消息