Windows – Análises de Incidentes de Aplicativos – Monitor de Confiabilidade e Eventos do Sistema

Introdução

Esse artigo tem como objetivo auxiliar em análises de incidentes de aplicativos que compremetem o sistema operacional, demonstrado como identificar o que está ocorrendo.

Entendimentos

Normalmente, aplicativos de empresas confiáveis dificilmente tornam o sistema operacional instável de uma hora para a outra, isso ocorre devido a diversas proteções e arquitetura que o próprio sistema operacional possui para evitar que ocorra esse tipo de incidente, como a arquitetura de anéis, onde as aplicações e usuários estão no anel 1 e o Kernel (Executivo) do sistema operacional está no anel 0, garantindo assim uma estabilidade maior, pois as requisições passam a ser feitas por API do proprio sistema operacional, e caso haja violação, ela é bem controlada pelo sistema.

Claro que pode ocorrer exceções de violação de memória (endereçamento), ocasionando um “congelamento” ou uma Blue-Screen, mas normalmente são ocasionadas por DRIVERS e DISPOSITIVOS que trabalham em conjunto com o KERNEL no ANEL 0.

Em grande maioria, uma aplicação pode tornar um servidor instável ao ponto de “travá-lo” quando ocorre-se um consumo excessivo de recursos no decorrer do tempo que, dependendo do servidor, pode ser de dias, caso sejam recursos que envolvam espaço em disco, ou memória RAM.

Os recursos comumente “tomados” de forma incorreta por aplicações que ocasionam a indisponibilidade de um servidor são os seguintes:

– Handles (Ponteiros) – Recurso por aplicações para “conversar” e solicitar recursos ao sistema operacional;

Um numero ideal é no máximo 100.000 (isso já é alto), mas o comportamento fácil de indentificar é acompanhar o processo e validar se apenas aumenta e não diminui ou aumenta 10 e diminui 01, por exemplo. Para identificar tais erros, utilize o Gerenciador de Tarefas do Windows. Veja aqui o que significa cada coluna: http://windows.microsoft.com/pt-br/windows/what-task-manager-memory-columns-mean#1TC=windows-7

image

– Memória (Vazamento de memória) – A aplicação apresentar problemas em gerenciamento de memória, ocasionando consumo excessivo até a total “parada” do servidor;

– Conexões (TCP e UDP) – Toda a comunicação, seja interna ou externa, é feita via TCP/UDP, e uma aplicação pode apresentar certa instabilidade ao gerenciar tais recursos, ocasionando um consumo excessivo de portas até a total indisponibilidade de um servidor;

Normalmente nesse caso haverá um processo com diversas conexões em estados como TIME_WAI, FIN, ACK, que são estados intermediários entre LISTENING e ESTABILISHED, e que não deveriam estar nesse estado por um tempo elevado. Para acompanhar o comportamento, utilize no servidor que apresenta tal instabilidade, a ferramenta TCP View.

image

Mas é importante entender também se uma instabilidade não está sendo causada por recursos ou incompatibilidade de aplicações, como por exemplo um problema de consumo excessivo de leitura e escrita de disco, está na verdade associado a uma falha de funcionamento do próprio disco, então é importante que nas análises, sejam usadas ferramentas como o Visualizador de Eventos do Windows e o Monitor de Confiabilidade.

Ferramentas de Apoio

Para identificar possíveis falhas nesses cenário pode se usar as ferramentas abaixo:

– Monitor de Confiabilidade (Identificar Correlação de Travamento com outros Aplicativos)

Para exibir o monitor de confiabilidade digite no executar perfmon /rel

image

Verifique na tela que as coletas demonstram incidentes de alguns aplicativos, como o próprio Internet Explorer, possivelmente causado por um plugin de terceiro instalado. Use esse monitor para correlacionar os incidentes de “travamento” do servidor identificar se houve uma falha em conjunto com esse travamento.

image

