AP905 - Configurando
o Pipeline tracing do Exchange Server 2007
| Autor: |
Anderson Patricio |
| Publicação: |
22/Março/2007 |
Overview
O Exchange
SErver 2007 possui um poderoso recurso de pipeline tracing para os
agentes de transport (Transport Agent) onde podemos validar todo o fluxo
de SMTP Events e Transport Agents aplicados em uma mensagem. Isto é
importante para validarmos porque determinado Agent Transport não está
sendo aplicado em uma mensagem.
Tutoriais relacionados:
AP906 - Gerenciando
os Agentes de Transporte do Exchange Server 2007

Solução
Para
verificarmos profundamente como funciona o Pipeline tracing, vamos criar
um cenário: Vamos criar uma regra em nível de Edge que adiciona um texto
ao título de todas mensagens enviadas pelo usuário
xx@xx.com.br para os usuários da rede
interna.
Sabendo disso,
vamos habilitar o pipeline tracing para verificarmos detalhadamente o
que acontece quando uma mensagem deste destinatário chega na organização
exchange Server.
Detalhes Importantes:
- Isto é só para depuração de erros em Transport Agents, não é
tarefa rotineira
- Ele faz snapshot da mensagem em cada processo, ou seja, proteja
muito bem estas informações senão podemos ter falha de segurança
neste ponto
- Podemos fazer isto somente nos servidores que tem os serviços de
Transporte, que são: Edge e Hub Transpor
- Cuide o espaço em disco, o mesmo pode se esgotar facilmente
quando utilize o pipeline tracing por muito tempo
Habilitando o pipeline Tracing...
O
pipeline tracing é habilitado através do cmdlet Set-TransportServer, da
seguinte forma:
Set-TransportServer <Edge or Transport Server> -PipelineTracingEnabled:<true
ou false> -PipelineTracingSenderAddress <e-mail>
Onde:
<Edge or Transport Server>: Nome do servidor onde estaremos
fazendo o tracing
<True or False>: valores possíveis, True é igual habilitado e
False é igual desabilitado
<e-mail>: E-mail smtp externo do emissor, ou ainda de algum
usuário em outro site; para usuários do mesmo site do trace, ou seja,
em nível de Hub Transport devemos utilizar o endereçamento X500 que
pode ser encontrado nos logs do Message Tracking.

Agora, que já
habilitamos vamos enviar um e-mail de teste do usuario xx@xx.com.br para
o usuário interno chamado anderson.patricio@apatricio.local e vamos
verificar como o pipeline tracing irá trabalhar com isto.
O diretório
onde ele grava o pipeline tracing pode ser alterado através da opção -PipelineTracingPath
do cmdlet Set-Transport Server. Por padrão o caminho é C:\Program
Files\Microsoft\Exchange Server\TransportRoles\Logs\Pipeline Tracing\MessageSnapshots\<ID>,
como podemos ver na figura abaixo.

Cada uma das
mensagens deste snapshot é quando a mensagem está passando na execução
da fila de transporte, importante salientar que somente as mensagens
provindas de xx@xx.com.br terão este resultado de debug, cada mensagem é
criado um <ID> diferente naquela estrutura de diretório acima para
análise.
Agora que já
temos um trace de uma mensagem enviada para do usuário que possui trace
para um usuário da rede interna, podemos abrir os arquivos *.eml com um
editor de texto, notepad pro exemplo.
E com isto
podemos verificar que existe um cabeçalho chamado X-MessageSnapshot-source
onde podemos saber qual SMTP Event e Transport Agent foi executado na
mensagem naquele estágio. Em nosso caso pegamos o arquivo
SmtpReceive0008.eml, ou seja, que no 8o SMTP Event no componente SMTP
Receive do Edge Transport Server, tivemos o SMTP Event OnEndOfData
e o Agente de Transporte Edge Rule Agent foi
executado. Este agente é o que adicionou a regra de transporte que
criamos no início do tutorial.

Se formos
olhando cada arquivo separado, vamos ver sequencialmente os SMTP Events
que a mensagem passou, como também os agentes de transporte em cada
um deles. Com isto temos uma poderosa ferramenta de resolução de
problemas para Transport Agents, que são utilizados por padrão nos
servidor Edge e Hub, e vários aplicativos de terceiros vão utilizar isto
para fazer software de relatório, anti-virus e etc..
Desabilitando o pipeline tracing...
Como nosso
objetivo é somente validar o pipeline tracing para fins de resolução de
problema ou ainda teste de um Transport Agent criado para algum
específico, após os testes temos que desabilita-lo, para tanto vamos
utilizar o cmdlet Set-TransportServer novamente mas com a opção
False da propriedade PipelineTracingEnabled.

Conclusão
Neste artigo
vimos como configurar o Pipeline tracing para acompanharmos detalhamente
uma mensagem passando por cada SMTP Event e cada Transport Agent que
está executando a mensagem. Este recurso é muito interessante para
validar transport agents e quando estamos desenvolvendo este tipo de
aplicativo para Exchange Server 2007.
|