Como você acompanha as configurações do Nagios / Capistrano ao usar o EC2?

11

Eu uso o Amazon EC2 para meu aplicativo para dispositivos móveis. Dependendo da carga do aplicativo em um determinado momento, posso gerar novas instâncias e, em seguida, descartá-las quando a carga for menor para economizar custos.

Como acompanhar as configurações do Nagios para um ambiente tão dinâmico? Quando se lida com hardware gerenciado, os arquivos de configuração são previsíveis. Neste caso, Nagios, Capistrano e um monte de outros arquivos de configuração precisariam ser adicionados. O Capistrano precisa saber onde implantar uma nova compilação para um servidor de aplicativos. O Nagios precisa saber para remover uma instância existente ou adicionar uma nova instância para monitoramento. O Nagios também precisa saber se um nó foi removido intencionalmente ou se o host está inoperante devido a um erro.

Como isso é feito com o maravilhoso mundo das instâncias dinâmicas / VPS?

    
por imaginative 09.04.2012 / 23:21

5 respostas

9

Nós usamos uma ferramenta de gerenciamento de configuração (Chef no nosso caso) que escreve a configuração do Nagios a partir das informações do nó.

    
por 09.04.2012 / 23:24
3

Escrevi meu próprio pequeno conjunto de scripts php que gravam configurações nagiosas em um arquivo. Nagios é fácil porque é apenas um arquivo de texto, então tudo que você precisa fazer é criar um modelo para cada tipo de servidor. Então, quando o servidor começar, adicione um arquivo usando o modelo. Os únicos dados que mudam no arquivo são o ip e o nome do host.

Para servidores mais estáticos, criei um script que executa ec2-describe-instances e cria um arquivo para cada instância retornada. Cada instância é marcada com tag: Purpose = XXXX, então eu sei qual modelo aplicar.

Para nossos grupos de escalonamento automático, configuramos uma notificação usando o comando as-put-notification-configuration , que envia uma mensagem para uma fila SQS. O script php é executado por um crontab. Quando o script é executado, ele verifica a fila em busca de novos servidores. Sempre que encontra um novo servidor, cria um novo arquivo. O mesmo acontece quando um servidor é removido. Provavelmente mais fácil de usar o Chef ou algo assim, se você já estiver usando, mas se você não for você pode escrever um serviço php simples como o meu em poucos dias.

    
por 10.04.2012 / 00:19
1

Nós usamos o Opsview , que é mais um nagios + database + wrapper api-rest. Não sei se essa é a melhor solução para todos (ou até para nós), mas isso nos permite configurar dinamicamente o servidor Nagios por meio de uma API REST simples do nó (ou outro nó administrativo) quando ele é lançado e removê-lo do a configuração quando estiver pronto. Eu uso definições de Host Templates como parte do manifesto Puppet do servidor Opsview (/ Nagios) e os hosts monitorados apenas se registram nele e juntam o Template de Host correto como parte de seu manifesto Puppet.

Uma abordagem mais "genérica", que deve funcionar com praticamente qualquer coisa, mesmo o Nagios original e seus arquivos estáticos, é Configuração de Puppet Stored - permite que você crie scripts para configurar qualquer ferramenta que quiser, da forma que desejar, com base nas informações que o puppet coleta de seu manifesto.

Eu sugeriria que, para fins forenses, você não deve excluir completamente a configuração do nó quando ele for removido, mas tentar arquivá-lo e as informações de monitoramento coletadas sobre ele enquanto ele estiver ativo.

    
por 18.04.2012 / 14:02
1

Algumas maneiras.

  • Usando modelos Amazon EC2 pré-configurados.

  • Usando o manifesto de fantoches com modelos variablizados.

  • Configure uma VPN entre sua rede nagios e sua VM amazon. Então, toda a sua VM amazon terá IP estático, você pode até configurar um DNS neles. Nós temos um nagios rodando e monitorando todas as nossas instâncias amazônicas. Nós nem precisamos de um elástico-ip. Nós usamos o openvpn para a VPN.

  • Construa o Nagios que escuta o comando externo e atualize sua configuração de acordo. Eventualmente as máquinas podem registrar, cancelar o registro, suspender, retomar a si mesmo no Nagios.

por 19.04.2012 / 21:05
0

Eu não tenho uma bala de prata para resolver este problema com nagios. Mas para capistrano há capify-ec2 , uma extensão para capistrano que resolve listas de funções de servidor usando amazon recursos de marcação.

    
por 27.10.2013 / 18:15