7. Agenti remoti¶
Indice
7.1. 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
7.2. Installazione¶
7.2.1. Installazione su DEBIAN¶
7.2.1.1. 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.
7.2.1.2. Installazioni dipendenze a mano¶
I repository debian sono gli stessi di Sanet3.
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
7.2.1.3. 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.
7.3. 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.
7.3.1. 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/<name> Config file per l’agente pid_file si /var/run/sanet_remote_<name>.pid Pid file per il processo che gestira’ l’agente
7.3.2. 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_<name> Log file
Esempio:
[configuration]
server_host = devmachine
tenant = site
agent = remote-agent
7.3.3. 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
7.4. 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/
7.5. 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
7.6. Comandi di utility¶
7.6.1. 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] <datagroup path>
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
7.7. Configurazione avanzata¶
7.7.1. 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 Trap SNMP.
7.7.1.1. 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 Trap SNMP.
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
7.7.2. Discovery¶
7.7.2.1. Introduzione¶
7.7.2.2. 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_<agent>_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