.. _remote-agents: ############################## Agenti remoti ############################## .. contents:: Indice :backlinks: none :depth: 4 Introduzione ================================================================================ Sanet 3 permette di eseguire agenti locali alla stessa macchina di monitoraggio e anche agenti remoti. Salvo casi particolari, gli agenti remoti possono effettuare praticamente le stesse attivita' di monitoraggio degli agenti locali. Su uno stesso server remoto possono essere eseguiti piu' agenti, in questo modo suddividere non solo il monitoraggio tra piu' server, ma anche tra piu' processi dello stesso server. Schema: :: SANET3 SERVER SERVER 2 +----------------+ +--------------+ | | | | | WEB | | | | . | | | | . | | | | sanetd. . . . . . . . . . . . . . . . . | | . | | . | | . | | . | | agent | | agent(s) | | . | | . | +-------.--------+ +------.-------+ . . network1 network2 Installazione ================================================================================ Installazione su DEBIAN ----------------------- Installazione sanet-remote-agente con APT ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Il pacchetto DEBIAN non e' ancora supportato. I pacchetti debian necessari e le dipendenze devono essere installati a mano. Installazioni dipendenze a mano ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ I repository debian sono gli stessi di Sanet3. .. Si rimanda alla sezione :ref:`sanet-debian-apt-config`. Installare le dipendenze: :: apt-get install python apt-get install python-setuptools apt-get install python-dev apt-get install python-pip apt-get install python-qpid apt-get install redis-server apt-get install python-redis apt-get install python-antlr apt-get install python-netsnmp Installare i pacchetti Labs: :: apt-get install python-sanet-common apt-get install python-sanet-poller Installazione sanet-remote-agente da sorgenti SVN ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Installare subversion: :: apt-get install subversion Scaricare i sorgenti: :: export REMOTE_INSTALL_DIR=/usr/share/sanet-remote-poller svn co https://develtrac/svn/sanet/trunk/sanet-remote-poller $REMOTE_INSTALL_DIR Impostare la variabile d'ambiente SANET_REMOTE_HOME in /etc/enviroment: :: echo "SANET_REMOTE_HOME=$REMOTE_INSTALL_DIR" >> /etc/environment Da questo momento si fara' riferimento a {{SANET_REMOTE_INSTALL_DIR}} come la directory dove e' stato installato il pacchetto. Configurazione ================================================================================ Una singola installazione puo' gestire piu' agenti, ogniuno configurato indipendentemente dagli altri. Tutta la configurazione e' suddivisa nei seguenti file: :: {{REMOTE_INSTALL_DIR}}/etc/global.ini {{REMOTE_INSTALL_DIR}}/etc/agents/* Il file global.ini e' il file di configurazione globale. La directory *agents* deve contenere un file (il nome di ogni file e' libero) di configurazione per ogni agente remoto definito all'interno di *global.ini* Questi file sono file in formato "ini" (formato derivato dai sistemi windows). Le righe che iniziano con '#' o ';' sono considerate come commenti e vengono ignorate. global.ini ---------- Questo file contiene parametrizzazioni globali l'elenco degli agenti da eseguire sulla macchina. Il file e' suddiviso in "sezioni" che indicano tutti gli agenti da eseguire sulla macchina. Il nome di ogni sezione corrispone al nome "logico" dell'agente da eseguire localmente: IMPORTANTE: il nome "logico locale" e' indipendente dal reale nome dell'agente cosi' come e' configurato in sanet. Esempio: In questo schema vediamo i nomi degli agenti remoti nel database di sanet (remote-agent1, remote-agent2) e i nomi che sono stati assegnati sul server remoto (agent1, agent2). :: SERVER SERVER SANET REMOTO DB +---------------+ | remote-agent1 | <--------------------------------- agent1 | remote-agent2 | <--------------------------------- agent2 +---------------+ Esempio: :: [agent1] variabile1 = valore1 variabile2 = valore2 ... ... [agent2] variabile1 = valore1 ... ... Queste sono le variabili disponibili per ogni sezione: +-----------------------+-----------+---------------------------------------------------------+--------------------------------------------------+ | Nome | Opzionale | Default | Descrizione | +=======================+===========+=========================================================+==================================================+ | config_file | si | {{REMOTE_INSTALL_DIR}}/etc/agents/ | Config file per l'agente | +-----------------------+-----------+---------------------------------------------------------+--------------------------------------------------+ | pid_file | si | /var/run/sanet_remote_.pid | Pid file per il processo che gestira' l'agente | +-----------------------+-----------+---------------------------------------------------------+--------------------------------------------------+ File configurazione agente -------------------------- Il file di configurazione prevede una sola sezione *configuration*. Queste sono **alcune** delle parametrizazioni ammesse: +-----------------------+-----------+---------------------------------------------------------+--------------------------------------------------+ | Nome | Opzionale | Default | Descrizione | +=======================+===========+=========================================================+==================================================+ | server_host | | | Server Broker di Sanet3 | +-----------------------+-----------+---------------------------------------------------------+--------------------------------------------------+ | server_port | si | *porta qpid* | Porta Broker di Sanet3 | +-----------------------+-----------+---------------------------------------------------------+--------------------------------------------------+ | server_user | si | sanet | | +-----------------------+-----------+---------------------------------------------------------+--------------------------------------------------+ | server_password | si | sanet | | +-----------------------+-----------+---------------------------------------------------------+--------------------------------------------------+ Impostazioni tenant/agente: +-----------------------+-----------+---------------------------------------------------------+--------------------------------------------------+ | Nome | Opzionale | Default | Descrizione | +=======================+===========+=========================================================+==================================================+ | tenant | | | Nome del tenant | +-----------------------+-----------+---------------------------------------------------------+--------------------------------------------------+ | agent | | | Nome dell'agente | +-----------------------+-----------+---------------------------------------------------------+--------------------------------------------------+ Impostazioni log: +-----------------------+-----------+---------------------------------------------------------+--------------------------------------------------+ | Nome | Opzionale | Default | Descrizione | +=======================+===========+=========================================================+==================================================+ | log_level | si | | Livello di log numerico | +-----------------------+-----------+---------------------------------------------------------+--------------------------------------------------+ | log_file | si | /var/run/sanet_remote_ | Log file | +-----------------------+-----------+---------------------------------------------------------+--------------------------------------------------+ Esempio: :: [configuration] server_host = devmachine tenant = site agent = remote-agent Configurazione su sanet (server centrale) ----------------------------------------- Per poter lanciare un poller remoto questo deve essere definito nella configurazione di sanet3. Esempio: Configurazione via CLI :: root@localhost:/# sanet-cli sanet> show conf tenant site tenant site ... agent agent1 remote <---------------- exit ... exit .. _remote-agent-start-stop: Start/Stop ================================================================================ Per lanciare tutti gli agenti definiti usare lo script globale: :: {{REMOTE_INSTALL_DIR}}/scripts/sanetremotepoller Start: :: {{REMOTE_INSTALL_DIR}}/scripts/sanetremotepoller start Stop: :: {{REMOTE_INSTALL_DIR}}/scripts/sanetremotepoller stop Questo script puo' essere configurato per: :: ln -s {{REMOTE_INSTALL_DIR}}/scripts/sanetremotepoller /etc/inid.d/ .. _remote_poller_upgrade: Update ================================================================================ Fermare gli agenti in esecuzione: :: {{REMOTE_INSTALL_DIR}}/scripts/sanetremotepoller stop Per aggiornare: :: cd {{REMOTE_INSTALL_DIR}} ./scripts/update_svn.sh Rilanciare: :: {{REMOTE_INSTALL_DIR}}/scripts/sanetremotepoller start Comandi di utility ================================================================================ Eseguire datagroup -------------------------------------------------------------------------------- Per fare il *check* di un datagroup sulla macchina dove e' installato l'agente remoto si puo' utilizzare il comando: :: {{REMOTE_INSTALL_DIR}}/bin/exec_datagroup [options] Questo comando esegue localemente il datagroup caricando i dati necessari dal server Sanet centrale esattamente come farebbe il poller remoto una volta lanciato. Per avere dettagli sui parametri in input lanciare: :: {{REMOTE_INSTALL_DIR}}/bin/exec_datagroup --help Configurazione avanzata ================================================================================ .. _remote-agent-trap-snmp: Trap SNMP -------------------------------------------------------------------------------- Gli agenti remooti possono ricevere e inoltrare trap SNMP. :: switch -----*TRAP*--------------------------+ +----> +--------+ +----------+ | SANETD |----> | ENTABLES | +------------+ .....> +--------+ +----------+ switch -----*TRAP*----->|remote agent|....... +------------+ .. danger:: se la gestione delle trap non viene abilitata anche sul server centrale di Sanet, gli agenti remoti inoltreranno dati che non verranno processati. Col tempo questo causera' la saturazione della RAM sul server centrale. Vedere :ref:`snmptraps`. Configurazione ~~~~~~~~~~~~~~~~~ .. danger:: se la gestione delle trap non viene abilitata anche sul server centrale di Sanet, gli agenti remoti inoltreranno dati che non verranno processati. Col tempo questo causera' la saturazione della RAM sul server centrale. Vedere :ref:`snmptraps`. Per abilitare la ricezione di trap SNMP e l'inoltro al server centrale e' necessario aggiungere/modificare i seguenti parametri al file di configurazione dell'agente: :: ; Abilita la ricezione snmptrap = 1 Per ricevere le trap UDP su porte o indirizzi particolari bisogna intervenire su: :: ; Indirizzo IP (0.0.0.0 default ) snmptrap_listen_address = 0.0.0.0 ; Porta UDP di ascolto (162 default) snmptrap_listen_port = 162 Se si vuole modificare il livello di verbosita' nel file di log bisogna intervenire sul parametro: :: # Il default e' 20 snmptrap_log_level = 10 .. _remote-agent-discovery: Discovery -------------------------------------------------------------------------------- Introduzione ~~~~~~~~~~~~~~ Configurazione ~~~~~~~~~~~~~~~~ Per attivare il discovery bisogna aggiungere :: autodiscovery = 1 Il sotto-sistema di discovery salva un log nel file di default: :: /var/log/sanet_remote__discovery.log E' possibile il file di log con il parametro: :: discovery_log_file = /var/log/foo.log Il livello minimo di log e' regolato dal seguente parametro numerico (10 = DEBUG, 20 = INFO, 30 = ERROR): :: discovery_log_level = 20