Como diagnosticar um incidente?
Terças de ALM e Operações
Workshops
Alan do Nascimento Carlos, Blog Technet WikiMCT, MCSE, MCSD ALM, MCSA, MCITP, MCS, MCP, MCPS, MCTS, MCDST, ICC-TS, PSM, ITIL, COBIT
Terças de ALM e Operações
Workshops
Para diagnosticar qualquer incidente
é primordial possuir uma visão
simplista, analítica e senso lógico.
Terças de ALM e Operações
Workshops
O analista precisa ter uma compreensão de funcionamento
de aplicações como:
- Web Applications/Web Sites
- Web Services
- Database Applications
- Windows Forms
- Windows Services- Windows Process
Sempre inicie pelo mais simples para resolver o
incidente focando na solução, pois o
reestabelecimento do serviço é primordial ao cliente
ou à seu desenvolvimento e teste de aplicativo.
Terças de ALM e Operações
Workshops
Terças de ALM e Operações
Workshops
Após o reestabelecimento, deve-se focar na
análise e descobrir a causa raiz para mitigar novos incidentes.
Terças de ALM e Operações
Workshops
Muito cuidado!
Incidentes são similares, porém
a causa raiz diferente.
Obs.: Por isso o ITIL tem comocompreensão distinta INCIDENTE e PROBLEMA.
Terças de ALM e Operações
Workshops
- Configuração incorreta
- Falta de componentes ou requisitos
- Falhas de ambientes
- Bugs
ALM e Operações - Workshops
É comum haver erros de configuração em instalações, alterações
não programadas, entre outros tipos de mudanças nas
configurações.
Para diagnosticar situações assim, valide o incidente e procure as
configurações inerentes a esse incidente, por exemplo, falhas de
acesso, não processamento de documentos ou dados, entre outros
incidentes.
Revise todas as configurações
Verifique se a versão está atualizada
Verifique se todos os componentes estão instalados
corretamente
ALM e Operações - Workshops
ALM e Operações - Workshops
É comum um componente se corromper ou não estar registrado no sistema do Windows, ou até um
componente mais antigo estar atrapalhando o funcionamento de um componente mais atual. Alguns
exemplos:
- Aplicações Web que usam .NET Framework 4.0 estarem rodando acidentalmente com o .NET Framework
2.0;
- Processos ou serviços que dependem de Runtime de bibliotecas C++ 2008 rodando com bibliotecas C++
2005, ou até outras;
- DLL perderem o registro no sistema operacional;
- API do Windows estar em uma versão anterior atrapalhando o funcionamento do sistema que foi projetado
para usar uma API mais atual, mesmo que o sistema operacional seja a mesma versão;
Lembrem-se que as aplicações dependem de componentes externos para seu funcionamento como:
- Runtime Visual Studio C++, .NET ou JAVA;
- Clientes de conexão como SQL Client, Oracle Client;
- API do sistema operacional estar desatualizada ou com problemas;
ALM e Operações - Workshops
Dependency Walker e Tasklist
Com o Dependency Walter e Tasklist é possível identificar falta de componentes por visualização, alertas ou
comparações entre aplicações em funcionamento e as com falhas.
Visualizador de Eventos
Irá ajudar a identificar se quando o processo inicia, gera um evento informando a falha ou falta de um
componente específico como por exemplo DLL da aplicação, .NET Framework, componentes Runtime C++,
componentes desatualizados.
Logs das aplicações envolvidas
Valide através dos logs das aplicações se há informações específicas de falhas por falta de componentes.
Ferramentas de auxílio
Verifique se os componentes estão corretos
Compare as versões de componentes com uma
instalação em funcionamento
ALM e Operações - Workshops
Verifique se os logs da aplicação ou visualizador de
eventos demonstra falhas por falta de componente
ALM e Operações - Workshops
Para corrigir problemas de dependências siga os passos:
- Reinstale o componente necessário, como as bibliotecas de Runtime do C, .NET, ou Java;
- Registre as DLL, se necessário com o comando REGSVR32 (nomedadll.dll);
- Valide se o componente DCOM está em funcionamento e se há permissões devidamente configuradas em
Ferramentas Administrativas Serviços de Componentes;
- Compare com o Tasklist se o processo está carregando todas as DLL necessárias.
Corrigindo Incidentes
ALM e Operações - Workshops
http://support.microsoft.com/kb/970744/pt-br
O Microsoft Windows Installer é um componente do sistema operacional Windows. O Windows Installer
fornece uma “fundação” padrão para a instalação e a desinstalação de softwares. Os fabricantes de software
podem criar a instalação de seus produtos para usar o Windows Installer tornando a instalação, a manutenção
e a desinstalação de software mais direta e fácil.
Em casos excepcionais, o Windows Installer poderá apresentar falhas em seu funcionamento, onde poderá ser
necessário realizar uma manutenção nele.
Windows Installer
ALM e Operações - Workshops
É comum um ocorrer falhas de comunicação devido a mudanças no ambiente
do cliente e até problemas dos componentes clientes que realizam a
comunicação, como por exemplo:
- Saturação de conexões TCP/UDP do cliente ou servidor;
- Falhas de componentes como o cliente do SQL Server, bibliotecas C++ usadas para a
comunicação;
- Impedimento por regras de firewalls;
- Proxy ou roteadores filtrando ou encaminhando pacotes entre origem destino;
- Problemas de resolução de nomes (DNS ou NETBIOS);
Toda conexão inicia-se pelo cliente servidor
Toda conexão deve encerrar do cliente servidor
Toda conexão TCP usa “three-way handshake” tanto
para estabelecer a conexão como para encerrar a
conexão
ALM e Operações - Workshops
ALM e Operações - Workshops
O nível de protocolo de controle de transmissão (TCP) do protocolo de transporte TCP/IP é orientado por conexão.
Orientado à conexão significa que, antes que os dados podem ser transmitidos, uma conexão confiável deve obtida e
confirmada. As transmissões de dados em nível de TCP, estabelecimento da conexão e conexão mantém os
parâmetros de controle específicas que regem o processo inteiro. Os bits de controle são listados da seguinte
maneira:
URG: Campo de ponteiro urgente
ACK: Campo de confirmação significativo
PSH: Função de Push
RST: Redefinir a conexão
SYN: Sincronizar números de seqüência
FIN: Nenhum dado a mais do emissor
Há dois cenários em que um handshake de três vias ocorrerá:
• Estabelecer uma conexão (um ativo aberto)
• Encerrar uma conexão (um fechamento ativo)
Three-Way Handshake
http://support.microsoft.com/kb/172983/pt-br
Toda conexão UDP é sem confirmação;
Protocolos de conexão tem regras (IETF) como
quantidade de conexões simultâneas, tipos de
mensagens a serem trafegadas, cuidado!;
Por padrão, todo o servidor (destino) deve ter um
timeout de encerramento ou reciclagem de
conexão/processo.
ALM e Operações - Workshops
ALM e Operações - Workshops
Ex. configurações de reciclagem ou timeout
IIS - Reciclagem regular de um pool de aplicativo
IIS - Finalização de um processo W3WP por ociosidade
Ex. configurações de reciclagem ou timeout
MS-SQL – Encerramento de execução
de uma query depois de um tempo esperado
ALM e Operações - Workshops
Ferramentas de auxílio
ALM e Operações - Workshops
TCP View e Port Query
Validar os estados das conexões, se há intermediários interceptando as conexões; Se há falhas de conexões,
empilhamento de conexões, conexões não encerradas corretamente. Porty Query ajuda a realizar testes de
conexões e validar se há portas abertas e em funcionamento no servidor destino.
Visualizador de Eventos
Irá ajudar a identificar a cada nova tentativa de conexão, se há um evento correlacionado como por exemplo,
um evento informando um erro de login ou senha, erro de permissão de acesso, ou até um erro genérico, mas
que demonstre que há uma falha ocorrendo justamente no momento da tentativa de conexão.
Logs das aplicações envolvidas
Valide através dos logs das aplicações o que está acontecendo no momento da tentativa da conexão. Por
exemplo os logs do Internet Information Services (Web Application e Web Services), SQL Server (Banco de
Dados) e da própria aplicação envolvida.
Entendendo uma
conexão: Exemplo
ALM e Operações - Workshops
Através do IE foi aberta uma
aplicação Web no endereço
(localhost)
Veja que o Internet Explorer (iexplorer.exe) abriu uma conexão no endereço
(IPV6) 0:0:0:0:0:0:0:1 (endereço do localhost na porta remota 80 que é a porta
usada pelo Internet Information Services (Servidor Web) e seu estado é ESTABLISHED
Observe que o processo SYSTEM
Está com a porta local 80 em uso tanto no IPV4 0.0.0.0
Como no IPV6, ou seja, está OK, por isso a conexão ocorreu corretamente
ALM e Operações - Workshops
Por ser tratar de uma aplicação Web, observe que na parte do servidor Web o processo
W3WP.EXE está em funcionamento, inclusive conectado em um endereço remoto na porta 5724
enviando e recebendo pacotes.
Procurando no servidor o processo que hospeda a porta 5724, vemos que se trata do
processo “Microsoft.Mom.Sdk.ServiceHost.exe” que está com estado de LISTENING
INTERNETEXPLORER
SERVIDOR WEB
OUTRA APLICAÇÃO
BANCO DE DADOS
Ex. logs de aplicações
IIS – Logs ETW – Microsoft Message Analyzer
ALM e Operações - Workshops
http://blogs.technet.com/b/messageanalyzer/
http://www.orcsweb.com/blog/terri/new-logging-
capabilities-with-iis-8-5/
Ex. logs de aplicações
IIS – Logs de acessos e conexões
ALM e Operações - Workshops
Tabela explicando cada campo: http://technet.microsoft.com/pt-br/library/cc786596(v=ws.10).aspx
ALM e Operações - Workshops
Para corrigir problemas de comunicação siga os passos:
- Verifique se as portas estão configuradas corretamente;
- Verifique se não há acumulo/empilhamento de conexões TCP/UDP com falhas, usando o TCPVIEW;
- Verifique se o serviço/processo que hospeda a porta está funcionando corretamente;
- Valide se os componentes clientes de acesso como SQL Client estão instalados e funcionando
corretamente;
- Verifique com o TPCVIEW ou TRACERT se não há proxys/roteadores/firewalls que podem estar filtrando
pacotes e impedindo a conexão correta com o destino;
- Verifique se o IP/Classe do cliente e destino estão na mesma rede ou se há roteadores que garantam a
entrega correta dos pacotes;
- Valide se no servidor destino não há configurações limitadoras como timeout com tempo limite muito
baixo, controle de conexões simultâneas, controle do tamanho de envio de pacotes.
Corrigindo Incidentes
ALM e Operações - Workshops
Todo processo é executado em uma instância de conta, sejam as contas de computadores, como as contas de
usuários e as contas configuradas pelos próprios aplicativos. Essas contas precisam ter acessos a determinados
locais, e esses acessos são definidos por NTFS e ACL.
É comum que haja mudanças nos ambientes de clientes para atender demandas de segurança, e algumas
vezes essas mudanças afetam os acessos, gerando então, uma negação a determinado componentes ou
diretório para a conta usada pelo processo da aplicação.
ALM e Operações - Workshops
Exemplo de mudanças em Group Policy que
altera o comportamento do sistema operacional.
Para identificar alterações nesse nível, execute o
comando gpresult /h gpreport.html e depois abra o
arquivo gpreport.html.
ALM e Operações - Workshops
Performance Monitor
Auxilia na coleta de contadores de desempenho do sistema operacional para análise de desempenho e recursos
da aplicação.
Task Manager
Monitora em tempo real os processos que estão em execução, demonstrando de forma resumida ou detalhada
(Windows 2008/2012) o funcionamento dos processos e recursos utilizados.
Process Explorer
Ferramenta do Microsoft Sysinternals que trás informações detalhadas dos processos em execução, conexões, DLL
usadas, diretórios acessados, picos de consumo de recursos.
Ferramentas de auxílio
ALM e Operações - Workshops
Para corrigir problemas de permissão siga os passos:
- Verifique nos eventos se há informações referentes a problemas de logon ou acesso;
- Verifique no log da aplicação se há informações referentes a problemas de acesso;
- Acompanhe os processos e respectivas contas com o Process Monitor para identificar possíveis erros de
acesso;
- Verifique as permissões efetivas nos diretórios e chaves de registro que a aplicação necessita de acesso;
- Execute testes como alteração das contas de acesso nos serviços, contas de execução, nos pools de
aplicativos, conta de acesso no banco de dados;
Corrigindo Incidentes
ALM e Operações - Workshops
É comum ocorrem incidentes devido a falta de recursos no
ambiente, ocasionando falhas na aplicação. Essa falta de recursos
pode estar associada à:
- Subutilização de recursos pela aplicação;
- Dimensionamento incorreto de recursos pelo time de operações;
ALM e Operações - Workshops
Podemos dividir os recursos em três categorias:
- Processador
- Memória
- Disco
Exemplo Contadores
Processor: % Processor Time Média deve ser inferior à 75% (ideal 50%)
ALM e Operações - Workshops
System: Processor Queue Length Máximo duas filas por processador lógico
Exemplo Contadores
Memory: % Committed Bytes in UseDeve ser inferior à 80%
ALM e Operações - Workshops
Memory: Avaliable MbytesDeve ser maior que 5% disponível
Exemplo Contadores
ALM e Operações - Workshops
Performance Monitor
Auxilia na coleta de contadores, sendo possível agendar quais os contadores, acompanhar por dias e gerar
relatórios a partir dos mesmos.
Task Manager
Auxilia demonstrando uma visão geral dos recursos utilizados, PID (identificadores), e informações adicionais.
Process Explorer
Auxilia no gerenciamento de determinados processos, picos de consumo, uso de disco, memória,
transferência de dados dando um visão mais ampla do processo em tempo real.
Ferramentas de auxílio
ALM e Operações - Workshops
Tudo sobre contadores: http://technet.microsoft.com/pt-br/magazine/2008.08.pulse.aspx
Top Related