alm e operações - workshop - como diagnosticar um incidente

51
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

Upload: alan-carlos

Post on 25-Dec-2014

161 views

Category:

Technology


1 download

DESCRIPTION

Workshop demonstrando como realizar diagnósticos de problemas em ambientes e aplicativos usando algumas técnicas e ferramentas de apoio.

TRANSCRIPT

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

Principais Causas

Terças de ALM e Operações

Workshops

- Configuração incorreta

- Falta de componentes ou requisitos

- Falhas de ambientes

- Bugs

Configuração incorreta

Terças de ALM e Operações

Workshops

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

Falta de Componentes ou Requisitos

Terças de 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

Exemplos de componentes

que uma aplicação utiliza.

DLL, API, .NET, etc.

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

Falhas de Ambientes

Terças de ALM e Operações

Workshops

Verifique se há falhas de comunicação

Terças de ALM e Operações

Workshops

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 de acessos e conexões

ALM e Operações - Workshops

Ex. logs de aplicações

IIS – Logs de acessos e conexões

ALM e Operações - Workshops

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

Ex. logs de aplicações

MS-SQL – Logs de acessos e conexões

ALM e Operações - Workshops

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

http://msdn.microsoft.com/pt-br/library/e1f13641%28v=vs.85%29.aspx

Verifique se há problemas de permissão

Terças de ALM e Operações

Workshops

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.

Permissões NTFS e ACL

User Access Control e Group Policy

ALM e Operações - Workshops

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

Verifique se há falta de recursos

Terças de ALM e Operações

Workshops

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

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