You are on page 1of 11

Um Script para resolver problemas com o Exchange ActiveSync - excha...

1 de 11

about:reader?url=http://blogs.technet.com/b/exchange_br/archive/2012/0...

blogs.technet.com

Um Script para resolver problemas


com o Exchange ActiveSync exchange_br - Site Home
Konstantin Papadakis e Brian Drepaul

Artigo original publicado na quarta-feira, 01 de fevereiro de 2012


Script ActiveSyncReport
Baixar
A equipe de suporte do Exchange com frequncia relativa recebe
casos onde os dispositivos mveis usando o protocolo Exchange
ActiveSync (EAS) envia muitas solicitaes para o servidor do
Exchange resultando em uma situao onde o servidor fica sem
recursos, causando efetivamente um ataque "negao de servio"
(DOS). O pior resultado de tal situao que o servidor tambm se
torna indisponvel para outros usurios que podem no estar
usando o protocolo EAS para se conectar. Documentamos esse
problema com possveis migraes no seguinte artigo da Base de
Dados de Conhecimento:
2469722 No possvel conectar usando o Exchange ActiveSync
devido ao consumo de recursos do Exchange
Um exemplo recente deste problema foi os dispositivos Apple iOS
4.0 tentando novamente uma sincronia completa a cada 30
segundos (consulte TS3398). Outro exemplo pode ser alguns
dispositivos que no compreendam como lidar com uma resposta
de "caixa de correio cheia" do servidor do Exchange, resultando
em vrias tentativas para reconectar. Isso pode fazer com que tais
dispositivos tentem conectar & a sincronia com a caixa de correio
mais de 60 vezes em um minuto, acabando com o tempo de vida
da bateria do dispositivos e causando problemas de desempenho
no servidor.
Gerenciar os recursos do servidor disponvel de balanceamento de
& dispositivos mveis entre diferentes tipos de clientes pode ser
um desafio intimidante para os administradores de TI. Tentar
rastrear quais dispositivos esto causando problemas de
degradao de recursos no servidor do Exchange 2010/2007 Client
Access (CAS) ou no servidor do Exchange 2003 Front-end (FE)
no uma tarefa fcil. Como citado no artigo acima, possvel

8/4/2015 5:50 PM

Um Script para resolver problemas com o Exchange ActiveSync - excha...

2 de 11

about:reader?url=http://blogs.technet.com/b/exchange_br/archive/2012/0...

usar o Analisador de Log para extrair estatsticas teis dos logs do


IIS (veja observao abaixo), mas a maioria dos administradores
no tem a & experincia para rascunhar consultas para extrair tal
informao de logs longos.
O objetivo desta publicao introduzir todos na comunidade do
Exchange a um novo script do PowerShell que pode ser utilizado
para identificar os dispositivos que esto causando o problema de
degradao do recursos, ajudar na identificao das tendncias de
desempenho e gerar automaticamente relatrios para
monitoramento contnuo. Usando este script possvel buscar
rapidamente e & facilmente nas atividades EAS dos usurios, que
pode ser uma grande tarefa quando lidar com os logs IIS que
podem chegar at vrios gigabytes. O script torna mais fcil
identificar os usurios com vrios dispositivos EAS. possvel
us-lo como uma ferramenta para estabelecer uma linha base
durante os perodos de atividade EAS normal e us-lo para
comparao e emisso de relatrios quando as coisas passam
para outras direes. Tambm oferece um recurso de
monitoramento automtico que voc pode usar para receber
notificaes de email.
Observao: O script funciona com logs IIS no servidor no
Exchange 2010, Exchange 2007 e Exchange 2003.
Todas as comunicaes entre os dispositivos mveis usando o
protocolo EAS e o Microsoft Exchange registrada nos logs IIS
nos servidores CAS/FE no formato W3C. Os campos W3C padres
habilitados para registro em log variam entre o IIS 6.0 e o 7.0/7.5 (o
IIS 7.0 possui os mesmos campos que o 7.5). Este script funciona
em ambas as verses.

