Eu uso o Amazon EC2 para meu aplicativo móvel. Dependendo da carga do aplicativo em um determinado momento, posso gerar novas instâncias e reduzi-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. Nesse caso, Nagios, Capistrano e muitos outros arquivos de configuração precisariam ser adicionados. O Capistrano precisa saber para 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 desativado intencionalmente ou se o host está inativo devido a erro.
Como isso é feito com o maravilhoso mundo das instâncias VPS / dinâmicas?
Escrevi meu próprio pequeno conjunto de scripts php que gravam configurações de nagios em um arquivo. O Nagios é fácil porque é apenas um arquivo de texto, então tudo que você precisa fazer é criar um modelo para cada tipo de servidor. Em seguida, quando o servidor iniciar, 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 a tag: Purpose = XXXX, para que eu saiba qual modelo aplicar.Para nossos grupos de dimensionamento automático, configuramos uma notificação usando o
as-put-notification-configuration
comando 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, ele cria um novo arquivo. O mesmo acontece quando um servidor é removido. Provavelmente é mais fácil usar o Chef ou algo assim, se você já estiver usando, mas se não estiver, poderá escrever um serviço php simples como o meu em alguns dias.fonte
Usamos o Opsview , que é outro invólucro nagios + database + rest-api. Não sei se essa é a melhor solução para todos (ou até para nós), mas nos permite configurar dinamicamente o servidor Nagios por meio de uma API REST simples a partir do nó (ou outro nó administrativo) quando ele aparecer e removê-lo do a configuração quando terminar. Uso definições de modelos de host como parte do manifesto Puppet do servidor Opsview (/ Nagios) e os hosts monitorados apenas se registram nele e ingressam no modelo de host correto como parte do manifesto Puppet.
Uma abordagem mais "genérica", que deve funcionar com praticamente qualquer coisa, mesmo com o Nagios original e seus arquivos estáticos, é a Configuração Armazenada em Marionetes - isso permite que você escreva algo para configurar qualquer ferramenta desejada, como desejar, com base nas informações coletadas por marionetes. seu manifesto.
Eu sugiro que, para fins forenses, você não deva excluir completamente a configuração do nó quando for desativado, mas tente arquivá-lo e as informações de monitoramento coletadas sobre ele enquanto estiver ativo.
fonte
Duas maneiras.
Usando modelos Amazon EC2 pré-configurados.
Usando manifesto de marionetes com modelos variados.
Configure uma VPN entre sua rede nagios e sua VM amazon. Depois, toda a sua VM amazon terá IP estático, você pode até configurar um DNS nelas. Temos um nagios executando e monitorando todas as nossas instâncias da amazon. Nem precisamos de um IP elástico. Usamos o openvpn para a VPN.
Crie o Nagios que escute o comando externo e atualize sua configuração de acordo. Eventualmente, as máquinas podem registrar, cancelar o registro, suspender e continuar no Nagios.
fonte
Eu não tenho uma bala de prata para resolver este problema com nagios. Mas para o capistrano há o capify-ec2 , uma extensão para o capistrano que resolve listas de funções de servidor usando recursos de marcação da amazon.
fonte