monitoracao inteligente na globo.com

Post on 12-Jan-2015

5.235 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Monitoring and Event Correlation Talk from Globo.com at FISL10 (10th International Forum of Free Software) held in Brazil last week.

TRANSCRIPT

Monitoração Inteligente

Denis A. Vieira Jr.

Ricardo Clemente

Monitoração Inteligente

Agenda:

Motivação Onde estamos Para onde vamos Plano de ação Correlação de eventos

Monitoração Inteligente

Agenda:

Motivação Onde estamos Para onde vamos Plano de ação Correlação de eventos

Monitoração Inteligente

Motivação:

Monitoração pontual

Tempo de atuação/resolução de problemas

Precaução

Visão realista da produção

Monitoração Inteligente

Motivação:

Aprendizado (desvio de padrão)

Automação

Dados históricos sem perda

Credibilidade (Situational Awareness)

Monitoração Inteligente

Agenda:

Motivação Onde estamos Para onde vamos Plano de ação Correlação de eventos

Monitoração Inteligente

Onde estamos:

Muita informação (1200 servidores com mais de 14000 monitorações) - mais de 40000 gerando gráficos

Diversas ferramentas de monitoração em uso (SME, IPMonitor, Cricket, SiteScope, SiteSeer) - Nagios

Dificuldades com customizações específicas, performance e custo

Falta de credibilidade (muitos emails) porém com boas iniciativas

Monitoração Inteligente

Agenda:

Motivação Onde estamos Para onde vamos Plano de ação Correlação de eventos

Monitoração Inteligente

Para onde vamos:

Utilização de eventos. Ex.: Appenders para frameworks de logs integrando as aplicações atuais

Experiência para antecipar situações

Interface unificada de monitoração

Detecção de causa raíz através de causas conhecidas

Monitoração Inteligente

Agenda:

Motivação Onde estamos Para onde vamos Plano de ação Correlação de eventos

Monitoração Inteligente

Plano de ação:

Unificar a ferramenta de monitoração com Nagios (escalabilidade e integração)

Integração dos sistemas de monitoração usando NEB com o sistema de correlação de eventos

disponível em: code.google.com/p/neb2activemq

Mapeamento de eventos e sistemas para correlação (manual e analítico)

Monitoração Inteligente

Agenda:

Motivação Onde estamos Para onde vamos Plano de ação Correlação de eventos

Visão Geral e Arquitetura do sistema Barramento de Eventos Tecnologia de correlação Motor de Correlação Visualização Aprendizado de Máquina Projeto

Visão geral e arquitetura do sistema

Arquitetura modular e orientada a eventos

BARRAMENTO DE EVENTOS

MOTORCORRELAÇÃO

APRENDIZADO DE MÁQUINA

COLETOR

VISUALIZAÇÃO

Qual é a arquitetura do sistema?

Barramento único para troca de mensagens Módulos são processos separados no sistema operacional e

podem estar em máquinas diferentes Módulos podem publicar e/ou consumir eventos de

filas/tópicos do barramento

Porque utilizar uma arquitetura orientada a eventos (Event Driven Architecture) ?

Desacoplada e Distribuída Menos intrusivo aos sistemas monitorados Módulos são independentes

Visão geral e arquitetura do sistema

Barramento de eventos

Projeto de software livre

Escolha feita pelo Apache ActiveMQ: Estabilidade Performance Comunidade Ativa Conectividade

JMS STOMP REST XMPP (...)

Barramento de eventos

Formato da mensagem

JSON ( e não XML) Simplicidade

Composição Header : tipo de canal (fila ou tópico) e o tipo do evento Body: dados

$ curl -d "type=queue&body={'idle'=70, 'sys’=20, 'usr'=10, 'host'='ws122' }&eventtype=CPU" http://barramento/message/events;

Tecnologia de correlação

CEP (Complex Event Processing ) Tecnologia que permite processar em tempo real múltiplos

eventos com o objetivo de identificar eventos significativos Baseado em regras ou consultas (“SQL like”) Consultas criadas em tempo de execução

Origem Em 1995 o professor David Luckham de Stanford, trabalhando

no projeto Rapide criou o termo CEP Linha de pesquisa de banco de dados: Data Stream

Management Systems (DSMS)

Tecnologia de correlação

Processamento de consultas

Memória

DadosDadosDados

Relações persistentes

consulta resposta

Processamento de consultas

Memória

dados dados

consultacontínua resposta

fluxos de dados

“banco de dados ao contrário”

Tecnologia de correlação

Mercado

Tendência (Buzz) Mercado de CEP é estimado em 460 milhões de dólares em

2010 (fonte: IEEE Computer Society – Abril 2009)

Aplicável onde exista um grande fluxo de dados e a necessidade de se extrair informação em tempo real destes dados