Logs IIS
Como o EAS usa HTTP, todas as solicitaes EAS so registradas
em logs IIS, que so habilitados por padro. Algumas vezes, os
administradores podem desabilitar o registro em log IIS para
economizar espao nos servidores. Voc deve verificar se o
registro em log est habilitado e encontrar o local dos arquivos de
log seguindo estas etapas:
IIS 7
1. No IIS Manager, expanda o nome do servidor, isto ,
ExchangeServer (Contoso\Administrador)
2. Em Exibio de Recursos, clique duas vezes em Registro em
Log na seo IIS.
IIS 6

8/4/2015 5:50 PM

Um Script para resolver problemas com o Exchange ActiveSync - excha...

3 de 11

about:reader?url=http://blogs.technet.com/b/exchange_br/archive/2012/0...

1. Em Gerenciador do IIS, clique com o boto direito no nome do


site da Web (na maioria das vezes deve ser Site da Web
Padro) e escolha Propriedades
2. Clique na guia Site da Web.

Qual a responsabilidade dos dispositivos mveis


na comunicao com o servidor?
Antes de falarmos sobre os detalhes do script, vamos rever alguns
requisitos importantes para os dispositivos mveis que usam o
EAS para se comunicarem com o Microsoft Exchange.
Quando devolvido uma resposta inesperada do servidor para
um dispositivo mvel, depende do dispositivo lidar com a
resposta e tentar novamente de forma adequada a um intervalo
razovel. Alm disso, os dispositivos so responsveis por lidar
com os tempos limites que ocorrem fora do IIS, que podem ser
causados por latncia de rede.
Com cada solicitao que um dispositivo envia para o
IIS/Exchange, tambm deve relatar o Usurio-Agente.

O que voc ver quando usar este script?


O script utiliza o Microsoft Log Parser 2.2 para analisar os logs IIS
e gerar resultados. Cria diferentes consultas SQL para o
Analisador de Log baseado nos interruptores (veja tabela abaixo)
que voc usa. Uma publicao anterior Exchange 2003 - Emisso
de relatrios do Active Sync fala sobre o Analisador de Logs que
toca em pontos similares. A informao nesta publicao ainda se
aplica ao Exchange 2010 & 2007. Desde esta publicao, foram
adicionados mais comandos para o protocolo EAS ), que tambm
so utilizados por este novo script durante o processamento dos
logs.
Aqui est uma lista dos comandos do EAS que o script relatar nos
resultados:
Sync, SendMail, SmartForward, SmartReply, GetAttachment,
GetHierarchy, CreateCollection, DeleteCollection,
MoveCollection, FolderSync, FolderCreate, FolderDelete,
FolderUpdate, MoveItems, GetItemEstimate, MeetingResponse,
Search, Settings, Ping, ItemOperations, Provision,
ResolveRecipients, ValidateCert
Para obter mais detalhes sobre cada comando EAS, consulte
Especificao do protocolo HTTP do ActiveSync no MSDN.

8/4/2015 5:50 PM

Um Script para resolver problemas com o Exchange ActiveSync - excha...

4 de 11

about:reader?url=http://blogs.technet.com/b/exchange_br/archive/2012/0...

Alm destes comandos, os seguintes parmetros tambm so


