Sensu alternative (?) onde os limites de alarme são definidos no servidor (cliente não monitorado)

5

Pergunta / TLDR;

Existe um Sensu -alternative (ou seja, agente / servidor de monitoramento do sistema operacional baseado no RabbitMQ) que define seus limites de alarme no servidor de monitoramento central e não no servidor cliente monitorado (como o Sensu e o Nagios)?

O RabbitMQ é obrigatório, então não há Zabbix et al.

Histórico:

Tenho ambientes grandes (Windows e RHEL) nos quais não posso instalar ferramentas de orquestração (Puppet et al), e a quantidade de serviços instalados deve, portanto, ser mínima.

Estou pesquisando se poderia desenvolver um único agente que coleta informações do sistema, retransmite logs (para o Logstash) e gera relatórios sobre o consumo de recursos. Ele levaria todos esses valores para o RabbitMQ e, em seguida, o Logstash poderia assinar os logs, um serviço de monitoramento poderia assinar as métricas de recursos (e criar alarmes a partir deles), um sistema do CMDB poderia assinar as informações do sistema etc.

No entanto, eu gostaria apenas de receber as informações sobre o consumo de recursos e criar os alarmes no servidor de monitoramento e não precisar alterar os limites em cada servidor para alterar o limite de alarme.

Eu não posso ser a única pessoa a encontrar um agente assim útil ...

Esclarecimento:

Se um servidor sob o Monitoramento Sensu estiver sem disco, o agente Sensu verifica o espaço em disco, compara-o com o limite CRITICAL definido nesse servidor e, se o limite for passado, um CRITICAL O alarme é enviado através do RabbitMQ para o servidor de monitoramento central. Para alterar o limite sem Puppet ou algo assim, é necessário fazer login no servidor (certo?)

A maneira que eu gostaria que isso funcionasse é que quando um agente de monitoramento verifica seu espaço em disco, ele apenas envia a quantidade de disco disponível (ou disco usado e total etc) através do RabbitMQ para o servidor central que então compara esse valor com o limite definido no servidor central e, se necessário, envia um alarme.

Se o limite precisar ser alterado, ele será alterado no servidor central ou vários valores de vários servidores poderão ser comparados para criar um alarme.

Este é o meu principal problema com o Sensu, embora eu entenda a decisão de compatibilidade com o Nagios.

Também seria preferível se nenhum servidor central - > o tráfego do servidor monitorado seria necessário. Eu suponho que um kludge poderia ser feito quando o servidor central envia os limites para o agente que os executa como "local". A rede para o ambiente torna isso excepcionalmente complicado.

Obrigado por qualquer ideia que alguém possa ter!

    
por Hace 22.10.2013 / 12:34

4 respostas

3

Usando componentes de código aberto, eu usaria os seguintes componentes (se você realmente precisa enviar métricas via RabbitMQ):

  1. use collectd no lado do cliente para enviar métricas para o RabbitMQ com seus plugin AMQP
  2. consuma as mensagens do RabbitMQ usando grafite-amqp-tools e envie-as para Grafite

Agora você tem as métricas no Graphite, você pode consultá-lo para o consumo de recursos. No ambiente do meu $ WORK, nós verificamos qual query Graphite, com os limites de alerta definidos no servidor Nagios. Mas agora que você tem o Graphite (tem uma interface http para consultas que pode retornar gráficos, json, csv e resultados de texto simples) você pode criar / usar qualquer coisa, desde que possa consultar o Graphite.

    
por 30.01.2014 / 11:42
1

O limite pode ser definido no lado do servidor de monitoramento sensu, consulte a página 9 do link (mas certifique-se de que o safe_mode = false, se a definição do cliente no servidor não corresponder exatamente à do cliente, consulte a página 12)

    
por 21.09.2014 / 13:00
0

Se eu entendi corretamente, você só precisa enviar dados para o RabbitMQ. Então, o tópico não é sobre como enviar dados reportados para o RabbitMQ?

Talvez você possa usar algumas opções:

  • monitoramento sem agente - você pode usar o snmp antigo (bom) e analisar seus dados em um servidor. Existem muitas ferramentas que podem fazer isso e, em seguida, você pode encaminhá-lo para onde quiser.

  • monitoramento baseado em agente - você pode usar, por exemplo, cfengine, que pode verificar promessas (extraídas do servidor central) ou que pode apenas relatar o estado do seu sistema de arquivos e, em seguida, analisar seus dados.

por 22.10.2013 / 13:11
0

Sim, é exatamente isso que o dataloop.io está fazendo. Como o Sensu, usa arquitetura baseada em filas para métricas em tempo real e configuração simples, mas os alertas podem ser configurados do lado do servidor não apenas em scripts como o Nagios / Sensu.

O Sensu também requer que você instale outros itens como o Graphite para obter gráficos também, então não é muito fácil de configurar.

    
por 23.10.2013 / 19:51