Infra - Exchange Server
Configurando o Pipeline tracing do Exchange Server 2007
Neste artigo veremos como configurar o Pipeline tracing para acompanharmos detalhamente uma mensagem passando por cada SMTP Event e cada Transport Agent que está executando a mensagem.
por Anderson PatricioOverview
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.
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.
- Migrando e removendo o Exchange 2007 para Exchange 2010Exchange Server
- Migrando (e removendo) o Exchange 2007 para Exchange 2010Exchange Server
- Foto no Outlook 2010Exchange Server
- Exchange UM Test PhoneExchange Server
- Integrando o OCS ao Exchange UMOCS / LCS