registrados em log pelo script.
1. Usurio
2. Nome de Usurio
3. Tipo de Dispositivo
4. ID do Dispositivo
5. Usurio-Agente
6. sc-bytes: Est apenas disponvel se voc habilitou esta guia no
registro em log IIS.
7. cs-bytes: Est apenas disponvel se voc habilitou esta guia no
registro em log IIS.
8. time-taken (em milissegundos): Est apenas disponvel se voc
habilitou esta guia no registro em log IIS.
9. Nmero total de solicitaes ou solicitaes por ID do
Dispositivo
10. Nmero total de todos os cdigos de status 4xx
11. Nmero total de todos os cdigos de status 5xx (para obter
mais informaes, veja a base de dados de conhecimento:
318380 para o IIS 6.0 & Base de Dados de Conhecimento:
943891)
12. Cdigos de status 409: 409 (Conflito) - Uma coleo no pode
ser realizada na Solicitao-URI at que um ou mais colees
intermedirias tenham sido criadas. O servidor NO DEVE criar
estas colees intermedirias automaticamente (Ref: RFC
4918)
13. Cdigos de status 500: Aps o dispositivo enviar o comando
OPES, possvel obter 500 respostas de volta do servidor
com o erro MissingCscCacheEntry. Isso pode ocorrer como
resultado de um problema com a afinidade, onde voc possui
uma matriz CAS com a Internet para fazer proxy uma
solicitao para uma matriz CAS Interna. Quando a matriz com
Internet envia uma solicitao para a matriz Interna, um
servidor CAS responder com o primeiro 401. Na prxima
comunicao, a solicitao lidada por um servidor CAS
diferente na matriz Interna. A soluo resolver o problema de
afinidade com a matriz CAS Interna.

8/4/2015 5:50 PM

Um Script para resolver problemas com o Exchange ActiveSync - excha...

5 de 11

about:reader?url=http://blogs.technet.com/b/exchange_br/archive/2012/0...

14. Cdigos de status 503: O servidor atualmente no pode lidar


com a solicitao devido a uma sobrecarga temporria ou
manuteno do servidor. A implicao que esta uma
condio temporria que ser diminuda aps algum atraso. Se
conhecido, o comprimento do atraso PODE ser indicado em um
cabealho Tentar Novamente-Aps. Se Tentar Novamente-Aps
no fornecido, o cliente DEVE lidar com a resposta como
lidaria com 500 respostas.
Observao: A existncia do cdigo de status 503 no implica
que um servidor deve us-lo quando ficar sobrecarregado.
Alguns servidores podem apenas recusar a conexo. (Ref: RFC
2616)
15. Cdigos de status 507: O cdigo de status 507
(Armazenamento Insuficiente) significa que o mtodo no pode
ser realizado no recurso porque o servidor no pode armazenar
a representao necessria para concluir com xito a
solicitao. Esta condio considerada temporria. Se uma
solicitao que recebeu este cdigo de status foi o resultado de
uma ao de usurio, a solicitao NO DEVE ser repetida at
que seja solicitada por uma ao do usurio separada. (Ref:
RFC 4918)
16. Cdigos de status 451: O Exchange 2007/2010 retorna uma
resposta HTTP 451 para um cliente EAS quando determina que
o dispositivo deveria estar usando um CAS "melhor" para a
conectividade EAS. A lgica usada para determinar o "melhor"
CAS baseada em sites do Active Directory e se o CAS
considerado "Com a Internet". Se a propriedade ExternalUrl no
diretrio virtual Microsoft-Server-ActiveSync especificada, o
CAS considerado Com-Internet para a conectividade EAS.
(Ref: Artigos do TechNet O Exchange ActiveSync Retornando
um Erro HTTP 451 e Compreendendo o Proxy e
Redirecionamento)
17. Erros TooManyJobsQueued: Para obter mais informaes
sobre o "TooManyJobsQueued", consulte Base de Dados de
Conhecimento: 2469722 referenciada acima
18. OverBudget: Um oramento a quantidade de acessos que um
usurio ou aplicativo pode ter para uma configurao
especfica. Um oramento representa quantas conexes um
usurio pode ter ou quanta atividade pode ser permitida para
um usurio em um perodo de um minuto. (Ref: Artigo TechNet )
19. Prximo subconjunto de Cdigos de Status Comuns:
InvalidContent, ServerError, ServerErrorRetryLater,
MailboxQuotaExceeded, DeviceIsBlockedForThisUser,

8/4/2015 5:50 PM

Um Script para resolver problemas com o Exchange ActiveSync - excha...

6 de 11

about:reader?url=http://blogs.technet.com/b/exchange_br/archive/2012/0...

AccessDenied, SyncStateNotFound,
DeviceNotFullyProvisionable, DeviceNotProvisioned,
ItemNotFound, UserDisabledForSync

