MAGO: Monitoring All GRID Objects
Il progetto si basa su GANGLIA e si propone di integrare le
informazioni fornite di default da ganglia con informazioni su demoni,
servizi e software che sono specifici delle infrastruttura di ENEA-GRID.
L'insieme di tutte le informazioni viene centralizzato su un DB, implementato in MySQL.
L'implementazione fa uso di AFS, componente di base di ENEA-GRID
per la distribuzione delle informazioni statiche di configurazione ma
identifica in modo esplicito tale approccio in modo che sia possibile
implementare le stesse funzionalità attraverso altri metodi in
ambienti che non fanno uso di AFS.
Prove preliminari di fattibilità
Utilizzo di cron
Sintassi della definizione di file per un crontab utente
Verificare il funzionamento multipiattaforma.
Test della piramide MasterLoader,SiteLoader/SiteProvider,nodi
Test di gmetric da crontab
Funzionamento di gmond su tutte le piattaforme:
AIX, Irix, MacOSX, Linux i386, IA64, x86_64.
Da studiare
procedura di installazione di mago sul nodo
Installare ganglia-gmond
Configurare /etc/gmond.conf eventualmente utlizzando le informazioni della tabella
Host_multicast
Definire l'ambiente per mago: la user dedicata
Architettura
Il sistema si compone di 3 livelli distinti: 1 Server Centrale
Server Centrale
Il Server centrale (ad es. svncres) che ha i seguenti componenti: (gmetad); mysql; MasterLoader; Setup; monitor; enquiry
(una macchina di interfaccia + una macchina per il DB ???)
MasterLoader:
- contatta i Server di sito, ottiene dai provider di sito tutti i file di risposta
disponibili.
- carica i valori in MySQL
- ordina la cancellazione dei file di risposta correttamente caricati
Setup
- Utility Grafica di configurazione
- Tutte le tabelle di configurazione sono in MySQL.
- Setup si preoccupa di copiare le tabelle statiche in AFS.
Monitor
- Web: informazioni globali sul sistema, allarmi
Enquiry
- Utility per l'analisi del DB
Server di Sito
Il Server di sito è una macchina dedicata: (gmetad)+gmond;
SiteLoader; SiteProvider;
SiteLoader
- Contatta almeno un nodo per ognuna dei gruppi multicast di sito
- Ottiene il file XML e lo salva in un file locale
SiteProvider
- Risponde a MasterLoader fornendo i file correnti
- A comando di MAsterLoader provvede a cancellare i file locali
gmetad
Fornisce comunque le informazioni grafiche tipiche di Ganglia sulle metriche del sito
Nodo
Sul nodo è attivo gmond come servizio ed esso fornisce le informazioni standard di ganglia.
Le metriche addizionali vengono raccolte tramite l'esecuzione di script
che fanno uso di gmetric per passare l'informazione a gmond.
Le metriche addizionali vengono eseguite dal crontab di un utente locale dedicato ("mago").
La loro configurazione è definita dalla configurazione dell'ambiente locale MAGO:
Ambiente locale MAGO:
/usr/local/mago/magoupdate.sh
/usr/local/mago/mago.crontab
/usr/local/mago/metric/metric.list
/usr/local/mago/metric/scripts/ tutti gli scripts di metrica
magoupdate.sh
1) verifica l'accessibilità ad AFS
2) Se AFS non è accessibile termina.
3) Altrimenti
- copia da AFS la versione aggiornata di
magoupdate.sh
- copia da AFS le versioni specifiche per il nodo di
- gli script definiti da metric.list
- aggiorna il crontab locale dell' utente "mago"
Struttura delle tabelle statiche in AFS
/afs/enea.it/system/mago/
.../magoupdate.sh
.../hosts/hostname/mago.crontab
.../hosts/hostname/metric.list
Le Tabelle
Le tabelle necessarie:
Siti [ ID sito, IP server di sito ]
La tabella viene usata da MasterLoader
Host_multicast[Sito, ID hostname, gruppo_multicast]
La tabella viene usata da SiteLoader per trovare quale host deve essere interrogato
Host_Metriche[Sito, ID hostname, ID metrica]
La tabella viene usata per generare la lista di metriche che competono ad ogni host.
Questa viene usata da Setup.
Metriche [ID metrica, tipo, gruppo,path_script_metrica,path_versione_script_metrica,intervallo_rilevazione]
la tabella viene usata da Setup.
Script di metrica
Lo script deve essere costruito secondo la logical di gmetric,
cioè deve fornire 1 valore ed utilizzare gmetric per
trasmetterlo a gmond.
Gli script sono conservati su di un file system.
Nel caso di AFS:
/afs/enea.it/system/mago/scripts/type/group/nome_script_metrica
che è un link alla versione corrente dello script
/afs/enea.it/system/mago/scripts/type/group/nome_script_metrica_1.0
type software, daemon, service
group AFS, matlab,....
Lo script deve essere multipiattaforma
Esempio:
matlab_version
matlab_status
Uno script puo' anche testare l'esistenza di un gruppo demoni
Esempio: demoni di ls
uno script di test potrebbe essere
ps -f -u root | grep /afs/enea.it/software/lsf/etc | grep -v "/bin/sh -x" | sort +7
<bracco@bw305-1 /afs/enea.it/software/lsf/conf%lsrun -m sp5-13 ps -f
-u root | grep /afs/enea.it/software/lsf/etc | grep -v "/bin/sh -x" |
sort +7
root 295838
1 0 08:18:38 - 0:34
/afs/enea.it/software/lsf/etc/lim
root 70472 123804 0
11:50:57 - 0:12
/afs/enea.it/software/lsf/etc/mbatchd -d /afs/enea.it/software/lsf/conf
root 283514 295838 0
08:18:49 - 0:00
/afs/enea.it/software/lsf/etc/melim
root 226114 295838 0
08:18:44 - 0:01
/afs/enea.it/software/lsf/etc/pim
root 209726
1 0 08:18:38 - 0:01
/afs/enea.it/software/lsf/etc/res
root 123804
1 0 08:18:38 - 0:02
/afs/enea.it/software/lsf/etc/sbatchd
root 124608 283514 0
08:18:49 - 0:02 /bin/sh
/afs/enea.it/software/lsf/etc/elim
root 160634 283514 0
08:18:49 - 0:13 /bin/sh
/afs/enea.it/software/lsf/etc/elim.hpc
Ganglia:
http://ganglia.sourceforge.net/docs/ganglia.html
Viene definito un gruppo multicast per ognuna delle sottoreti a cui
appartengono i nodi da monitorare oppure per partizionare una sottorete
al fine di ottimizzare il carico del sistema di monitoring: all'interno
di un gruppo multicast ganglia fa condividere a tutti i nodi lo stesso
insieme di informazioni. Tutti i nodi nel gruppo multicast condividono
le stesse informazioni:
basta interrogarne uno.
Le sonde non previste dal pacchetto ganglia devono essere realizzate
con scripts che spediscono a gmond il risultato usando il comando
gmetric.
L'esecuzione della sonda deve essere temporizzata ad
esempio con un cron job.
% gmetric --help
gmetric 3.0.0
Purpose:
The Ganglia Metric Client (gmetric) announces a metric
on the list of defined send channels defined in a configuration file
Usage: gmetric [OPTIONS]...
-h, --help Print help and exit
-V, --version Print version and exit
-c, --conf=STRING The configuration file to use for finding send channels
(default=`/etc/gmond.conf')
-n, --name=STRING Name of the metric
-v, --value=STRING Value of the metric
-t, --type=STRING Either
string|int8|uint8|int16|uint16|int32|uint32|float|double
-u, --units=STRING Unit of measure for the value e.g. Kilobytes, Celcius
(default=`')
-s, --slope=STRING Either zero|positive|negative|both (default=`both')
-x, --tmax=INT The maximum time in seconds between gmetric calls
(default=`60')
-d, --dmax=INT The lifetime in seconds of this metric (default=`0')
Definizione tabelle statiche.
Trasmissione della tabelle.
Configurazione di gmond sui
nodi. Automatica in base alle
tabelle, compreso il software di sonda?
Usare AFS? (Sempre tramite copia su buffer locali, analoga alla
gestione /etc/passwd)
Esistono delle metriche non "locali", ovvero che non rappresentano
proprietà dell'host sul quale si trova fisicamente la sonda, ma
invece altri sistemi o servizi?
Stesura schema di progetto
Identificazione di aree di azioni specifiche da effettuare con risorse
dedicate: ad es. gmond su AIX, ....