O documento fornece orientações para diagnosticar incidentes, começando pelo mais simples e focando na solução rápida. Explica que após o reestabelecimento do serviço, deve-se analisar a causa raiz para evitar novos incidentes. Também lista causas comuns como configurações incorretas, falta de componentes, falhas de comunicação e problemas de permissão.
ALM e Operações - Workshop - Como Diagnosticar um Incidente
1. Como diagnosticar um incidente?
Terças de ALM e Operações
Workshops
Alan do Nascimento Carlos, Blog Technet Wiki
MCT, MCSE, MCSD ALM, MCSA, MCITP, MCS, MCP, MCPS, MCTS, MCDST, ICC-TS, PSM, ITIL, COBIT
2. Terças de ALM e Operações
Workshops
Para diagnosticar qualquer incidente
é primordial possuir uma visão
simplista, analítica e senso lógico.
3. 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
4. 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
5. 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.
6. 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 como
compreensão distinta INCIDENTE e PROBLEMA.
7. Terças de ALM e Operações
Workshops
Principais Causas
8. Terças de ALM e Operações
Workshops
-Configuração incorreta
-Falta de componentesou requisitos
-Falhas de ambientes
-Bugs
10. 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.
11. 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
13. 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;
14. ALM e Operações -Workshops
Dependency Walkere 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
15. 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
16. ALM e Operações -Workshops
Exemplos de componentes
que uma aplicação utiliza.
DLL, API, .NET, etc.
17. 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
18. 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
20. Verifique se há falhas de comunicação
Terças de ALM e Operações
Workshops
21. 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);
22. 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
23. 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
24. 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
25. 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
26. 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
27. Ferramentas de auxílio
ALM e Operações -Workshops
TCP Viewe PortQuery
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.
28. 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
29. 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
INTERNET
EXPLORER
SERVIDOR WEB
OUTRA APLICAÇÃO
BANCO DE DADOS
30. Ex. logs de aplicações
IIS –Logs de acessos e conexões
ALM e Operações -Workshops
31. Ex. logs de aplicações
IIS –Logs de acessos e conexões
ALM e Operações -Workshops
32. 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/
33. 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
34. Ex. logs de aplicações
MS-SQL –Logs de acessos e conexões
ALM e Operações -Workshops
35. 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
36. ALM e Operações -Workshops
http://msdn.microsoft.com/pt-br/library/e1f13641%28v=vs.85%29.aspx
37. Verifique se há problemas de permissão
Terças de ALM e Operações
Workshops
38. 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.
39. 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.
40. Permissões NTFS e ACL
User Access Control e Group Policy
ALM e Operações -Workshops
41. 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
42. 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
44. Verifique se há falta de recursos
Terças de ALM e Operações
Workshops
45. 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;
46. ALM e Operações -Workshops
Podemos dividir os recursos em três categorias:
-Processador
-Memória
-Disco
Exemplo Contadores
47. 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
48. Memory: % Committed Bytes in Use
Deve ser inferior à 80%
ALM e Operações -Workshops
Memory: AvaliableMbytes
Deve ser maiorque5% disponível
Exemplo Contadores
49. 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
50. ALM e Operações -Workshops
Tudo sobre contadores: http://technet.microsoft.com/pt-br/magazine/2008.08.pulse.aspx
51. Terças de ALM e Operações
Workshops
Obrigado!
blogs.technet.com/b/wikininjasbr/
blogs.technet.com/b/wikininjas/
fb.com/alancarlosmct
fb.com/qualidadeeti
qualidadeeti.wordpress.com
@alancarlosmct