O que voc pode fazer com esse script?


possvel processar logs usando este script para recuperar os
seguintes detalhes:
1. Ocorrncias por usurio/ID do dispositivo (usurios/dispositivos
com um nmero mximo de solicitaes enviadas ao servidor)
2. Ocorrncias por hora/dia (ajuda a determinar a frequncia das
solicitaes enviadas por usurio/dispositivo, o valor de tempo
inserido em segundos)
3. Ocorrncias por dispositivo com o limite especificado (aqui voc
pode especificar um limite para as ocorrncias/solicitaes, isto
, todos os usurios esto enviando 1000 solicitaes por
hora/dia, etc.
4. Exportar CSV dos resultados
5. Relatrio HTML dos resultados
6. Relatrios de email para monitoramento (formato CSV/HTML)
Pr-requisitos:
Certifique-se de ter o seguinte instalado na sua mquina antes de
usar este script:
Log Parser 2.2.
Windows PowerShell 2.0 (instalado por padro no Windows 7 &
Windows 2008 R2)

Parmetros de Script
Parmetro

Obrigatrio

Tipo

ActiveSyncOutputFolder Obrigatrio System.String


ActiveSyncOutputPrefix Opcional
CreateZip

Opcional

System.String
System.Management.

Descrio
Diretrio de sada CSV e HTML
Prefixa a cadeiras de caracteres
arquivo de sada
Cria um arquivo ZIP. Pode ser us

Automation.SwitchParameter SendHTMLReport
Tamanho limite do arquivo. O pa

CreateZipSize

Opcional

System.In32

tiver sido excedido, o arquivo se


que o SendHTMLReport e o Cre
verdadeiros

8/4/2015 5:50 PM

Um Script para resolver problemas com o Exchange ActiveSync - excha...

7 de 11

about:reader?url=http://blogs.technet.com/b/exchange_br/archive/2012/0...

Data

Opcional

System.String

DeviceId

Opcional

System.String

Especifica uma data para analisa


formato: MM-DD-AAAA
ID do Dispositivo de Sincroniza
Desabilita a capacidade de adici
relatrio que os usurios podem

DisableColumnDetect

Opcional

System.Management.
Automation.SwitchParameter

exemplo: time-taken
Observao: Se voc est exec
arquivos que podem ter cabeal
este interruptor deve ser usado.

Ajuda

Opcional

ReportBySeconds

Opcional

Por hora

Opcional

HTMLReport

Opcional

System.Management.
Automation.SwitchParameter
System.Int32
System.Management.
Automation.SwitchParameter
System.Management.
Automation.SwitchParameter

Descries do interruptor de sad


Gera o relatrio baseado no valo
segundos
Gera o relatrio por hora
Cria um Relatrio HTML
Cabealhos IIS CSV para Expor

HTMLCSVHeaders

Opcional

System.String

Padres:
"DeviceID,Hits,Ping,Sync,Folder
Agent"
Diretrio de Log IIS.

IISLogs

Obrigatrio System.Array

Por exemplo.- IISLogs D:\Server

LogParserExec

Obrigatrio System.String

Caminho para o LogParser.exe

MinimumHits

Opcional

SendEmailReport

Opcional

SMTPRecipient

Opcional

System.String

Destinatrio SMTP

SMTPSender

Opcional

System.String

Remetente SMTP

SMTPServer

Opcional

System.String

Servidor SMTP

System.Int32
System.Management.
Automation.SwitchParameter

O valor limite mnimo de ocorrn


ir gerar no CSV e HTML
Habilitar a emisso de relatrio p

Maiores ocorrncias para retorna


TopHits

Opcional

System.Int32

Por exemplo: TopHits 50. No po


Hora ou ReportBySeconds

Como voc usa o script?


Abaixo esto alguns exemplos (com comandos) sobre como voc
pode usar o script e por que deve us-los.
Ocorrncias superiores a 1000

8/4/2015 5:50 PM

Um Script para resolver problemas com o Exchange ActiveSync - excha...

8 de 11

about:reader?url=http://blogs.technet.com/b/exchange_br/archive/2012/0...

O seguinte comando ir analisar todos os Logs IIS na pasta


W3SVC1 e relata apenas as ocorrncias por usurios &
dispositivos superiores a 1000.
.\ActiveSyncReport.ps1 -IISLog "C:\inetpub\logs\LogFiles\W3SVC1"
-LogparserExec C:\Program Files (x86)\Log Parser
2.2\LogParser.exe -ActiveSyncOutputFolder c:\EASReports
-MinimumHits 1000
[No comando acima, o script ActiveSyncReport.ps1 est
localizado na raiz da unidade C, o interruptor -IISLog especifica o
local padro dos logs IIS, o interruptor -LogparserExec aponta para
o local do arquivo de aplicativo executvel do Analisador de Logs,
o interruptor -ActiveSyncOutputFolder oferece o local onde a sada
do arquivo de resultado precisa ser salva, MinimumHits com um
valor de "1000" o parmetro de script explicado na tabela abaixo]
Sada:

Geralmente, se um dispositivo estiver enviando acima de 1000


solicitaes por dia, ns consideramos um "alto uso". Se as
ocorrncias (solicitaes) so acima de 1500, poder haver um
problema no dispositivo ou no ambiente. Neste caso, o dispositivo
& sua atividade de usurio deve ser mais investigada.
Como um exemplo real, em um caso observamos vrios usurios
que esto atingindo demais o servidor Excel atravs do EAS (~25K
ocorrncias, 1K ocorrncias por hora) resultando em diminuio
dos recursos no servidor. Aps maior investigao, ns vemos que
estas solicitaes do usurio estavam resultando em um erro 507
em servidores da caixa de correio no back-end. Falando sobre
estes usurios EAS, descobrimos que durante esse perodo de
tempo eles estavam atingindo os limites de tamanho da caixa de
correio (25 MB) & estavam tentando excluir emails de diferentes
pastas para permanecer abaixo do limite de tamanho. Em tais
situaes, voc tambm pode ver as respostas HTTP 503
(TooManyJobsQueued) nos logs IIS para solicitaes EAS como
descrito na Base de Dados de Conhecimento: 2469722
Isolando uma ID de dispositivo especfica
Aqui, o seguinte comando ir analisar todos os Logs IIS na pasta
C:\IISLogs e iro procurar pela ID do dispositivo xxxxxx e exibir
suas estatsticas por hora.
.\ActiveSyncReport.ps1 -IISLog " C:\inetpub\logs\LogFiles

8/4/2015 5:50 PM

Um Script para resolver problemas com o Exchange ActiveSync - excha...

9 de 11

about:reader?url=http://blogs.technet.com/b/exchange_br/archive/2012/0...

\W3SVC1" -LogparserExec C:\Program Files (x86)\Log Parser


2.2\LogParser.exe -ActiveSyncOutputFolder c:\EASReports
DeviceID xxxxxx -Hourly
Sada:

Com a informao acima, possvel escolher um


usurio/dispositivo e ver suas tendncias por hora. Isso pode
ajudar a identificar se uma ao do usurio ou programada.
Como um exemplo real, em um caso temos que descobrir quais
dispositivos estavam modificando os itens de calendrio. Portanto,
olhamos para a atividade do usurio/dispositivo e classificamos por
comandos diferentes que estavam enviando ao servidor; Aps
isso, apenas nos concentramos em quais usurios/dispositivos
estavam enviando o comando MeetingResponse e sua
frequncia, perodo de tempo & mais detalhes relacionados. Isso
nos ajudou a diminuir o problema para os usurios relacionados e
sua atividade especfica do calendrio para resolver melhor o
problema de calendrio subjacente.
Outro comando relacionado ao dispositivo & o erro para procurar
o comando "Options",se no tem xito para um dispositivo e se o
cdigo de erro HTTP 409 retornado no log IIS.
Isolando um nico dia
O comando a seguir analisar apenas os arquivos que
correspondem a data 24-12-2011 na pasta W3SVC1 e relatar
apenas ocorrncias maiores que 1000.
.\ActiveSyncReport.ps1 -IISLog "C:\inetpub\logs\LogFiles\W3SVC1"
-LogparserExec C:\Program Files (x86)\Log Parser
2.2\LogParser.exe -ActiveSyncOutputFolder c:\EASReports
-MinimumHits 1000 Date 12-24-2011
Sada:

8/4/2015 5:50 PM

Um Script para resolver problemas com o Exchange ActiveSync - excha...

10 de 11

about:reader?url=http://blogs.technet.com/b/exchange_br/archive/2012/0...

Com a informao acima, possvel identificar usurios enviando


um alto nmero de solicitaes. Alm disso, dentro das colunas,
possvel ver quais tipos de comandos esses usurios esto
enviando. Isso ajuda a resultar em tcnicas de resoluo de
problemas eficientes e & mais diretas.

O que devemos procurar?


Quando analisar os logs IIS com a ajuda de um script, voc deve
procurar por um comando especfico sendo enviado
continuadamente. A frequncia dos comandos particulares sendo
enviados importante, qualquer comando com falha frequente
tambm muito importante & isso deve ser analisado. Devemos
tambm & comparar os tempos de espera entre as execues de
determinados comandos. Geralmente, os comandos que levam
mais tempo para executar ou resultam em um atraso de resposta
do servidor sero suspeitos & devem ser mais investigados.
Mantenha em mente, o comando Ping uma exceo que leva
mais para executar e voc o ver frequentemente no log, o que
esperado.
Se voc observar falhas contnuas para conectar em um
dispositivo com um cdigo de erro 403, o que pode significar que o
dispositivo no est habilitado para o acesso baseado em EAS.
Algumas vezes, os usurios de dispositivos mveis reclamam de
problemas de conectividade sem perceber que eles realmente no
esto inserindo suas credenciais corretamente ( fcil realizar
esses erros em dispositivos mveis). Quando verificar os logs,
possvel focalizar que esse usurio & pode descobrir que o
dispositivo do usurio est falando aps emitir o comando
"Provision".

Criando relatrios para monitoramento


Voc pode desejar criar um relatrio ou gerar um email com
relatrios e detalhes da atividade do usurio.
O seguinte comando analisar todos os Logs IIS na pasta
W3SVC1 e ir apenas relatar ocorrncias superiores a 1000. Alm
disso, criar um relatrio HTML dos resultados.
.\ActiveSyncReport.ps1 -IISLog "C:\inetpub\logs\LogFiles\W3SVC1"
-LogparserExec C:\Program Files (x86)\Log Parser
2.2\LogParser.exe -ActiveSyncOutputFolder c:\EASReports
-MinimumHits 1000 -HTMLReport
O seguinte comando analisar todos os arquivos nas pastas
C:\Server1_Logs e D:\Server2_Logs e tambm enviar por email o

8/4/2015 5:50 PM

Um Script para resolver problemas com o Exchange ActiveSync - excha...

11 de 11

about:reader?url=http://blogs.technet.com/b/exchange_br/archive/2012/0...

relatrio gerado para "user@contoso.com".


.\ActiveSyncReport.ps1 -IISLog "C:\Server1_Logs",D:
\Server2_Logs -LogparserExec C:\Program Files (x86)\Log
Parser 2.2\LogParser.exe -ActiveSyncOutputFolder c:\EASReports
-SendEmailReport -SMTPRecipient user@contoso.com
SMTPSender user2@contoso.com -SMTPServer
mail.contoso.com
Esperamos sinceramente que nossos leitores achem este script
til. Conte-nos sobre como esses scripts tornaram sua vida mais
fcil e o que mais podemos fazer para melhor-lo.
Agradecimentos especiais para:
M. Amir Haque, Will Duff, Steve Swift, Angelique Conde, Kary Wall,
Chris Lineback & Mike Lagase

Essa uma publicao localizada. Encontre o artigo original em A


script to troubleshoot issues with Exchange ActiveSync

8/4/2015 5:50 PM

You might also like