Caso o monitor de confiabilidade não esteja ativo, você pode ativar e acompanhar. Para ativar a coleta do monitor de confiabilidade, abra o Agendador de Tarefas:

image

Vá na tarefa oculta RAC e configure para executar conforme seus critérios, por exemplo uma vez ao dia, de 12 e 12 horas, quando o sistema iniciar ou a partir de um evento.

image

Exemplos:

image

Clique aqui para maiores informações: http://technet.microsoft.com/pt-br/library/cc766393(v=ws.10).aspx

– Utilizando o Visualizador de Eventos (Identificar Falhas de Componentes ou Dispositivos)

Você pode usar o visualizador de eventos para avaliar se antes da falha no servidor houve algum evento como por exemplo, falha de disco, processador, memória, quando há uma Blue Screen o ID do erro é gravado no evento e com esse ID é possível identificar a raiz do incidente, como uma violação de memória ou falha de equipamento, por exemplo.

image

image

Avalie em Sistema falhas de disco, processador, sistema operacional, gravação de erro de congelamento, ou em Aplicativo falhas de componentes, de plugins, do próprio aplicativo em questão.

DEVOPS – Monitorando Aplicações com os Relatórios do System Center

Esse artigo tem como objetivo auxiliar o time de Desenvolvimento e Operações em análises de aplicações em ambientes de homologação e produção, e conseguir identificar itens como:

Tipos de Relatórios

– Consumo de recursos;

– Incidentes registrados ao longo do tempo (indisponibilidade de serviços, das aplicações Web, banco de dados);

– Identificar possíveis afunilamentos (banco de dados, link, memória, disco, processador) causando lentidão em sua aplicação;

– Boas práticas para manter o ambiente saudável, como os ultimos packs, atualizações do .NET inclusive que resolvem possiveis BUGS em sua aplicação ou falhas de comportamento, dicas de configuração de seu banco de dados.

Responda a perguntas

Meu aplicativo está com um comportamento inesperado devido a má configuração no ambiente?

Meu aplicativo está usando os recursos do ambiente de forma correta?

Qual o desempenho do meu aplicativo?

Meu aplicativo apresentou indisponibilidade em um determinado dia, houve alguma falha em um ativo como Banco de Dados, Link, Memória, Processador?

Meu aplicativo está apresentando lentidão no processamento?

Meu aplicativo está tendo intermitências de funcionamento?

Requisitos

Para realizar esse processo, você deve possuir:

– O System Center Operations Manager 2012 R2 da Microsoft;

– O agente do System Center nos servidores que possuem as aplicações e todos os ativos que compoem o ambiente, por exemplo, um agente instalado no servidor de banco de dados, um agente instalado no servidor Web e de aplicações (Serviços), etc.

– Os Management Packs do System Center para:

    SQL Server

    Windows Server

image

    Internet Information Services (está no catálogo online do System Center)

    – Microsoft Advisor;

Esse é simples, você deve apenas conectar seu SCOM no Advisor, lembrando que os servidores que serão monitorados, deverão ser no minimo Windows 2008 Server e deve estar instalado o .NET Framework 3.5 nos servidores que serão monitorados, para que o Advisor funcione.

Para instalar esses requisitos é muito simples, seguem artigos ajudando, inclusive lhe auxiliando como configurar um serviço ou aplicativo Web para ser monitorado.

ALM – DevOps – SCOM – Monitorar Aplicações Web, Desempenho, Disponibilidade e Executar Ações de Recuperação

ALM – DevOps – Monitorando Aplicações .NET com o System Center

Gerando os Relatórios

– Consumo de Recursos

Identifique se sua aplicação está em ambiente que possui recursos suficientes, e se os recursos estao sendo corretamente utilizados pela aplicação.

Para identificar gere os relatórios:

Reporting –> Windows Server Operation System Reports –> Performance by Utilization

image

image

image

Pergunte-se e obtenha as respostas com esse relatório.