Mercado financeiro Processos de logística (RFID) Controle aéreo UTIs Datacenters

Tecnologia de correlação

Big Players

Tecnologia de correlação

Players de software livre

Projetos acadêmicos: STREAM – Stanford – 2003 (oficialmente descontinuado) TelegraphCQ – Berkeley - 2003

Baseado no PostgreSQL 7.3.2 Sem atividade

Cayuga – Cornell

Projeto de uma empresa: Esper, projeto no codehaus Completo funcionalmente Excelente documentação Performance!

Motor de correlação

Se a sessão aumentar 10% no front-end dentro de 3 minutos e a média das cpus da farm do front não subir 5% e no banco o número de queries lentas for maior que 10, então está caracterizada uma contenção no banco de dados gerando enfileiramento de usuários

Aplicação

Motor de correlação

Aplicação

Mysql

Server

Vip

t – 3 min t

t – 3 min t

t

cpu_usr

slow_query

session

Motor de correlação

SELECT Server.host , Server.cpu_usr, Server_PAST.cpu_usr, Vip.session,

Vip_PAST.session, Mysql.slow_query

FROM

Server.win:time(1 min) as Server,

Server.win:ext_timed(current_timestamp(), 3 min) as Server_PAST,

Vip.win:time(1 min) as Vip,

Vip.win:ext_timed(current_timestamp(), 3 min) as Vip_PAST ,

Mysql.win:time (1min) as Mysql

HAVING

Vip.session > Vip_PAST.session * 1.10 AND

avg(Server.cpu_usr) < avg (Server_PAST.cpu_usr) * 1.05 AND

Mysql.slow_query > 10

Aplicação

Motor de correlação

Identificando um outlierselect host, free, avg(free)

from Memory.win:time(240 sec) group by host

having free < avg(free)

Sequência de eventosselect * from

pattern [every Memory(free < 10) ->

(timer:interval(60 sec) and Log(text like ‘%OutOfMemory%’)) ]

Horários e extensõesselect idle from pattern [every timer:at(*, [16:22], *, [0,3], *) ].win:time(30

sec), CPU.win:time(30) where  idle < 30 AND Filter.isInNode(id, "Tempo

Real")

Motor de correlação

Fonte: Esper Performance - http://docs.codehaus.org/display/ESPER/Esper+performance

Item Especificação

HW Servidor Esper 2 x Intel Xeon 5130 2GHz (4 cores total), 16GB RAM

VM config -Xms2g -Xmx2g -Xns128m -Xgc:gencon

Consulta # cons. evt/s Latência Latência média

Nota

select '$' as ticker from Market(ticker='$').win:length(1000).stat:weighted_avg('price', 'volume') output last every 30 seconds

1000 519 728 99.66% < 10us

2.8us CPU com 85%, 70 Mbit/s

Performance Esper

Motor de correlação

Processamento no Motor de Correlação

Visualização – Console

Consultando o ambiente em tempo real

Visualização – Troubleshooting

Antecipando e resolvendo mais rápido incidentes

Visualização - Dashboard

Visão consolidada de serviços

E para as regras que não são conhecidas?

Aprendizado de máquina

Opção por algoritmos não-supervisionados e incrementais

Algoritmo PCA Incremental Transforma um número de variáveis possivelmente correlatas

em um número menor de variáveis não-correlatas, os componentes principais

Uma mudança nos componentes principais significa uma quebra da correlação existente, ou anomalia

Pode ser usado para compressão de dados

Inspiração em artigo da Carnegie Mellon University (Hoke et al. 2006)

Fonte: http://www.pdl.cmu.edu/PDL-FTP/SelfStar/osr_sub.pdf

Implementação teve dois desafios principais: medidas sem valor e diferentes escalas

Aprendizado de máquina

60 sinais de entrada

Aprendizado de máquina

Resumido em 1 componente principal + matriz de geração

Aprendizado de máquina

componente principal 2

sensibilidade

três anomalias

Projeto

Andamento

Funcionalidades desenvolvidas

Algoritmos sendo validado por testes em RRDs e reuniões com operação

Testes de carga e robustez em andamento

Sistema em produção com escopo reduzido com expectativa de produção integral em julho

Projeto na Globo.com – Próximos desafios

Escalar o sistema“Sharding” de eventosBalanceamento de regrasCache

Aperfeiçoar algoritmosControle adaptativo de parâmetros de memória e

sensibilidadeInserir camada supervisionadaOutros algoritmos e como eles podem cooperar

Monitoração Inteligente

Considerações finais

Referências

http://delicious.com/fisl10

Dúvidas

ContatosDenis A. Vieira Jrdenis@corp.globo.com (www.globo.com)Ricardo Clementericardo@intelie.com.br

(www.intelie.com.br)

Estande da Globo.comHoje a tarde toda

Levante a mão!

top related