Monitoramento / coleta de métricas para coletivos do sistema que mudam muito no tempo (também na nuvem) [fechado]

1

Quando a sua frota de servidores não muda muito no tempo, como quando você usa hospedagem bare-metal, as soluções clássicas de monitoramento e coleta de métricas (Nagios, Munin) funcionam bem.

Mas se o número de sistemas varia muito no tempo e pode, de fato, variar rapidamente, o software clássico é mais difícil de configurar e usar. Por exemplo, tentar fazer com que o Nagios (monitoramento) acompanhe uma infraestrutura de nuvem em rápida evolução pode ser trabalhoso. O mesmo para Munin (coleção métrica). Não é apenas a configuração, mas a forma como a informação é transmitida ao usuário, ou exibida, é inadequada para a nuvem.

Quais são algumas alternativas possíveis que funcionam bem com a nuvem? As metas são coletar e exibir métricas (analógicas para Munin) e gerar alertas quando certas métricas saírem dos limites ou quando determinados serviços estiverem indisponíveis (analógicos para o Nagios), e fazer tudo de uma maneira amigável à nuvem.

Alguns provedores de nuvem oferecem monitoramento / coleta de métricas como serviços, mas nem sempre, e se você usar mais de um provedor, não será muito dependente de apenas um fornecedor. Portanto, soluções independentes do provedor são necessárias.

EDIT: Estou fazendo essa pergunta de maneira geral - não limitada a qualquer infraestrutura de nuvem (como o OpenStack), mas no caso geral de usar provedores de nuvem arbitrários.

    
por Florin Andrei 20.08.2014 / 00:50

3 respostas

4

Para sistemas que têm vida curta ou onde a infraestrutura muda com frequência, eu uso duas ferramentas diferentes para lidar com o monitoramento. Eu adicionei um comentário perguntando quais métricas eram mais importantes para você, e parece que você está procurando por estatísticas básicas de " o que aconteceu quando? " com alguns alertas ...

À medida que os sistemas e o hardware são mais abstraídos por meio de serviços em nuvem e virtualização, algumas das ferramentas de monitoramento tradicionais são menos úteis, pois talvez você não se importe com recursos de hardware físico e integridade. Recursos de aplicativo e virtuais (da perspectiva da VM / instância / contêiner) são o que importa.

Ambos os exemplos que dou abaixo são totalmente sem intervenção e padrão nos meus ambientes. Reforçado pela Puppet, posso garantir que todos os sistemas estejam capturando e relatando seu desempenho.

Escolha # 1 - New Relic

O monitoramento da New Relic é baseado em agentes e muito fácil de se integrar a um sistema de provisionamento ou gerenciamento de configuração. No meu caso, cada servidor que eu implantar obtém uma configuração do New Relic Puppetized , registra-se com minha conta New Relic e está disponível no painel de monitoramento ~ 30-60 segundos da instalação. O host envia dados por meio de portas padrão, portanto, isso funciona bem em vários ambientes. O sistema pode cancelar seu registro no desmonte.

Principais pontos positivos são granularidade de 60 segundos, exibição em painel / quiosque ao vivo, é livre para monitoramento do servidor e são limpos e apresentáveis de uma maneira aceitável para usuários finais e clientes.

Escolha#2- Monit e M / Monit

Monit é incrivelmente útil para aplicação e monitoramento básico do sistema. Monit é um agente que é facilmente instalado em sistemas de destino através do gerenciamento de pacotes do sistema operacional nativo. Ele pode ser personalizado para monitorar aplicativos personalizados e seus parâmetros relevantes, bem como realizar ações com base nessas métricas. O M / Monit adiciona um grau de centralização às verificações do Monit e permite agregar dados para análise e gráficos claros.

Sendo baseado em agente, também é fácil enviar configurações para hosts de maneira automatizada. Eu também uso o Puppet para isso, com alguns tentadores criativos para construir os arquivos de confutação. Após a inicialização, novos servidores serão registrados com o daemon central M / Monit através de portas http / https, portanto, firewalls e monitoramento de vários locais não são um problema.

    
por 20.08.2014 / 04:33
0

Não tenho certeza de que isso é possível, já que os sistemas em nuvem são muito diversos (na verdade, eu indiquei isso como muito amplo), mas meus pensamentos estão abaixo.

No que diz respeito às métricas do sistema, você precisará de um agente em seus servidores que envie as métricas para um ponto de extremidade de coleta central para garantir que novos servidores sejam adicionados automaticamente e que os servidores antigos sejam removidos ou parem de transmitir métricas terminado.

Você pode rolar você mesmo (mas isso também vem com uma potencial captura de informações sobre o monitoramento da infraestrutura de nuvem com infraestrutura de nuvem - o que acontece quando a Amazon decide retirar seu servidor de coleta?) ou você pode usar um de vários terceiros. provedores hospedados em festas ( StackDriver , NewRelic , Boundary , HostedGraphite , para citar alguns - as soluções SaaS normalmente são fornecidas manualmente. mão com plataformas IaaS).

É claro que você pode gerenciar seu próprio servidor Nagios em sua infraestrutura de nuvem e algo como Marcar usando recursos exportados pode tornar isso extremamente fácil - você deve pelo menos já estar usando algum tipo de ferramenta de automação se estiver usando tecnologias de nuvem.

Se você precisa de uma plataforma de monitoramento / alerta de infraestrutura de cima para baixo, o NewRelic e o StackDriver têm essa funcionalidade, pelo menos para a nuvem da Amazon, e podem se conectar a mecanismos de notificação como o PagerDuty. de uma "solução global para governar todos".

    
por 20.08.2014 / 01:19
0

Se você está falando sobre o software padrão da nuvem, também conhecido como Openstack, os componentes são bem conhecidos.

Para coletar dados históricos em uma escala de nuvem: link

Para monitorar - sensu

EDITAR:

O ceilômetro é específico para openstack, mas sensu é uma estrutura de monitoramento genérica. Além disso, o collectd é um sistema bastante padronizado para coletar métricas, que você pode, por sua vez, alimentar em cactos ou grafite, para gerar gráficos de tendência. Para algo ainda mais aprimorado, você pode incorporar um servidor de relatórios, como o Jasper Reports, mas terá que fazer o seu próprio CTL. Em suma, há muitas opções por aí, e essa questão é de fato muito ampla para ser respondida de forma concisa.

    
por 20.08.2014 / 01:00