Estou usando um dispositivo que atende a demanda de meu aplicativo?

O disco suporta as taxas de transferência que minha aplicação exige?

O fabricante oferece um equipamento mais robusto?

Minha aplicação foi desenhada para atender o mercado e ambientes dos clientes de médio porte, usando dispositivos com desempenho inferior?

Incidentes registrados ao longo do tempo (indisponibilidade de serviços, das aplicações Web, banco de dados)

Depois de ter configurado os serviços, conforme os artigos acima citados, gere relatórios de acompanhamento, de seu Web Site (que hospeda sua aplicação), seu serviço Windows ou banco de dados e avalie o comportamento de sua aplicação ao longo do tempo, inclusive avaliando possiveis incidentes, falhas de funcionamento, que não são reportadas. Por exemplo, disponibilidade de seu pool de aplicação Web:

Monitoring –> Microsoft Windows Internet Information Services –> Application Pool State (Selecione o Pool) –> Task Pane –> Report Task –> Availability

image

image

image

image

image

Ou alertas de um serviço:

Monitoring –> Windows Service And Process Monitoring –> Windows Service State (Selecione o Serviço)  –> Task Pane –> Report Task –> Availability

image

image

image

Relatórios de alertas de monitoramento de aplicações Web:

image

E diversos outros.

Boas práticas para manter o ambiente saudável, como os ultimos packs, alterações nas configurações, atualizações do .NET inclusive que resolvem possiveis BUGS em sua aplicação ou falhas de comportamento, dicas de configuração de seu banco de dados.

Acompanhe alertas de manutenções, boas práticas de configuração, além de monitorar desempenho de suas aplicações em homologação e produção no cliente.

– Banco de Dados

Monitoring –> Microsoft SQL Server –> Dashboard for SQL Server

image

– Alteração de Configurações

Reporting –> Microsoft Generic Report Library –> Configuration Changes

image

– Dicas de Service Packs, Hotfix, Boas Práticas de Configuração, a serem usadas em seu ambiente

image

image

image

image

image

Há diversos outros relatórios que podem ser usados combinando suas necessidades, explore os mesmos conforme seu objetivo.

Alan Carlos
Technet Wiki Ninja

ALM – Gerenciamento de Projeto com Visual Studio ALM e Project Server (EPM)

Imagine o cenário que você tem um projeto com as seguintes características:

– O time de desenvolvimento é composto de desenvolvedores com habilidades específicas;
– Os requisitos são bem definidos e não irão sofrer alterações;

Porém:

– O projeto possui diversas dependências externas, como API sendo desenvolvidas por empresas terceiras que não usam o TFS, seu projeto utilizará um hardware fabricado por terceiros que utilizam metodologias e ferramentas diversificadas, além da distância geográfica;
– Se qualquer das das dependêncuas externas não atender o prazo firmado, o projeto será afetado;
– Todos os impactos, externos ou internos devem ser identificados e medidos.

O que você deve fazer?

Você poderá utilizar em conjunto com seu Team Foundation Server (TFS) o Project Server, tornando sua experiência ALM ainda mais completa. Dê uma olhada nos artigos abaixo e faça seu laboratório de testes.

ALM – Integração do Project Server e Team Foundation Server
ALM – Visual Studio – Indicadores Como Usar?

Espero ter ajudado. Um abraço!

Alan Carlos

Treinamento Especialista em TI

Olá Pessoal,

Nos ultimos 02 meses, ministrei um treinamento sobre TI que tinha como foco análise de incidentes no Windows, melhores práticas, ferramentas, redes e protocolos. Foi um treinamento muito bom, com práticas, laboratórios e provas em ambientes hostis.

Quem tiver interesse, pode realizar o download da apresentação.

Espero que aproveitem.

http://www.slideshare.net/alancarlos29/apresentao-it-specialist

Um abraço e até a próxima!

Alan Carlos