“A State Machine Approach for Problem Detection in Large-scale Distributed System” Kewei Sun, Jie Qiu, Ying Li, Ying Chen IBM China Research Laboratory, Beijing, China. Network Operations and Management Symposium - NOMS 2008 Apresentado por Katia Abreu Tópicos em Redes Pós-Graduação em Informática – UFPR – out/2008 Motivação Detecção de problema é parte importante do gerenciamento de um sistema de larga-escala Problemas ainda são inevitáveis: bug da aplicação, middleware instável, hardware Sistemas distribuídos geram logs detalhados para gravar suas atividades Empresas: QoS reduzido, competitividade reduzida Abordagens existentes: Poucas consideram a análise de log de múltiplos hosts de um sistema distribuído em larga-escala Algumas detectam somente problemas conhecidos Roteiro Objetivos Conceitos e Definições Transação, Eventos e Transições em ME Detecção de Anomalias e Padrões de Problemas Um Estudo de Caso Conclusão Objetivos Apresentar um novo modelo de análise de logs: PDSM (Problem Detection State Machine) Baseia-se na projeção do comportamento de um sistema distribuído e mantém informações estatísticas desse comportamento Objetivo do método: coletar logs de componentes do sistema, construir uma Máquina de Estados, e usá-la pra verificar o comportamento de um sistema. Descrever como PDSM representa as atividades de um sistema de larga-escala em execução. Definição do Ambiente O que é SD em largaescala? SD componentes subsistemas Requisição da aplicação Transação O que é Maq. Estados? Estados = componentes + transição Controle de processamento é passado de um componente a outro Definições Para o PDSM SD é composto por um conjunto de componentes C = {c1,c2,…,cn} Ponto de Log é o local onde log de eventos são gerados. Um ci é componente atômico se ele não contém outros componentes O conjunto de pontos de log de um componente atômico é L(ci) = {lp1,lp2,...lpm} Para cada transação disparada por uma requisição r, ∃ um conjunto de componentes C(r), onde C(r) ⊂ C Máquina de Estados de Transação de Única Requisição Define-se Máquina de Estados - Mr - de uma transação, servindo uma única requisição, através da tupla: Estados da transação Conjunto dos Eventos que geram transições A probab. de um Estado de Qr ser o estado inicial PDSM Global Une todas as máquinas de estados de todas as requisições. Pode ser denotada por: Questões com os Eventos Logs são geradas por diferentes componentes Não existe relógio global Itens de log devem ter formato único Um método deve determinar a ordem relativa dos eventos É requerido rastrear a transação e extrair os eventos relacionados a ela PDSM: Processamento de Eventos Log de eventos são convertidos em um formato único, isto é, eventos base comum Para assegurar a abordagem adaptativa, não assume que todos os relógios são sincronizados Ordem parcial em um conjunto de eventos + informações de tempo real Para extrair os eventos relacionados à transação Magpie, Pinpoint Algoritmos Construção de Máquina de Estados Usando Log de Eventos Agrupamento de eventos em Estados De acordo com suas especificações e informações de mensagens O algoritmo: Detecção de Anomalia num. Estados de S4 num. transições de um Estado para outro 99,9% 0,1% Ponto de problema ou execução de um serviço acessado raramente? Como resolver? Usar informações detalhadas da transição S2 e do Estado S5 S5 Algoritmo para avaliar a anomalia dos Estados Idéia básica: visitar uma série de Estados ruins que se desviam do percurso normal O Estado mais suspeito de ser um problema é distinguido dos demais Algoritmo para Avaliar Estado Anormal Classificação dos eventos em níveis de erro: error/fatal, exception, warning, information e unknown É aplicada uma função para verificar o nível do Estado de erro E(s) Para cada Estado a partir do seu nível de erro é calculado se o Estado é uma Anomalia, se é um estado Normal, ou se não é possível classificar. Algoritmo para Detecção de Padrão de Problema Para erros que acontecem intermitentemente em um ou mais Estados Conectividade: Existe uma ligação entre esses Estados com erros intermitentes Verifica se o problema acontece em pares de Estados conectivos e se ambos têm o problema Saída: o conjunto de transições consideradas padrões de problemas Experimentação 4 máquinas Emprego do benchmark Trade 6 A abordagem é validada sobre a aplicação J2EE 3-tier Problemas Introduzidos Introduzidos separadamente Com duração de 1 hora Após 30 minutos de execução do sistema Detecção de Problema Individual Projeção de um problema de shutdown acidental em DB2 Inserção de Um Problema Um novo problema aumenta o número de Estados PDSM fornece uma projeção em tempo real Detecção de Múltiplos Problemas Máquina de Estados Global para todos os problemas introduzidos Inserção de Múltiplos Problemas Número de Estados e número de transições aumentam a cada novo problema Compressão de Logs PDSM une informações redundantes De milhões de logs/cententas de Estados para 1.200.000 logs/291 Estados Conclusão PDSM é um modelo de análise de log que representa a execução de um sistema distribuído de larga-escala Mantém informações estatísticas de comportamento Reduz os esforços de análise de logs ao fazer compressão Não necessita de conhecimento de alguma base de dados de problemas É sensível a problemas desconhecidos