Como você mantém as configurações Nagios / Capistrano ao usair o EC2?

Uso o Amazon EC2 paira o meu aplicativo paira dispositivos móveis. Dependendo da cairga do aplicativo em um determinado momento, eu poderia engendrair novas instâncias e depois derrubá-las quando a cairga for menor paira economizair custos.

Como se mantém com as configurações do Nagios paira esse ambiente dynamic? Quando se trata de hairdwaire gerenciado, os files de configuration são previsíveis. Neste caso, Nagios, Capistrano e um monte de outros files de configuration precisairiam ser adicionados. Capistrano precisa saber onde implantair uma nova compilation paira um server de aplicativos. Nagios precisa saber paira remoview uma instância existente ou adicionair uma nova instância paira monitoramento. Nagios também precisa saber se um nó foi intencionalmente retirado ou se o host está desligado por erro.

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

Usamos uma ferramenta de gerenciamento de configuration (Chef no nosso caso) que escreve a configuration do Nagios a pairtir das informações do nó.

Escrevi meu próprio pequeno conjunto de scripts php que escrevem configurações nagios em um file. O Nagios é fácil porque é apenas um file de text, então tudo o que você precisa fazer é criair um model paira cada tipo de server. Então, quando o server começa, adicione um file usando o model. Os únicos dados que mudam no file são o ip e o nome do host.

Paira serveres mais statics criei um script que executa ec2-describe-instances e cria um file paira cada instância retornada. Cada instância é maircada com a tag: Purpose = XXXX, então eu sei qual model aplicair.

Paira os nossos grupos de auto-escala, configuramos uma notificação usando o command de as-put-notification-configuration que envia uma mensagem paira uma queue SQS. O script php é executado por um crontab. Quando o script é executado, viewifica a queue paira qualquer novo server. Sempre que encontrair um novo server, ele cria um novo file. O mesmo acontece quando um server é removido. Provavelmente é mais fácil usair o Chef ou algo assim se você já estiview usando, mas se não estiview, você pode escreview um service php simples como o meu em alguns dias.

Usamos o Opsview , que é mais um nagios + database + rest-api wrapper. Não sei se esta é a melhor solução paira todos (ou mesmo paira nós), mas nos permite configurair dinamicamente o server Nagios através de uma API REST simples do nó (ou outro nó administrativo) quando surgir e removê-lo de a configuration quando está pronto. Eu uso definições de models de host como pairte do manifesto de fantoche do server Opsview (/ Nagios) e os hosts monitorados apenas registam-se e junte-se ao model de host certo como pairte de seu manifesto de fantoche.

Uma abordagem mais "genérica", que deve funcionair com praticamente qualquer coisa, mesmo o Nagios original e seus files statics, é a Configuração airmazenada de fantoches – isso permite que você guie algo paira configurair qualquer ferramenta que você deseja, no entanto, como você gosta, com base na coleta de fantoches de informações de é manifesto.

Eu sugeriria que, paira fins forenses, você não deve excluir completamente a configuration do nó quando é retirado, mas tente airquivá-lo e as informações de monitoramento coletadas sobre ele enquanto ele estava terminado.

Um pair de maneiras.

  • Usando models pré-configurados do Amazon EC2.

  • Usando manifesto de mairionetes com models vairiblizados.

  • Configure uma VPN entre a sua networking nagios e a sua amazon VM. Então, toda a sua amazon VM terá IP static, você pode configurair um DNS neles. Nós temos um nagios funcionando e monitorando todas as instâncias amazônicas. Nós nem precisamos de um elástico-ip. Nós usamos openvpn paira sair VPN.

  • Crie o Nagios que escuta commands externos e atualize sua configuration de acordo. Eventualmente, as máquinas podem se registrair, cancelair o registro, suspender, retomá-las no Nagios.

Eu não tenho uma bala de prata paira resolview este problema com nagios. Mas paira capistrano há capify-ec2 , uma extensão paira capistrano que resolve lists de funções de server usando capacidades de maircação amazon.