Come tenere il passo con le configurazioni Nagios / Capistrano quando si utilizza EC2?


11

Uso Amazon EC2 per la mia app mobile. A seconda del carico dell'applicazione in un determinato momento, potrei generare nuove istanze e poi eliminarle quando il carico è inferiore per risparmiare sui costi.

Come si tiene il passo con le configurazioni Nagios per un ambiente così dinamico? Quando si tratta di hardware gestito, i file di configurazione sono prevedibili. In questo caso Nagios, Capistrano e un mucchio di altri file di configurazione dovrebbero essere aggiunti. Capistrano deve sapere dove distribuire una nuova build per un server app. Nagios deve sapere per rimuovere un'istanza esistente o aggiungere una nuova istanza per il monitoraggio. Nagios deve anche sapere se un nodo è stato rimosso intenzionalmente o se l'host è inattivo a causa di un errore.

Come si fa con il meraviglioso mondo di istanze VPS / dinamiche?

Risposte:


9

Usiamo uno strumento di gestione della configurazione (Chef nel nostro caso) che scrive la configurazione di Nagios dalle informazioni sul nodo.


1
Certo, usare Puppet / Chef è un dato di fatto. Ma il trucco è come rendere gestibile la configurazione per nodo (ad esempio non dover replicare elenchi di nodi nella configurazione Puppet del server Nagios) e ottenere comunque che il server Nagios tenga traccia dei nodi aggiunti / eliminati / modificati. Tocco questo punto nella mia risposta di seguito.
Amos Shapira,

3

Ho scritto il mio piccolo set di script php che scrivono configurazioni nagios in un file. Nagios è facile perché è solo un file di testo, quindi tutto ciò che devi fare è creare un modello per ogni tipo di server. Quindi, all'avvio del server, aggiungere un file utilizzando il modello. Gli unici dati che cambiano nel file sono l'ip host e il nome.

Per più server statici ho creato uno script che viene eseguito ec2-describe-instancese crea un file per ogni istanza restituita. Ogni istanza è contrassegnata dal tag: Scopo = XXXX, quindi so quale modello applicare.

Per i nostri gruppi di ridimensionamento automatico abbiamo impostato una notifica utilizzando il as-put-notification-configurationcomando che invia un messaggio a una coda SQS. Lo script php viene eseguito da un crontab. Quando lo script viene eseguito, controlla la coda per eventuali nuovi server. Ogni volta che trova un nuovo server crea un nuovo file. Lo stesso accade quando viene rimosso un server. Probabilmente più facile da usare Chef o qualcosa del genere se lo stai già utilizzando, ma in caso contrario puoi scrivere un semplice servizio php come il mio in pochi giorni.


1

Usiamo Opsview , che è ancora un altro nagios + database + wrapper rest-api. Non so se questa sia la soluzione migliore per tutti (o anche per noi) ma ci consente di configurare dinamicamente il server Nagios attraverso una semplice API REST dal nodo (o altro nodo amministrativo) quando viene visualizzato e rimuoverlo da la configurazione al termine. Uso le definizioni dei modelli host come parte del manifest Puppet del server Opsview (/ Nagios) e gli host monitorati si registrano con esso e unisco il modello host giusto come parte del manifest manifest Puppet.

Un approccio più "generico", che dovrebbe funzionare praticamente con qualsiasi cosa, persino con i Nagios originali e i suoi file statici, è Puppet Stored Configuration - questo ti permette di creare script per configurare qualsiasi strumento tu voglia, in base alle informazioni che Puppet raccoglie da è manifesto.

Suggerirei che per scopi forensi non dovresti eliminare del tutto la configurazione del nodo quando viene rimosso, ma prova ad archiviarlo e le informazioni di monitoraggio raccolte su di esso mentre era attivo.


1

Un paio di modi.

  • Utilizzo di modelli Amazon EC2 preconfigurati.

  • Usando manifest di marionette con modelli variablized.

  • Configura una VPN tra la tua rete nagios e la tua macchina virtuale amazon. Quindi tutte le macchine virtuali amazon avranno un IP statico, puoi persino impostare un DNS su di esse. Abbiamo un nago che esegue e monitora tutte le nostre istanze di Amazon. Non abbiamo nemmeno bisogno di un elastico-ip. Usiamo openvpn per la nostra VPN.

  • Costruisci Nagios che ascolta il comando esterno e aggiorna la sua configurazione di conseguenza. Alla fine le macchine possono registrarsi, annullare la registrazione, sospenderle, riprenderle da sole sui Nagios.


0

Non ho un proiettile d'argento per risolvere questo problema con i nagios. Ma per capistrano c'è capify-ec2 , un'estensione per capistrano che risolve gli elenchi di ruoli del server usando le funzionalità di tagging di Amazon.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.