Your SlideShare is downloading. ×
Università degli Studi di Napoli Federico II                 Facoltà di Scienze MM.FF.NN.                 Corso di Laurea ...
Desidero ringraziare...                                 ...il Prof Guido Russo e lIng. Catello Di Martino                 ...
Indice generale1 Introduzione................................................................................................
7.1.3 Interfaccia di amministrazione..........................................................................96       7.1...
1 IntroduzioneUna corretta valutazione dello stato di un sistema complesso è alla base del processo dimanutenzione, gestio...
frutto di monitoraggio. Lapplicazione ha unarchitettura client/server multithread e ciòconsente di avere uno o più server ...
2 La rete wireless di Ateneo: “Wifi-Unina”       2.1 Topologia di reteSeguendo un approccio top-down nella descrizione del...
Queste sedi sono interconnesse per mezzo della rete metropolitana (MAN –Metropolitan Area Network) che, attraverso un cabl...
Per non appesantire lo schema precedente sono state omesse le ulteriori classificazionidelle strutture in piani/livelli de...
Limitando il discorso alla rete wireless di Ateneo, considerata la complessità e lavastità della stessa, un aspetto partic...
WLSE                                                                   sottodominio i               WDS1                  ...
(Remote Authentication Dial-In User Service).       RADIUS è un protocollo del tipo AAA (Authentication Authorization     ...
dai servizi di configurazione a quelli di monitoraggio ed allarmistica.Per una gestione ancor più completa dellintera WLAN...
Fig. 2.2.4 – il Location Manager del WLSE di Monte SantAngelo. A destra la planimetria del Livello                    0 de...
credenziali attraverso comunicazione con un server RADIUS, ed infine        memorizza le stesse in cache. Con tale strateg...
Gli AP della serie 1240 supportano la modalità WDS.Le caratteristiche salienti di questi ultimi sono le seguenti:         ...
2.3 Dati generali sullinfrastruttura di rete wirelessNella figura a seguire viene mostrato lo stato di avanzamento dei lav...
I seguenti grafici sono stati realizzati a partire dai dati rilevati dai WLSE in data12/01/2010. È importante notare che t...
Distribuzione Subnet                           Ubicazione                           Numero Subnet             Centro Stori...
Percentuale WDS attivi/di backup                               Stato                        Numero WDS              WDS At...
2.3.1 Infrastruttura di Monte SantAngelo                                              Tipologia AP                        ...
Percentuale WDS attivi/di backup                            Stato                      Numero WDS            WDS Attivi   ...
Tipologie IP                                IP Pubblico              IP Privato           Totali             Subnet       ...
2.3.3 Infrastruttura del Policlinico                                                Tipologia AP                          ...
Percentuale WDS attivi/di backup                            Stato                     Numero WDS            WDS Attivi    ...
3 Monitoraggio di reteUna corretta valutazione dello stato di un sistema complesso è alla base del processo dimanutenzione...
processi di interazione con la rete stessa. Un monitoraggio attivo è, ad esempio, quellobasato sulla tecnica Packet-pair. ...
particolare sottosistema o relativamente ad un particolare aspetto del sistema overisiedono (management object).In sistemi...
La MIB ha una struttura di tipo albero n-ario dove ogni sotto-albero è detto modulo ele foglie sono gli oggetti. I moduli ...
Per quanto riguarda i tipi di dati, che il protocollo SNMP defisce, essi si distinguonoin: primitivi e non primitivi.I tip...
autorizzazioni:   •   read – autorizzazione in lettura. Il manager può unicamente richiedere allagent       il valore degl...
3.2 CactiIl software utilizzato per la raccolta dei dati di esercizio degli apparati della retewireless di Ateneo è lappli...
Nagios. Sono molti gli aspetti in comune con Cacti e, proprio per questo, è importantenotare che lapplicazione realizzata,...
Unimportante caratteristica di Cacti, che gli conferisce ampi margini di espansibilità, èlarchitettura a plug-in.Tra i plu...
livello del data layer, una ricca interazione con questultimo.Al fine di descrivere in maniera più chiara i processi legat...
3.3 RRDTool: Round-Robin Database ToolRRDTool (acronimo di Round Robin Database Tool) è un software open sourcerealizzato ...
Fig. 3.3.2 – esempio di grafico generato da RRDToolAl fine di analizzare, in maniera dettagliata, gli RRD si riporta un di...
Passando in rassegna ogni singola classe del diagramma precedente, è possibile notareche ogni RRD è caratterizzato da:   •...
avviato il processo di memorizzazione.Ogni DS può essere definito di uno dei seguenti quattro tipi:   •   COUNTER – tipo d...
raro utilizzo e comunque non usato nel sistema di monitoraggio, è il COMPUTE. Taletipo consente di definire un DS in funzi...
delle CF. A regime, il numero di righe, è costante e pari al parametro rows della CF.Nello schema a seguire viene mostrato...
#DS values                          values                                             Database                           ...
consente di ottenere un semplice monitoraggio della temperatura di una CPU dual coresu un sistema Linux.   •   Creazione d...
1. risoluzione:  T D =pdp_per_row⋅step=1⋅15 sec=15 sec                                  1                dimensione stori...
•   Risultati:      una volta creato lrrd ed avviato lo script bash, che necessita del pacchetto      sensors installato s...
4 Lapplicazione realizzata       4.1 RequisitiLapplicazione realizzata risponde ai seguenti, principali requisiti:   1. in...
Al fine di ottenere unalta portabilità ed evolvibilità, si è deciso di realizzareunapplicazione interamente in Java.Lo sch...
Fig. 4.2.2 – diagramma ER del database di Cacti ottenuto con SQLFairyPaolo Vanacore 566/1539                              ...
Essendo, ovviamente, il diagramma ER normalizzato, è stato necessario comprendereil significato delle tabelle osservandone...
•   accesso ai dati del database di Cacti;   •   accesso agli rrd.Il Data Client è costituito da alcuni componenti per ges...
4.3 Accesso ai dati di monitoraggioCome precedentemente accennato il Data Server risiede sulla stessa macchina dovèinstall...
4.3.1 Server di monitoraggio: Il Data ServerIl Data Server è un server multithread, che risiedere su una macchina in cui è...
Si riporta di seguito un contenuto desempio di un file di configurazione XML:<?xml version="1.0" encoding="UTF-8"?><!DOCTY...
Tutte le richieste e gran parte delle risposte vengono effettuate per mezzo di oggettiserializzati Java su Socket. Nel cas...
Fig. 4.3.2.1.1 – classe RRDAutomata per la rappresentazione in memoria degli rrdTale classe modellizza, nella logica, un a...
Grazie alluso di uno stack di Object, la classe RRDAutomata, guidata dagli eventigenerati dal parser SAX, è in grado di ri...
•   per ogni rra è definito un valore intero, chiamato “pdp_per_row”, che indica       quanti aggiornamenti (letture del d...
Fig. 4.3.2.2.1 – porzione del diagramma EER relativo al database “rrdb” realizzato per lapplicazioneCome è stato descritto...
DATA) più vecchia.Purtroppo tale soluzione non è direttamente adottabile in MySQL (con lattuale vers.5.1.44 viene segnalat...
La soluzione adottata prevede la definizione di una Stored Procedure (“insertData”)per linserimento di record nella tabell...
Accesso ai Dati di MonitoraggioCacti                                     Cacti      Cacti                          Cacti  ...
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"
Upcoming SlideShare
Loading in...5
×

Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"

1,626

Published on

Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina"

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,626
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Un Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo "Wifi-Unina""

  1. 1. Università degli Studi di Napoli Federico II Facoltà di Scienze MM.FF.NN. Corso di Laurea in Informatica Tesi Sperimentale di Laurea TriennaleUn Framework per la valutazione delle statistiche di esercizio della rete wireless di Ateneo “Wifi-Unina” Relatori CandidatoProf. Guido Russo Paolo VanacoreDr. Ing Catello Di Martino Matricola: 566/1539 Anno accademico 2009/2010
  2. 2. Desidero ringraziare... ...il Prof Guido Russo e lIng. Catello Di Martino per avermi consentito di svolgere questo lavoro di tesi e per il costante supporto umano e professionale, ...la mia famiglia ed in particolare i miei genitori per il sostegno e la fiducia che mi hanno consentito di intraprendere questo percorso, ...Paola per avermi sostenuto in ogni attimo, anche nei momenti più difficili, ...tutti gli amici del corso di studi, dello SCoPE e di vita.Paolo Vanacore 566/1539 Pagina 2 di 279
  3. 3. Indice generale1 Introduzione..........................................................................................................................52 La rete wireless di Ateneo: “Wifi-Unina”.............................................................................7 2.1 Topologia Di Rete..........................................................................................................7 2.2 Apparati Di Rete..........................................................................................................10 2.3 Dati Generali Sullinfrastruttura Di Rete Wireless......................................................17 2.3.1 Infrastruttura di Monte SantAngelo..................................................................21 2.3.2 Infrastruttura del Centro Storico........................................................................22 2.3.3 Infrastruttura del Policlinico..............................................................................243 Monitoraggio di rete............................................................................................................26 3.1 Il Protocollo SNMP: Simple Network Management Protocol....................................27 3.2 Cacti.............................................................................................................................32 3.3 RRDTool: Round-Robin Database Tool......................................................................364 Lapplicazione realizzata.....................................................................................................46 4.1 Requisiti ......................................................................................................................46 4.2 Architettura Generale..................................................................................................49 4.3 Accesso Ai Dati Di Monitoraggio...............................................................................51 4.3.1 Server di monitoraggio: Il Data Server..............................................................52 4.3.2 Il Data Client.....................................................................................................54 4.3.2.1 Parsing di XML dump file.....................................................................54 4.3.2.2 Il database RRDB..................................................................................56 4.4 Logica Di Controllo Per La Gestione Dei Dati...........................................................60 4.4.1 Servizi di amministrazione dei dati...................................................................61 4.4.2 Temporizzazione delle letture degli rrd.............................................................62 4.4.3 Monitor e Report Statistici: il Design Pattern Observer....................................64 4.5 Presentazione Dei Dati................................................................................................66 4.5.1 Model 1..............................................................................................................67 4.5.2 Model 2 e Design Pattern MVC........................................................................69 4.5.3 JFreeChart..........................................................................................................73 4.6 Architettura Completa.................................................................................................765 Guida duso dellapplicazione realizzata.............................................................................77 5.1 Interfaccia Di Amministrazione..................................................................................77 5.1.1 Gestione dei Data Server...................................................................................81 5.1.2 Gestione dei Report statistici.............................................................................85 5.1.3 Le briciole di pane.............................................................................................86 5.2 Interfaccia Di Visualizzazione Dei Grafici..................................................................876 Considerazioni e conclusioni..............................................................................................917 Appendici............................................................................................................................93 7.1 Messa In Esercizio Del Framework............................................................................93 7.1.1 Data Server........................................................................................................93 7.1.2 Data Client.........................................................................................................95Paolo Vanacore 566/1539 Pagina 3 di 279
  4. 4. 7.1.3 Interfaccia di amministrazione..........................................................................96 7.1.4 Interfaccia di visualizzazione dei grafici...........................................................97 7.2 Diagrammi...................................................................................................................99 7.2.1 UML – Use Case Diagrams...............................................................................99 7.2.2 UML – Component Diagrams.........................................................................100 7.2.3 UML – Class Diagrams...................................................................................101 7.2.4 UML – Sequence Diagrams.............................................................................111 7.2.5 UML – Statechart.............................................................................................114 7.2.6 EER Diagram...................................................................................................115 7.3 Documentazione JavaDoc.........................................................................................116 7.4 Codice Sorgente.........................................................................................................116 7.4.1 it.unina.scope.wistat.dataclient........................................................................116 7.4.2 it.unina.scope.wistat.dataclient.database.........................................................136 7.4.3 it.unina.scope.wistat.dataclient.net..................................................................144 7.4.4 it.unina.scope.wistat.dataclient.rrd..................................................................162 7.4.5 Files di configurazione DataClient..................................................................170 7.4.6 it.unina.scope.wistat.dataserver.......................................................................171 7.4.7 it.unina.scope.wistat.dataserver.database.........................................................175 7.4.8 it.unina.scope.wistat.dataserver.net.................................................................176 7.4.9 Files di configurazione DataServer.................................................................183 7.4.10 Script SQL per la creazione del database rrdb...............................................184 7.4.11 WiStat – bean.................................................................................................192 7.4.12 WiStat – controller (Servlet)..........................................................................202 7.4.13 Wistat – database...........................................................................................206 7.4.14 WiStat – JSP..................................................................................................210 7.4.15 Files di configurazione dellinterfaccia WiStat..............................................214 7.4.16 WiStatAdmin – bean......................................................................................216 7.4.17 WiStatAdmin – controller (Servlet)...............................................................225 7.4.18 WiStatAdmin – JSP.......................................................................................250 7.4.19 Files di configurazione dellinterfaccia WiStatAdmin...................................2748 Bibliografia e Sitografia....................................................................................................278Paolo Vanacore 566/1539 Pagina 4 di 279
  5. 5. 1 IntroduzioneUna corretta valutazione dello stato di un sistema complesso è alla base del processo dimanutenzione, gestione ed evoluzione del sistema stesso. Ne consegue la necessità difornire adeguati strumenti che ne consentano valutazioni corrette.Il monitoraggio, inteso come strumento di rappresentazione dello stato di un sistema,svolge, quindi, un ruolo di primaria importanza per la vita ed evoluzione del sistemastesso.In tale contesto il sistema è rappresentato dalla rete wireless di Ateneo “WiFi-Unina” egli strumenti da realizzare consistono in un framework per la valutazione dellestatistiche di esercizio della stessa.Su tali considerazioni si basa il lavoro di tesi che si colloca nellambito delliniziativa“WiFi SUD” del progetto “ICT4University” che realizza quanto previsto dallobiettivoUniversità del Piano E-Gov 2012. In particolare liniziativa ha previsto ilfinanziamento di progetti delle Università del Sud per realizzare, estendere ocompletare reti di connettività senza fili e sviluppare servizi online di tipoamministrativo e/o didattico, accessibili gratuitamente da parte degli studenti.Il framework realizzato consta di due principali sottosistemi: • il sottosistema di monitoraggio per la raccolta di informazioni sugli apparati di rete; • il sottosistema per la definizione e la rappresentazione di statistiche.Per il monitoraggio è stato utilizzato il software open source Cacti. Tale applicativocostituisce un sistema completo per il monitoraggio passivo di apparati di rete,offrendo tutti gli strumenti necessari per interrogazioni SNMP (Simple NetworkManagement Protocol).Per quanto riguarda il sottosistema per le statistiche, è stata realizzata unapplicazioneche consente, attraverso interfaccia web, di definire report statistici a partire dai dati Paolo Vanacore 566/1539 Pagina 5 di 279
  6. 6. frutto di monitoraggio. Lapplicazione ha unarchitettura client/server multithread e ciòconsente di avere uno o più server di monitoraggio con una gestione centralizzata deidati di interesse.Tra le problematiche affrontate le più rilevanti riguardano laccesso ai dati dimonitoraggio e la gestione di report statistici.Laccesso ai dati ha richiesto lo studio di uno degli strumenti software open sourcemaggiormente utilizzati nellambito del monitoraggio di sistemi in genere, del qualeCacti è considerato una GUI user friendly: RRDTool. Buona parte del data layer delframework realizzato riguarda proprio linterazione con RRDTool, al fine di replicare idati di monitoraggio in un database realizzato su DBMS MySQL e poterli cosìconsolidare per mezzo di funzioni statistiche. Particolare attenzione è stata data,quindi, allaccesso, coerenza e persistenza dei dati di monitoraggio.Lapplicazione per le statistiche è interamente scritta in linguaggio Java per consentireunalta portabilità.Tra le principali tecnologie adottate vi sono: • Parser Document Object Model, istruzioni XPath e parser Simple API for XML per i files XML; • Java DataBase Connectivity per le connessioni ai database MySQL; • Java Server Pages, Servlet e JavaBeans per la presentazione dei dati; • Libreria JFreeChart per la creazione di grafici. Paolo Vanacore 566/1539 Pagina 6 di 279
  7. 7. 2 La rete wireless di Ateneo: “Wifi-Unina” 2.1 Topologia di reteSeguendo un approccio top-down nella descrizione della topologia di rete, una primaclassificazione si basa sulle principali sedi di Ateneo che costituiscono tre sotto-domini(fig. 2.1.1): • Monte SantAngelo; • Centro Storico; • Policlinico. Fig. 2.1.1 – le tre principali sedi di Ateneo (immagine ottenuta da Google Eearth ). Paolo Vanacore 566/1539 Pagina 7 di 279
  8. 8. Queste sedi sono interconnesse per mezzo della rete metropolitana (MAN –Metropolitan Area Network) che, attraverso un cablaggio in fibra ottica, offrecollegamenti a 2.4 Gigabit (Packet over SONET – Synchronous Optical NETwork).Scendendo nella gerarchia e considerando unicamente i nodi di interesse, unadescrizione più dettagliata è data dalla suddivisione in strutture e facoltà (fig. 2.1.2). Centri Comuni Aulario A Monte SantAngelo Dipartimento di Chimica Dipartimento di Matematica Biblioteche Agnano Edificio Edificio 1 Via Claudio Edificio 3 Ingegneria Edificio 5 Piazzale Tecchio Edificio Mezzocannone Centro Storico S.Antoniello Edificio 01 Edificio 04 Edificio 05 Edificio 08 Edificio 09 Edificio 10 Edificio 11 Edificio 12 Policlinico Edificio 13 Edificio 14/15 Edificio 17 Edificio 18 Edificio 19 Edificio 20 Edificio 21 Ed. 22 (Mensa) Fig. 2.1.2 – schema gerarchico della topologia logica di rete in basato sulle sedi Paolo Vanacore 566/1539 Pagina 8 di 279
  9. 9. Per non appesantire lo schema precedente sono state omesse le ulteriori classificazionidelle strutture in piani/livelli derivanti dal cablaggio strutturato.Come si evince dalla fig. 2.1.2, la sede di Monte SantAngelo costituisce il nodoprincipale della rete. Il POP (Point Of Presence – punto di connessione fisica tra retidi telecomunicazione) di Monte SantAngelo, infatti, offre e gestisce laccesso da everso diverse reti e servizi, con connessioni da 1GbE fino a 10GbE, tra cui: • accesso alla rete GARR Rete Italiana per la ricerca nata nel 1977 e gestita dal Consortium GARR (Gruppo per lArmonizzazione delle Reti della Ricerca). Diversi sono gli enti che afferiscono a tale consorzio, tra cui i fondatori: ▪ CNR (Consiglio Nazionale delle Ricerche); ▪ ENEA (Ente per le Nuove Teconologie, lEnergia e lAmbiente); ▪ INFN (Istituto Nazionale di Fisica Nucleare); ▪ Fondazione CRUI (Conferenza dei Rettori delle Università Italiane) in rappresentanza delle Università Italiane. • griglie computazionali (GRID): ▪ SCOPE (Sistema Cooperativo distribuito ad alte Prestazioni per Elaborazioni scientifiche multidisciplinari – infrastruttura di supercomputing general purpose basata su GRID e calcolo distribuito in genere); ▪ GRISU (Griglia del Sud – infrastruttura distribuita a carattere multidisciplinare); ▪ ATLAS (griglia nata nellambito dellesperimento A Toroidal LHC Apparatus presso lacceleratore Large Hadron Collider del CERN di Ginevra). Paolo Vanacore 566/1539 Pagina 9 di 279
  10. 10. Limitando il discorso alla rete wireless di Ateneo, considerata la complessità e lavastità della stessa, un aspetto particolarmente importante, dal punto di vistaprogettuale, è sicuramente la scalabilità.Nei successivi paragrafi vengono descritte le soluzioni architetturali adottateevidenziando come queste ultime sostengono tale caratteristica.In particolare vengono considerati i seguenti tipi di scalabilità: • scalabilità di carico Capacità di scalare sul carico, inteso come mole di traffico/numero di utenti; • scalabilità geografica Capacità di estensione fisica della rete; • scalabilità amministrativa Capacità di mantenere inalterata la gestibilità allevolversi della rete. 2.2 Apparati di reteOgnuna delle tre principali sedi di Ateneo (Monte SantAngelo, Centro Storico ePoliclinico) costituisce un sotto-dominio della rete.La totalità degli apparati sono prodotti dalla Cisco ed offrono una soluzione completaper la realizzazione e gestione di reti WLAN (Wireless Local Area Network). Inparticolare, considerando ogni sotto-dominio come una WLAN autonoma,larchitetturaadottata è gerarchica (fig. 2.2.1) e costituita da tre principali tipologie di apparati: • WLSE (Wireless Lan Solution Engine); • WDS (Wireless Domain Service); • AP (Access Point).Paolo Vanacore 566/1539 Pagina 10 di 279
  11. 11. WLSE sottodominio i WDS1 WDS2 WDSn Infrastructure APs  Infrastructure APs  Infrastructure APs  (registered on WDS 1) (registered on WDS 2) (registered on WDS n)AP1 AP2 APx AP1 AP2 APy AP1 AP2 APz Fig. 2.2.1 – apparati attivi di un generico sotto-dominio di reteTale soluzione architetturale è conosciuta con il nome di “Cisco SWAN” (StructuredWireless-Aware Network). Il programma SWAN della Cisco mira ad integrare varicomponenti di rete al fine di fornire WLAN di qualità.Gli obiettivi, dichiarati dalla Cisco, di tale programma, sono principalmente i seguenti: • Integrazione dei servizi wired e wireless per mezzo di infrastrutture sia hardware che software (Cisco IOS Software) proprietarie; • Semplificazione della gestione di numerosi punti daccesso, consentendo un accesso centralizzato e da remoto; • Monitoraggio e scansione di radio frequenze; • Alta disponibilità della LAN (Local Area Network) per mezzo di processi di auto-diagnosi e “self-healing” (auto-guarigione) come la rilevazione, individuazione ed isolamento di interferenze di rete; • Gestione dei servizi di autenticazione ed autorizzazione secondo lo standard IEEE 802.1X. In particolare tale aspetto è garantito da un server RADIUSPaolo Vanacore 566/1539 Pagina 11 di 279
  12. 12. (Remote Authentication Dial-In User Service). RADIUS è un protocollo del tipo AAA (Authentication Authorization Accounting) con il compito, quindi, di realizzare le tre funzioni di: ▪ autenticazione (authentication); ▪ controllo degli accessi (authorization); ▪ tracciamento del consumo delle risorse da parte degli utenti (accounting).Come si evince dalla figura 2.2.1, ogni sotto-dominio i della rete è dotato di un WLSE(fig. 2.2.2). Il WLSE può essere paragonato ad un vero e proprio server che offremolteplici servizi di gestione per tutti gli apparati del sotto-dominio a suo carico. Inparticolare, le caratteristiche principali del WLSE sono le seguenti: • gestione centralizzata della WLAN; • rilevamento ed individuazione di connessioni non autorizzate (Intrusion Detection); • rilevamento di interferenze radio; • monitoraggio delle prestazioni (Reports); • sistema di configurazione dei punti daccesso automatizzato. Fig. 2.2.2 – esempio di Cisco WLSE 1130In figura 2.2.3 è riportata una schermata dellinterfaccia web del WLSE di MonteSantAngelo dalla quale è possibile notare la mole di funzionalità offerte che spazianoPaolo Vanacore 566/1539 Pagina 12 di 279
  13. 13. dai servizi di configurazione a quelli di monitoraggio ed allarmistica.Per una gestione ancor più completa dellintera WLAN, è degno di nota il “LocationManager”. Tale applicazione, accessibile sempre dallinterfaccia web del WLSE, sipresenta come un applet JAVA che consente, previa configurazione, di visualizzare leplanimetrie delle strutture che ospitano la WLAN, la precisa ubicazione e gli stati diesercizio di ogni singolo apparato (fig. 2.2.4). Fig. 2.2.3 – interfaccia web del WLSE di Monte SantAngeloPaolo Vanacore 566/1539 Pagina 13 di 279
  14. 14. Fig. 2.2.4 – il Location Manager del WLSE di Monte SantAngelo. A destra la planimetria del Livello 0 dei Centri Comuni con lesatta ubicazione degli Access Point (in verde)Sempre in riferimento allarchitettura Cisco SWAN, il secondo e terzo livellogerarchico sono occupati dai WDS ed AP.I WDS, fisicamente, sono AP settati in una particolare modalità che conferisce loro lostato di Wireless Domain Services. Il principale scopo di tale configurazione è quellodi definire uninfrastruttura di AP.Un certo numero di AP vengono registrati ad un WDS andando così a costituireuninfrastruttura gestita, dal punto di vista dei servizi di rete, dal WDS stesso.Tra i principali vantaggi che tale soluzione offre vi sono: • riduzione del tempo richiesto per le autenticazioni dei client attraverso un processo, quando possibile, locale. In particolare il processo di autenticazione prevede che le credenziali vengano inviate da un AP al WDS cui è registrato. Nel caso di prima autenticazione da parte del client nellinfrastruttura a carico del WDS, questultimo ne verifica lePaolo Vanacore 566/1539 Pagina 14 di 279
  15. 15. credenziali attraverso comunicazione con un server RADIUS, ed infine memorizza le stesse in cache. Con tale strategia di caching, le successive fasi di autenticazione del client nellinfrastruttura risultano più veloci non necessitando di interazioni con il server RADIUS; • assegnazione dello stato di WDS definito come processo autonomo allinterno dellinfrastruttura. Gli AP possono eleggere il miglior dispositivo da definire come WDS. Questo meccanismo si basa sulla valutazione di diversi parametri come, ad esempio, il carico di lavoro. È inoltre possibile definire un dispositivo candidato come WDS principale ed uno o più dispositivi candidati come WDS di backup; • Raccolta dei dati di funzionamento in maniera aggregata. Tutti i dati di funzionamento degli apparati possono essere mantenuti e gestiti in maniera centralizzata sul WDS dellinfrastruttura;Il ruolo degli AP, infine, è quello di offrire, agli utenti provvisti di dispositivi mobili,laccesso alla rete WLAN.I modelli di AP della rete sono due: Cisco Aironet 1210 e Cisco Aironet 1240(fig. 2.2.5). Fig. 2.2.5 – Cisco Aironet 1240Paolo Vanacore 566/1539 Pagina 15 di 279
  16. 16. Gli AP della serie 1240 supportano la modalità WDS.Le caratteristiche salienti di questi ultimi sono le seguenti: Fino a 108 Mbps e compatibilità con clientStandard 802.11a ed 802.11g 802.11b.Doppio connettore per antenne RP-TNC Antenne da 2,4 a 5 Ghz. Funzionamento come Access Point o comeModalità Bridge. Cisco IDS/IPS. Funzionalità software Cisco per la sicurezza wireless. Rilevamento Spoofing. Autenticazione: WPA, WPA2, Cisco TKIP,WEPSicurezza e protezione a 40b e 128b, autenticazione EAP-FAST, PEAP- GTC, PEAP-MS-CHAP, EAP-TLS, EAP-TTLS, EAP-SIM, Cisco LEAP. Crittografia: AES-CCMP (WPA2), TKIP(WPA), Cisco TKIP, WPA TKIP, WEP a 40b e 128b. Supporto fino a 12 canali non sovrapposti e, potenzialmente, fino a 23 canali.Varie Alimentazione PoE IEEE 802.3af. RAM da 32MB.Memoria 16MB di memoria flash.Consumi 12,95W massimo. Cisco IOS.Software Cisco Unified Wireless Network Software.Paolo Vanacore 566/1539 Pagina 16 di 279
  17. 17. 2.3 Dati generali sullinfrastruttura di rete wirelessNella figura a seguire viene mostrato lo stato di avanzamento dei lavori della retewireless di Ateneo. Questi dati sono stati prelevati dal sito www.ict4university.gov.itche riporta lo stato di avanzamento dei progetti di ogni singola Università chepartecipa al progetto. In particolare, di seguito, vengono mostrati i dati relativi alprogetto “WiFi SUD” limitatamente allUniversità Federico II. Fig. 2.3.1 – stato attuale dei lavori in riferimento alliniziativa “WiFi SUD”. Dati prelevati dal sito: www.ict4university.gov.itPaolo Vanacore 566/1539 Pagina 17 di 279
  18. 18. I seguenti grafici sono stati realizzati a partire dai dati rilevati dai WLSE in data12/01/2010. È importante notare che tali dati risultano essere delle stime indicativedella reale ed attuale struttura della rete, in quanto la loro produzione non è totalmenteautomatizzata. In particolare la categorizzazione degli AP e linserimento di nuoviapparati, ad esempio, è a carico del personale tecnico-amministrativo. Distribuzione AP per zona Ubicazione Numero AP Centro Storico 218 Monte SantAngelo 307 Policlinico 73 Totale 598 12,21% 36,45% Centro Sto- rico MSA Policlinico 51,34% Tipologia AP Modello AP Quantità Cisco Aironet 1210 321 Cisco Aironet 1240 277 Totale 598 46,32% 53,68% Cisco Aironet 1210 Cisco Aironet 1240Paolo Vanacore 566/1539 Pagina 18 di 279
  19. 19. Distribuzione Subnet Ubicazione Numero Subnet Centro Storico 19 Monte SantAngelo 16 Policlinico 2 Totale 37 5,41% Centro Sto- 51,35% 43,24% rico MSA Policlinico Tipologie IP IP Pubblico IP Privato Totali Subnet 13 24 37 Apparati 378 244 622 IP Pubblici 64,86% IP Privati 39,23% IP Privati 60,77% 100 35,14% IP Pubblici 50 0 Subnet ApparatiPaolo Vanacore 566/1539 Pagina 19 di 279
  20. 20. Percentuale WDS attivi/di backup Stato Numero WDS WDS Attivi 25 WDS di Backup 24 Totale 49 51,02% 48,98% WDS Attivi WDS Backup Distribuzione WDS Ubicazione Numero WDS Centro Storico 26 Monte SantAngelo 19 Policlinico 4 8,16% 53,06% Centro Storico 38,78% MSA PoliclinicoDai dati rilevati si evince unalta concentrazione di Access Point nella sede di MonteSantAngelo, seguita dal Centro Storico e quindi dal Policlinico. È inoltre interessantenotare come il rapporto dei WDS, effettivamente di 1:1, presenta un WDS attivo in piùrispetto a quelli di backup. Ciò può essere dovuto al malfunzionamento di un WDS dibackup o alla caduta di uno attivo che ha comportato il passaggio di un WDS dallostato di backup allo stato attivo.Paolo Vanacore 566/1539 Pagina 20 di 279
  21. 21. 2.3.1 Infrastruttura di Monte SantAngelo Tipologia AP Modello AP Quantità Cisco Aironet 1210 125 Cisco Aironet 1240 182 Totale 307 40,72% Cisco Ai- ronet 1210 59,28% Cisco Ai- ronet 1240 Tipologie IP IP Pubblico IP Privato Totali Subnet 7 9 16 Apparati 195 128 323 IP Pubblici 56,25% IP Privati 39,63% IP Privati 60,37% 100 43,75% IP Pubblici 50 0 Subnet ApparatiPaolo Vanacore 566/1539 Pagina 21 di 279
  22. 22. Percentuale WDS attivi/di backup Stato Numero WDS WDS Attivi 9 WDS di Backup 10 Totale 19 47,37% 52,63% WDS Attivi WDS Backup 2.3.2 Infrastruttura del Centro Storico Tipologia AP Modello AP Quantità Cisco Aironet 1210 124 Cisco Aironet 1240 94 Totale 218 43,12% Cisco Aironet 1210 56,88% Cisco Aironet 1240Paolo Vanacore 566/1539 Pagina 22 di 279
  23. 23. Tipologie IP IP Pubblico IP Privato Totali Subnet 4 15 19 Apparati 110 116 226 78,95% IP Pubblici 51,33% IP Privati IP Privati 48,67% 100 21,05% IP Pubblici 50 0 Subnet Apparati Percentuale WDS attivi/di backup Stato Numero WDS WDS Attivi 14 WDS di Backup 12 Totale 26 46,15% 53,85% WDS Attivi WDS BackupPaolo Vanacore 566/1539 Pagina 23 di 279
  24. 24. 2.3.3 Infrastruttura del Policlinico Tipologia AP Modello AP Quantità Cisco Aironet 1210 72 Cisco Aironet 1240 1 Totale 73 1,37% Cisco Aironet 1210 Cisco Aironet 1240 98,63% Tipologie IP IP Pubblico IP Privato Totali Subnet 2 0 2 Apparati 73 0 73 100 80 100,00% 100,00% IP Pubblici 60 IP Privati 40 20 0 0,00% 0,00% IP Privati IP Pubblici Subnet ApparatiPaolo Vanacore 566/1539 Pagina 24 di 279
  25. 25. Percentuale WDS attivi/di backup Stato Numero WDS WDS Attivi 2 WDS di Backup 2 Totale 4 50,00% 50,00% WDS Attivi WDS BackupPaolo Vanacore 566/1539 Pagina 25 di 279
  26. 26. 3 Monitoraggio di reteUna corretta valutazione dello stato di un sistema complesso è alla base del processo dimanutenzione, gestione ed evoluzione del sistema stesso. Da questa considerazionenasce la necessità di fornire adeguati strumenti che consentano valutazioni corrette.Il monitoraggio, inteso come strumento di rappresentazione dello stato di un sistema,svolge quindi un ruolo di primaria importanza nella vita ed evoluzione del sistemastesso. Le informazioni che un sistema di monitoraggio deve fornire devono quindirisultare esatte e rilevanti.Al fine di caratterizzare lo stato della rete è opportuno isolarne le principali entità: Entità Esempi di parametri caratterizzanti Utente Numero di utenti connessi. Stato (attivo/non attivo); Up Time; Apparato (WDS/AP) Consumi; Velocità di connessione. Dati di funzionamento dei principali protocolli come: Protocollo il numero e lo stato di connessioni TCP/IP; numero di datagrammi UDP inviati, errati, e così via.Si distinguono inoltre due tipi di monitoraggio: passivo ed attivo.In quello di tipo passivo il sistema di monitoraggio si limita ad aggregare leinformazioni fornitegli dalle entità della rete. Ciò significa che gli apparati devonoessere dotati di sistemi di memorizzazione e devono offrire i servizi necessari perlaccesso ai dati.I monitoraggi attivi, invece, raccolgono informazioni sullo stato della rete attraversoPaolo Vanacore 566/1539 Pagina 26 di 279
  27. 27. processi di interazione con la rete stessa. Un monitoraggio attivo è, ad esempio, quellobasato sulla tecnica Packet-pair. Tale tecnica fa uso di code FIFO (coda del tipo FirstIn First Out) al fine di misurare la larghezza di banda di un collegamento.Il sistema di monitoraggio previsto nel progetto cui afferisce il presente lavoro prevedeun monitoraggio di tipo passivo ed è quindi opportuno analizzare in maniera esaustivail protocollo maggiormente utilizzato in tale ambito: il protocollo SNMP. 3.1 Il protocollo SNMP: Simple Network Management ProtocolIn riferimento allo stack ISO/OSI, il protocollo SNMP si colloca al livello 7 (livelloapplicazione, corrispondente al livello 4 dello stack TCP/IP) e, al fine di garantire unbasso overhead sul traffico di rete, fa uso di datagrammi UDP (porte 161 e 162) dellivello di trasporto.Come si evince dallacronimo “Simple Network Management Protocol”, lSNMP nascecon lo scopo di fornire uno strumento di gestione e supervisione di apparati di rete.LSNMP si basa su tre principali tipi di entità: 1. management object – il sistema gestito (porta UDP 161); 2. management agent – lagente di gestione; 3. manager – sistema di gestione (porta UDP 162).Per sistema gestito sintende un qualunque apparato collegato in rete (uno switch, unrouter, una stampante, un server,...) in grado di fornire uninterfaccia di gestioneSNMP. Tale interfaccia viene realizzata per mezzo di almeno un agente di gestionedetto master ed eventuali altri agenti detti subagent. Gli agenti/sotto-agenti sonomoduli software con responsabilità decisionali di gestione limitatamente ad unPaolo Vanacore 566/1539 Pagina 27 di 279
  28. 28. particolare sottosistema o relativamente ad un particolare aspetto del sistema overisiedono (management object).In sistemi “semplici” è possibile definire un unico agente di gestione che, in tal caso,svolge sia il ruolo di master che di subagent e, per tale motivo, viene denominatosemplicemente agent.Ogni agent/subagent gestisce una struttura dati denominata MIB (ManagementInformation Base). Tale struttura modellizza lo stato di un sottosistema in base a suoiparametri caratterizzanti che si desidera gestire. È importante constatare che ognimodifica ad un parametro della MIB si ripercuote sullo stato del sistema e ciò permettetutte le funzionalità di gestione del sottosistema. Come precedentemente accennato, lacoerenza della MIB, rispetto allo stato del relativo sistema/sottosistema cherappresenta, e viceversa, è a carico degli agent/subagent.Laccesso alla MIB può essere in lettura e/o in scrittura e rappresenta linterfacciafornita al manager del sistema. In particolare il manager comunica con i sistemi gestititramite i seguenti tipi di messaggi: • richieste SNMP ◦ GET, per la lettura; ◦ GETNEXT, per la lettura iterativa su una sequenza di dati della MIB; ◦ GETBULK, per la lettura di un blocco di dati della MIB; ◦ SET, per la scrittura di uno o più dati della MIB. • notifiche SNMP ◦ TRAP, sono messaggi asincroni inviati dallagent per segnalare eventi (usati, ad esempio, per i sistemi di allarmistica); ◦ INFORM, notifiche con ACK per informazioni di stato generiche.Paolo Vanacore 566/1539 Pagina 28 di 279
  29. 29. La MIB ha una struttura di tipo albero n-ario dove ogni sotto-albero è detto modulo ele foglie sono gli oggetti. I moduli vengono definiti in base ad unaggregazione logicadi oggetti.Ogni nodo/foglia dellalbero MIB è identificato univocamente per mezzo di unasuccessione di valori numerici separati da un punto. In particolare ogni elemento(nodo/foglia) è identificabile per mezzo della successione di numeri ottenuta dalcammino che dalla radice conduce ad esso. Il singolo valore numerico di un modulo èassegnato dalla IANA (Internet Assigned Number Authority). La successione di taliidentificativi è detta OID (Object IDentifier). LSNMP definisce, inoltre, una strutturaMIB standard di cui è possibile visionarne una porzione in figura 3.1.1. ISO Root Standard ISO 1 Org Per le organizzazioni che 3 possono emanare standard Dod Per il Dipartimento della 6 difesa americano Per usi futuri OSI Internet 1 Mgmt Experi- Directory Private 2 mental 1 4 3 MIB-II MIB definite Enterpises 1 Ufficialmente 1 DallInternet Architecture Board Per esperimenti Moduli non standard Internet definiti dai costruttori Fig. 3.1.1 – porzione dellalbero MIB standardPaolo Vanacore 566/1539 Pagina 29 di 279
  30. 30. Per quanto riguarda i tipi di dati, che il protocollo SNMP defisce, essi si distinguonoin: primitivi e non primitivi.I tipi primitivi sono: • Integer – per i valori interi positivi o negativi incluso lo zero; • Octet String – per gli insiemi ordinati di byte; • Object Identifier – per i valori unici secondo le specifiche ASN.1; • NULL – per il tipo nullo.I tipi non primitivi previsti dalllo standard sono: • Indirizzi di rete – per la rappresentazione degli indirizzi IP; • Counter – per i valori interi non negativi che possono essere unicamente incrementati fino ad un valore massimo, raggiunto il quale vengono azzerati; • Gauge – per gli interi non negativi che possono essere sia incrementati che decrementati; • Time Tick – per la rappresentazione di intervalli di tempo nella gestione degli eventi; • Opaque – tale tipo è in grado di mantenere qualunque valore e viene usato per le informazioni per le quali non sono strettamente applicabili i tipi precedentemente descritti.A partire dalla versione 2 dellSNMP, per offrire un minimo livello di sicurezzatotalmente assente nella versione 1, è stato introdotto il concetto di comunità.LSNMPv2 definisce una comunità come un insieme di sistemi facenti parte di una reteSNMP. Ogni comunità viene identificata per mezzo di una stringa di 32Byte e ciascunsistema può appartenere ad una o più comunità. Gli agent accettano quindi richiestesolo da manager della stessa comunità cui possono essere assegnati tre tipi diPaolo Vanacore 566/1539 Pagina 30 di 279
  31. 31. autorizzazioni: • read – autorizzazione in lettura. Il manager può unicamente richiedere allagent il valore degli oggetti della MIB (messaggi GET); • write – autorizzazione in scrittura. Il manager può richiedere allagent la lettura e la scrittura di valori degli oggetti della MIB (messaggi GET e SET); • trap – autorizzazione per le notifiche. Il manager può richiedere allagent di ricevere notifiche relative agli oggetti della MIB (messaggi TRAP/INFORM);È utile ricordare che lultima versione dellSNMP, definita nel documento RFC2570, èla 3. Questa versione risolve diversi problemi che vanno dalla sicurezza allastandardizzazione delle varie implementazioni delle versioni precedenti. Tale versioneunifica il concetto di agent e manager in ununica entità detta SNMP entity. È inoltrestata adottata unarchitettura modulare e diversi algoritmi di autenticazione, sicurezza ecrittografia.Per concludere questa trattazione del protocollo SNMP è opportuno menzionare alcunidei software Open Source maggiormente diffusi: • Net-SNMP; • OpenSNMP – software multi-thread per SNMPv3; • SNMP4J – libreria per Java; • Netsnmpj – libreria per Java.Paolo Vanacore 566/1539 Pagina 31 di 279
  32. 32. 3.2 CactiIl software utilizzato per la raccolta dei dati di esercizio degli apparati della retewireless di Ateneo è lapplicazione open source Cacti (fig. 3.2.1).La scelta di utilizzare Cacti come strumento di raccolta dati è dettata principalmentedalle sue caratteristiche, di seguito analizzate, che rientrano in maniera più cheadeguata nel contesto in esame. Fig. 3.2.1 – schermata di esempio di Cacti. In particolare è possibile notare il grafico relativo al numero di processi attivi sulla macchina che ospita il sistema di monitoraggio.Per completezza di informazione si menziona anche unalternativa, lapplicativoPaolo Vanacore 566/1539 Pagina 32 di 279
  33. 33. Nagios. Sono molti gli aspetti in comune con Cacti e, proprio per questo, è importantenotare che lapplicazione realizzata, descritta nei successivi paragrafi, è facilmenteadattabile/estendibile alluso di Nagios. Una differenza evidente tra i due softwarerisiede nel fatto che Nagios è utilizzato maggiormente per la realizzazione di sistemi diallarmistica, più che per monitoraggio puro.Tornando a Cacti, questi integra una serie di tool, sempre open source, al fine difornire un sistema semplice e completo per il monitoraggio passivo di retiinformatiche.Più dettagliatamente Cacti si basa sui seguenti strumenti: • Net-SNMP, per le interrogazioni SNMP; • RRDTool, per la persistenza dei dati frutto di monitoraggio e la loro presentazione per mezzo di grafici; • piattaforma LAMP (Linux Apache Mysql Php), ed in particolare: ◦ PHP ed Apache, per la presentazione dei dati e per le interfacce utente; ◦ MySQL, per la persistenza dei dati di configurazione.Una schematizzazione modulare, esplicativa, può essere la seguente: Net­SNMP CACTI Piattaforma LAMP RRDTool MySQL DB Fig. 3.2.2 – struttura modulare di CactiPaolo Vanacore 566/1539 Pagina 33 di 279
  34. 34. Unimportante caratteristica di Cacti, che gli conferisce ampi margini di espansibilità, èlarchitettura a plug-in.Tra i plug-in più rilevanti vi sono: • Discovery – auto rilevamento di dispositivi di una subnet non monitorati da Cacti; • Host Info – consente di visualizzare informazioni sugli host; • Monitor – mostra gli stati degli host monitorati generando segnali acustici in caso di “cadute”; • Uptime – consente di conoscere gli uptime dei dispositivi monitorati; • Weathermap – consente di definire mappe delle reti arricchite con i dati di monitoraggio; • NPC – plugin per integrare il sistema di monitoraggio Nagios allinterno di Cacti.Per quanto riguarda la definizione dei monitoraggi, le chiamate a Net-SNMP possonoessere definite per mezzo di: • script di shell bash; • script Perl; • definizione di template in XML (eXtensible Markup Language).Una volta definite le interrogazioni SNMP desiderate, attraverso processo di polling,Cacti prevede ad eseguirle ad intervalli di tempo regolari, passandone i risultati adRRDTool. In prima istanza, RRDTool può essere considerato come un vero e propriodatabase ottimizzato per gli ambienti di monitoraggio in genere. Nel successivoparagrafo sarà descritto in maniera esaustiva tale software, del quale Cacti vieneconsiderato uninterfaccia user friendly, in quanto lapplicazione realizzata prevede, aPaolo Vanacore 566/1539 Pagina 34 di 279
  35. 35. livello del data layer, una ricca interazione con questultimo.Al fine di descrivere in maniera più chiara i processi legati alla raccolta dati di Cacti,se ne riporta uno schema esplicativo contestualizzato alla rete wireless di ateneo: MSA Centro Storico AP1 APa AP1 APb AP1 APc AP1 APd Policlinico WDSx WDS1 WDS1 WDSy AP1 SN WDS1 SN M SNMP SN MP M APe   P MP SN P AP1 WDSz SN MP Net­SNMP APf CACTI      RRD Files Piattaforma LAMP RRDTool MySQL DB Fig. 3.2.2 – processo di raccolta e persistenza dati di Cacti nellambito della rete wireless di ateneoDallo schema sopra riportato è possibile osservare come Cacti, attraverso luso di Net-SNMP, è in grado di raccogliere dati dalle tre sedi principali della rete wireless diateneo. È importante notare che le interrogazioni SNMP vengono effettuateunicamente sui WDS in quanto, questi ultimi, come descritto nel paragrafo 2.2,mantengono le informazioni di tutti gli apparati dellinfrastruttura a loro carico.Ad ogni interrogazione i dati vengono quindi passati ad RRDTool che procede allastoricizzazione degli stessi.Paolo Vanacore 566/1539 Pagina 35 di 279
  36. 36. 3.3 RRDTool: Round-Robin Database ToolRRDTool (acronimo di Round Robin Database Tool) è un software open sourcerealizzato interamente in C da Tobias Oetiker ed è uno degli strumenti maggiormenteutilizzati nellambito dei sistemi di monitoraggio in genere. Il compito principale diRRDTool, in un sistema di monitoraggio, è larchiviazione di serie temporali.Le principali caratteristiche (fig. 3.3.1) sono: • dimensioni degli archivi (file RRD – Round Robin Database), a regime, costanti; • dump degli archivi in file XML; • fetch di serie temporali parziali dagli archivi; • rappresentazione dei dati per mezzo di grafici (fig. 3.3.2).      RRD Files RRDTool STDOUT ASCII XML files dump file dump file Stream Stream Fig. 3.3.1 – caratteristiche principali di RRDToolPaolo Vanacore 566/1539 Pagina 36 di 279
  37. 37. Fig. 3.3.2 – esempio di grafico generato da RRDToolAl fine di analizzare, in maniera dettagliata, gli RRD si riporta un diagramma di classe UMLche ne sintetizza la struttura logica: Fig. 3.3.3 – rappresentazione della struttura logica degli RRD per mezzo di diagramma di classe UMLPaolo Vanacore 566/1539 Pagina 37 di 279
  38. 38. Passando in rassegna ogni singola classe del diagramma precedente, è possibile notareche ogni RRD è caratterizzato da: • version – una stringa indicante il numero di versione dellRRD (attualmente la 003); • step – un valore numerico intero che indica la frequenza, in secondi, con cui lRRD viene aggiornato; • lastupdate – intero che rappresenta la data di ultimo aggiornamento dellRRD, in numero di secondi trascorsi dal 01/01/1970 00:00:00 (Unix Epoch – dora in avanti a tale formato ci si riferirà anche con il nome di TimeStamp).Ad ogni RRD sono associati uno o più RRA (Round Robin Archive) ed uno o più DS(Data Source).Un DataSource rappresenta una fonte di dati (ad esempio “il carico del processore diun server”, “il numero di pacchetti inviati da uno switch”,...) allinterno di un RRD.Ogni DS ha i seguenti attributi: • name – stringa contenente il nome del DataSource. Tale valore identifica il DS in maniera univoca allinterno dellRRD; • heartbeat – letteralmente “battito del cuore/cardiaco”. Tale intero indica il numero massimo di secondi che possono trascorrere tra linserimento di due dati consecutivi relativi al DS stesso. Se allo scadere dellheartbeat non viene inserito un nuovo dato relativo al DataSource, RRDTool provvede a memorizzare un valore “speciale” di tipo UNKNOWN (sconosciuto). • min, max – interi rappresentanti gli estremi dellintervallo [min, max] cui devono appartenere i dati relativi al DataSource. Attraverso tali valori è quindi possibile definire il dominio di validità per i dati del DataSource.È utile tener presente che nella letteratura di RRDTool viene utilizzato il nome “PDP”(Primary Data Point) per indicare i dati che vengono inseriti negli RRD prima che siaPaolo Vanacore 566/1539 Pagina 38 di 279
  39. 39. avviato il processo di memorizzazione.Ogni DS può essere definito di uno dei seguenti quattro tipi: • COUNTER – tipo di contatore che può essere unicamente incrementato fin quando non va in overflow (32 o 64bit in base allarchitettura). Un esempio che può prevedere un DS di questo tipo può essere il numero totale di autenticazioni su un server RADIUS; • DERIVE – tipo di dato senza controllo sulloverflow dove il nuovo dato viene memorizzato come la differenza con il precedente diviso lintervallo di tempo trascorso tra le due misurazioni. Inoltre al fine della persistenza del nuovo dato, tale differenza devessere positiva. RRDTool, quindi, allinserimento di un valore per un DS del tipo DERIVE, effettua la differenza tra il nuovo valore e quello precedentemente memorizzato dividendo tale risultato per il tempo trascorso. Indicato con xi il valore di una misurazione al tempo ti e con yi il valore del nuovo dato da memorizzare, la formula, applicata da RRDTool, può essere così indicata: { x n− x n−1 y i= t n−t n−1 ⇔ x n x n−1 y i −1 ⇔ x n≤x n−1 Un esempio può essere il tasso di utenti che si connettono ad una rete. • GAUGE – i DS di questo tipo sono impiegati per usi generici, per misurazioni, quindi, di natura variabile. Un DS GAUGE, può riferirsi, ad esempio, alla temperatura di una CPU; • ABSOLUTE – tipo utilizzato per tutti i contatori che tendono velocemente verso loverflow. Luso tipico si basa su letture ed azzeramenti successivi del contatore.Un altro tipo di DS, non trattato approfonditamente in questo contesto in quanto diPaolo Vanacore 566/1539 Pagina 39 di 279
  40. 40. raro utilizzo e comunque non usato nel sistema di monitoraggio, è il COMPUTE. Taletipo consente di definire un DS in funzione di altri dello stesso RRD.Come precedentemente accennato, ogni RRD contiene uno o più RRA (Round RobinArchive). Tali oggetti sono gli archivi che si occupano di conservare tutte le seriestoriche dei DS dellRRD. Ad ogni archivio è associata una o più funzioni diconsolidamento CF (Consilidation Function) il cui scopo è consolidare i dati (PDP)dei DS prima di memorizzarli. In particolare tale funzione viene applicata per ogni DSdellRRD su un certo numero di PDP.Le possibili funzioni di consolidamento sono le seguenti: • AVERAGE – media tra un certo numero di PDP; • MIN – valore minimo tra una serie di PDP; • MAX – valore massimo tra una serie di PDP; • LAST – ultimo valore di una serie di PDP.Ogni CF ha i seguenti attributi: • xff – XFileFactor. Tale valore, reale appartenente allintervallo [0,1] e di default pari a 0, indica la massima frequenza dei dati che possono essere di tipo UNKNOWN al fine di poter applicare la CF. Questo valore è tipicamente pari a 0.5 ed indica, quindi, che al più il 50% dei dati possono essere di tipo UNKNOWN. Luso di tale attributo è significativo nei monitoraggi in ambienti particolarmente “rumorosi”, dove, cioè, le misurazioni possono risultare disturbate; • pdp_per_row – indica ogni quanti PDP devessere applicata la funzione di consolidamento; • rows – massimo numero di dati che lRRA può archiviare.Per quanto concerne il Database, presente in ogni RRA, esso è costituito dai risultatiPaolo Vanacore 566/1539 Pagina 40 di 279
  41. 41. delle CF. A regime, il numero di righe, è costante e pari al parametro rows della CF.Nello schema a seguire viene mostrato il flusso dei dati (in rosso) durante il processodi memorizzazione allinterno di un RRD. È da notare che sono presenti più DS e piùRRA.  RRD 1 DS 2 RRA CF 3 Database Fig.3.3.4 – Flusso dei dati durante il processo di memorizzazione allinterno di un RRD. Tale processo è formato dalle seguenti fasi: 1) inserimento dati (PDP); 2) Consolidamento dati (CF); 3) Archiviazione dati (Database).Dallo schema si evince come, quando viene inserito un numero di dati (PDP) pariallattributo pdp_per_row di una CF, viene eseguito il consolidamento degli stessi ed ilrisultato inserito nel Database. In particolare vengono eseguite tutte le CF per le qualisi è raggiunto il valore pdp_per_row.Per quanto riguarda lalgoritmo Round Robin, dal quale il tool prende il nome, è allabase della logica di funzionamento dei Database contenuti negli RRD. Tali Database,infatti, possono essere definiti come strutture dati del tipo “code circolari” adimensioni fisse. In particolare, raggiunta la lunghezza massima della coda, ognisuccessivo elemento viene accodato dopo aver eliminato la testa della coda.Nel successivo schema è possibile notare, con maggior precisione, qual è la strutturainterna dei Database:Paolo Vanacore 566/1539 Pagina 41 di 279
  42. 42. #DS values values Database Rows elementi Fig. 3.3.5 – struttura dei Database (code circolari a lunghezza fissa) degli RRAIl Database ha quindi una dimensione massima pari al parametro rows della CF.Ogni suo elemento, inoltre, è un vettore di lunghezza pari al numero dei DS presentinellRRD tale che, li-esimo elemento si riferisce alli-esimo DS. Lassociazione tra iDS ed i dati è quindi basata sullordine in cui i DS sono stati definiti nellRRD.Linformazione che ogni dato conserva è il valore del risultato di una CF applicata aduna serie di PDP (reale in forma normalizzata), associato al relativo TimeStamp.Ricordando il significato dei seguenti parametri • RRD.step : frequenza di aggiornamento RRD in secondi • CF.pdp_per_rows : frequenza di aggiornamento Database in funzione dello step • CF.rows : massimo numero di record del Databasesi ricava che ogni Database • ha una risoluzione pari alla frequenza daggiornamento del Database stesso:  T x =  T D = pdp_per_row ⋅ step sec i i=0,... , rows−1 • conserva uno storico di:  T S = rows ⋅ pdp_per_row ⋅ step sec = rows ⋅ T DPer completare la trattazione di RRDTool si riporta un esempio di utilizzo chePaolo Vanacore 566/1539 Pagina 42 di 279
  43. 43. consente di ottenere un semplice monitoraggio della temperatura di una CPU dual coresu un sistema Linux. • Creazione del file RRD con le seguenti caratteristiche: ◦ coretemp.rrd – nome del file; ◦ step 15 – frequenza aggiornamento dellrrd pari a 15 secondi; ◦ un DS per core: 1. core_01 di tipo GAUGE con heartbeat pari a 30 secondi e dominio pari allintervallo [0, 150]; 2. core_02 di tipo GAUGE con heartbeat pari a 30 secondi e dominio pari allintervallo [0, 150]; ▪ Considerazioni sui DS: tali datasources consentono di memorizzare valori numerici/temperature che vanno da 0 a 150 (in questo esempio °C). Ogni datasource devessere aggiornato con frequenza pari a 30 secondi. ◦ tre RRA tutti con funzioni di consolidamento di tipo AVERAGE (consolidamento per mezzo della media dei PDP) ed XFileFactor pari a 0.5 (massimo il 50% dei PDP possono essere UNKNOWN). Per quanto riguarda i valori di pdp_per_row (numero di PDP a cui viene applicata la funzione di consolidamento) e massimo numero di righe dei Database vengono usati, nellordine, i seguenti valori: 1. pdp_per_row pari a 1 e 9600 rows (valori memorizzabili); 2. pdp_per_row pari a 4 e 9600 rows; 3. pdp_per_row pari a 24 e 9600 rows; ▪ Considerazioni sugli RRA: i Database degli RRA hanno, nellordine, risoluzioni e mantengono storici pari a:Paolo Vanacore 566/1539 Pagina 43 di 279
  44. 44. 1. risoluzione:  T D =pdp_per_row⋅step=1⋅15 sec=15 sec 1 dimensione storico:  T S =rows⋅T D =9600⋅15sec=144000sec=40h 2. risoluzione:  T D =pdp_per_row⋅step=4⋅15 sec=60 sec=1min 1 dimensione storico:  T S =rows⋅T D =9600⋅60sec=576000sec=160h 3. risoluzione:  T D =pdp_per_row⋅step=24⋅15 sec=360 sec=6min 1 dimensione storico:  T S =rows⋅T D =9600⋅360sec=3456000sec=960h=40gg ◦ Comando di shell bash per la creazione del file rrd: rrdtool create coretemp.rrd --step 15 DS:core_0:GAUGE:30:0:150 DS:core_1:GAUGE:30:0:150 RRA:AVERAGE:0.5:1:9600 RRA:AVERAGE:0.5:4:9600 RRA:AVERAGE:0.5:24:6000 • Creazione di uno script bash per popolare il file rrd: #!/bin/bash while [ 1 ] ; do #lettura temperatura dei core CORE0_TEMP=`sensors | grep "Core 0:" | cut -f 8 -d | sed "s/°C$//"` CORE1_TEMP=`sensors | grep "Core 1:" | cut -f 8 -d | sed "s/°C$//"` #memorizzazione dei valori nel file rrd rrdtool update coretemp.rrd N:$CORE0_TEMP:$CORE1_TEMP #attesa 15 secondi prima del successivo rilievo sleep 15s donePaolo Vanacore 566/1539 Pagina 44 di 279
  45. 45. • Risultati: una volta creato lrrd ed avviato lo script bash, che necessita del pacchetto sensors installato sulla macchina, dopo unattesa necessaria a popolare lrrd, è possibile eseguire il seguente comando al fine di ottenere un grafico rappresentativo dei due DS: rrdtool graph coretemp.png DEF:core_0=coretemp.rrd:core_0:AVERAGE DEF:core_1=coretemp.rrd:core_1:AVERAGE LINE1:core_0#0000ff:Core0_Temp LINE1:core_1#ff0000:Core1_Temp --start -30m Tale comando consente di ottenenre il seguente grafico relativo allultima mezzora di rilevamenti: Fig. 3.3.6 – esempio di grafico generato con RRDTool relativo alle temperature di due core di una CPU nellultima mezzora Essendo numerose le opzioni di personalizzazione per i grafici di RRDTool, si rimanda alla relativa documentazione ufficiale per ulteriori approfondimenti.Paolo Vanacore 566/1539 Pagina 45 di 279
  46. 46. 4 Lapplicazione realizzata 4.1 RequisitiLapplicazione realizzata risponde ai seguenti, principali requisiti: 1. integrazione con il sistema di monitoraggio; 2. strumenti per la valutazione di statistiche di esercizio della rete wireless di ateneo;Lattuale sistema di monitoraggio consta di un server sul quale è installato il softwareCacti opportunamente configurato per la raccolta passiva dei dati dalla rete.I dati di rete attualmente monitorati sono: • Numero di AP attivi; • Numero di utenti connessi; • Dati sui protocolli: ◦ SNMP; ◦ IP; ◦ TCP; ◦ UDP.Le interrogazioni SNMP vengono effettuate sui WDS della rete per ogni principalesede di ateneo: • Monte SantAngelo ed Ingegneria; • Centro Storico; • Policlinico.Paolo Vanacore 566/1539 Pagina 46 di 279
  47. 47. Al fine di ottenere unalta portabilità ed evolvibilità, si è deciso di realizzareunapplicazione interamente in Java.Lo schema a seguire mostra linterazione tra il sistema di monitoraggio e lapplicazionerealizzata: WiFi Unina   Applicazione  Cacti Java Fig. 4.2.1 – contestualizzazione dellapplicazione JAVA realizzata rispetto al sistema di monitoraggioIl primo, principale requisito, inerente lintegrazione, implica la necessità di accesso aidati di Cacti. In tal senso questi risulta particolarmente “chiuso”, non prevedendointerfacce per linterazione verso lesterno.Come precedentemente descritto, il datalayer di Cacti si basa sulluso di: • MySQL per i dati di configurazione; • RRDTool per la memorizzazione dei dati frutto di monitoraggio.Per quanto riguarda il database MySQL, per mezzo di un processo di reverseengineering, tramite luso dello strumento software open source SQLFairy, è statoricavato il seguente diagramma ER:Paolo Vanacore 566/1539 Pagina 47 di 279
  48. 48. Fig. 4.2.2 – diagramma ER del database di Cacti ottenuto con SQLFairyPaolo Vanacore 566/1539 Pagina 48 di 279
  49. 49. Essendo, ovviamente, il diagramma ER normalizzato, è stato necessario comprendereil significato delle tabelle osservandone il contenuto durante il funzionamento.A seguito di tale processo sono state individuate le seguenti tabelle dinteresse: • host – per conoscere gli host monitorati da Cacti e le relative informazioni; • poller_item – per conoscere, per ogni host, i dettagli delle interrogazioni effettuate. Tra le informazioni presenti vi sono: ◦ informazioni sul protocollo SNMP usato (versione, community name, eventuale password per la versione 3, porta, timeout per le richieste,...); ◦ informazioni circa RRDTool ed, in particolare, il pathname dellrrd dove vengono salvati i risultati dellinterrogazioni.Le due tabelle sono in relazione uno a molti e quindi, per ogni host possono esserci piùpoller_item.Laccesso ai dati degli rrd è basato, invece, sulluso dei file XML di dump.Tutti i dettagli circa laccesso ai dati vengono trattati nei successivi paragrafi. 4.2 Architettura generaleLarchitettura dellapplicazione realizzata può essere classificata come: Client/Servermulti-tier.Laccesso ai dati di monitoraggio è realizzato attraverso due componenti: • Data Server; • Data Client.Il Data Server, residente sul server di monitoraggio (dove è installato Cacti), offre duetipologie di servizi:Paolo Vanacore 566/1539 Pagina 49 di 279
  50. 50. • accesso ai dati del database di Cacti; • accesso agli rrd.Il Data Client è costituito da alcuni componenti per gestire la persistenza dei datidellapplicazione realizzata, attraverso interazione con uno o più Data Server.Al fine di offrire servizi di amministrazione del Data Client, questultimo è stato dotatodi un componente detto Admin Server.Per la presentazione dei dati e interfacce utente si è fatto uso di Servlet Java, pagineJSP e Java Beans, come spiegato nei successivi paragrafi.Uno schema che sintetizza larchitettura dellapplicazione è il seguente: GUI Servlet/JSP/Beans socket Amministrazione Admin Server Thread-safe Collections Data Client Accesso ai dati di monitoraggio socket Data ServerAd inizio paragrafo, larchitettura è stata definita come Client/Server multi-tier inquanto i componenti comunicano per mezzo di una logica Client/Server. Lunicaeccezione è linterazione tra lAdmin Server ed il Data Client che, attraverso CollezioniJava thread-safe, condividono le principali entità dellapplicazione.Paolo Vanacore 566/1539 Pagina 50 di 279
  51. 51. 4.3 Accesso ai dati di monitoraggioCome precedentemente accennato il Data Server risiede sulla stessa macchina dovèinstallato Cacti. Questo vincolo deriva dal fatto che il dump degli rrd in files XML èpossibile unicamente sulla stessa architettura dove sono stati creati.Il seguente schema riporta i processi di interazione tra i principali componentidesignati per laccesso ai dati di monitoraggio: WiFi Unina         SNMP   RRD Files Cacti Cacti DB     XML XML Dump Dump Files Files JDBC Dumper Parser SAX         Socket        Socket XML files,         DATA SERVER MySQL DB info DATA CLIENT Parser JDBC   Dom/XPath XML Config RRDB Files Fig. 4.3.1 – architettura modulare per laccesso ai dati di monitoraggioTale soluzione consente di avere: • uno o più server di monitoraggio; • gestione centralizzata dei dati dinteresse.Paolo Vanacore 566/1539 Pagina 51 di 279
  52. 52. 4.3.1 Server di monitoraggio: Il Data ServerIl Data Server è un server multithread, che risiedere su una macchina in cui è installatoCacti, che offre i seguenti servizi: • accesso ai dati del database di Cacti ed, in particolare, consente di conoscere: ◦ lista host (con specifica di hostname e descrizione) monitorati da Cacti; ◦ lista dei file rrd (pathname) associati ad un determinato host monitorato. Il servizio richiede la specifica di: hostname/ip dellhost. • accesso ai dati di uno specifico rrd ed, in particolare: ◦ invio di file XML ottenuti da dump di uno specifico rrd. Il servizio richiede la specifica di: pathname del file rrd. ◦ lettura di serie temporali parziali (sotto forma di (valore, data)) relative ad uno specifico DS, di un determinato RRA, contenuti in un file rrd. Tale servizio richiede la specifica di: ▪ pathname rrd; ▪ identificativo rra (nome della funzione di consolidamento); ▪ nome, univoco, del datasource; ▪ risoluzione dei dati ; ▪ tempo (Unix Epoch) a partire dal quale vengono estratti i dati.Per quanto riguarda laccesso al database MySQL di Cacti, viene utilizzato ilconnettore JDBC (Java Database Connectivity), mentre il dump dei file rrd vieneeseguito per mezzo di processi RRDTool.Il Data Server è inoltre configurabile tramite file XML per il quale viene utilizzato ilparser DOM (Document Object Model) ed istruzioni XPath (Xml Path language).Paolo Vanacore 566/1539 Pagina 52 di 279
  53. 53. Si riporta di seguito un contenuto desempio di un file di configurazione XML:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration SYSTEM "server_config.dtd"><!-- Configuration file for DataServer --><configuration> <!-- Listening port --> <serverPort>61000</serverPort> <!-- Pathname to RRDTool binary file --> <rrdtoolPath>/usr/bin/rrdtool</rrdtoolPath> <!-- Parametri per laccesso al db di cacti --> <cactiDb> <!-- Cacti db name --> <dbName>cacti</dbName> <!-- User name for cacti db --> <userName>user_name</userName> <!-- User Password for Cacti db --> <userPwd>user_password</userPwd> </cactiDb></configuration>Come si evince dal codice sopra riportato, è possibile impostare i seguenti parametri diconfigurazione: • numero porta della socket; • pathname al binario di RRDTool; • nome del database di Cacti; • nome utente per laccesso al database di Cacti; • password dellutente per laccesso al database di Cacti.Tutti i files XML utilizzati nellapplicazione vengono validati per mezzo di file DTD(Document Type Definition). Nel caso dei file XML ottenuti dal dump degli rrd, vieneutilizzato il DTD standard di RRDTool reperibile al seguente indirizzo:http://oss.oetiker.ch/rrdtool/rrdtool.dtd.Il processo di validazione viene eseguito sia per verificare che lXML rispetti unastruttura nota, sia, nel caso dei file di configurazione, per poter eseguire istruzioniXPath.Paolo Vanacore 566/1539 Pagina 53 di 279
  54. 54. Tutte le richieste e gran parte delle risposte vengono effettuate per mezzo di oggettiserializzati Java su Socket. Nel caso delle risposte vengono utilizzati anche stream dibyte per il trasferimento degli XML. 4.3.2 Il Data ClientPer quanto concerne il Data Client, gli aspetti di maggior rilevanza sono: • il parsing degli XML tramite SAX (Simple Api for Xml); • il database MySQL, denominato RRDB (Round Robin DataBase), per la persistenza dei dati; 4.3.2.1 Parsing di XML dump fileÈ stato scelto di utilizzare il parser SAX per i file di dump in quanto, questi ultimi,rispecchiano lintero contenuto dei file rrd contenendo, quindi, una grossa mole di dati(tutti gli rra per tutti i ds dellrrd).A differenza del parser DOM, che costruisce in memoria lintero albero del file XML,il parser SAX si basa sul paradigma ad eventi e design pattern OBSERVER. Peruna descrizione del pattern Observer si rimanda al paragrafo 4.5.2. In particolare, iprincipali eventi che, durante il parsing, vengono generati da SAX, sono i seguenti: • start element – evento generato alloccorrenza di un tag aperto; • characters – evento generato alloccorrenza di un valore compreso tra un tag di apertura ed uno di chiusura; • end element – evento generato alloccorrenza di un tag di chiusura.È stata quindi realizzata una classe, denominata “RRDAutomata” (fig. 4.3.2.1), cheviene registrata come listener del parser SAX.Paolo Vanacore 566/1539 Pagina 54 di 279
  55. 55. Fig. 4.3.2.1.1 – classe RRDAutomata per la rappresentazione in memoria degli rrdTale classe modellizza, nella logica, un automa a pila. Al fine di comprenderne ilfunzionamento si riporta un diagramma degli stati UML: Fig. 4.3.2.1.2 – statechart dellautoma a pila per il parsing degli XML ottenuti dal dump degli rrdPaolo Vanacore 566/1539 Pagina 55 di 279
  56. 56. Grazie alluso di uno stack di Object, la classe RRDAutomata, guidata dagli eventigenerati dal parser SAX, è in grado di ricostruire in memoria lesatta struttura dellrrdnel rispetto del seguente diagramma di classe: Fig. 4.3.2.1.3 – diagramma di classe UML per la rappresentazione in memoria degli rrd 4.3.2.2 Il database RRDBIn riferimento alla struttura dei files rrd, è opportuno, in tale contesto, tener presente iseguenti punti: • ogni rrd contiene uno o più archivi rra atti a tener traccia, per mezzo di un database round robin, dei dati monitorati riferiti ad un device; • per ogni rrd è definito un valore, in secondi, chiamato “step”. Tale valore definisce la frequenza di aggiornamento dellrrd; • per ogni rrd è definita una variabile, “lastupdate”, che indica la data dellultimo aggiornamento (nel formato Unix-epoch);Paolo Vanacore 566/1539 Pagina 56 di 279
  57. 57. • per ogni rra è definito un valore intero, chiamato “pdp_per_row”, che indica quanti aggiornamenti (letture del dato monitorato) concorrono allinserimento di un dato allinterno di un rra (per mezzo di una funzione di consolidamento); • altro dato importante in questo contesto è la costante “rows” definita per ogni rra. Tale valore indica il numero di righe del database mantenuto dallrra in esame.Ogni database round robin è quindi identificabile per mezzo della coppia:(nome_rrd, id_rra)Per questioni logiche e di miglior comprensione, essendo definita ununica funzione diconsolidamento (CF) per rra, ogni database viene identificato dalla coppia:(nome_rrd, id_cf).Per quanto riguarda il database realizzato per lapplicazione, denominato rrdb, la sceltadel DBMS è stata dettata sia dal tipo di licenza (GNU GPL), sotto la quale è distribuitoMySQL, sia perché esso è già in uso per il software di monitoraggio Cacti.Una problematica di rilievo che è stata affrontata riguarda la replicabilità della logicadi memorizzazione dei database Round Robin in un database di tipo relazionale.Di seguito vengono riportati i dettagli ritenuti di maggior rilievo.Nellimmagine a seguire si riporta una porzione del diagramma EER interessato da taleaspetto:Paolo Vanacore 566/1539 Pagina 57 di 279
  58. 58. Fig. 4.3.2.2.1 – porzione del diagramma EER relativo al database “rrdb” realizzato per lapplicazioneCome è stato descritto nei precedenti documenti, la logica di memorizzazione dei datiallinterno dei files di RRDTool, e più in generale di database Round Robin, è basatasu una struttura dati del tipo “vettore circolare”.E possibile adottare diverse tecniche per replicare il comportamento di un vettorecircolare in una base di dati relazionale. Una possibile soluzione, forse la più intuitivae performante, è quella di utilizzare un trigger con le seguenti caratteristiche: • Evento: inserimento di un nuovo record (nella tabella DATA del diagramma EER); • Condizione: la tabella (DATA) ha raggiunto il massimo numero di record memorizzabili (attributo “Rows” della tabella RRA); • Azione: cancellazione del record con data (attributo “Data_Time” della tabellaPaolo Vanacore 566/1539 Pagina 58 di 279
  59. 59. DATA) più vecchia.Purtroppo tale soluzione non è direttamente adottabile in MySQL (con lattuale vers.5.1.44 viene segnalato lerrore “1442”) in quanto non è possibile definire trigger in cuievento ed azione sono definiti su una stessa tabella (la tabella target deve differire dallatabella sorgente). Ovviamente per “azioni” sintende qualunque transizione che operisu record diversi da “NEW” ed “OLD”. Questa scelta progettuale ha il fine diprevenire possibili “cicli infiniti” che potrebbero scaturire da eventuali errori nelladefinizione di trigger di questo tipo. Evidentemente tale limitazione non è aggirabileattraverso luso di trigger annidati e/o viste modificabili.È da notare anche il mancato supporto di trigger con eventi del tipo “INSTEAD OF”,classici Oracle, che, con luso combinato di una tabella dappoggio, avrebbe risolto ilproblema.Una strategia alternativa potrebbe essere quella di spostare la responsabilità dieliminare il record “più vecchio”, sul client. In tal caso è opportuno rifiutareinserimenti di nuovi record qualora sia stato raggiunto il numero massimo. Rifiutarequeries di inserimento si traduce nella creazione di un trigger con le stessecaratteristiche di quello precedentemente definito, tranne che per lazione. In tal caso,infatti, lazione deve prevedere il lancio di uneccezione in caso di saturazione delnumero di record.Anche in questo caso la soluzione è stata scartata in quanto non vi è possibilità digenerare eccezioni in MySQL (è solo possibile catturarne).Tralasciando facili critiche si evidenzia la presenza, sul sito di MySQL (sez. bug), didiverse segnalazioni a tal proposito e, in riferimento alle azioni del tipo “INSTEADOF” ed alle eccezioni, è stato appurato che saranno features probabilmenteimplementate nelle prossime versioni.In attesa di nuovi rilasci è stata adottata una soluzione che, anche se funzionante, siauspica sia temporanea.Paolo Vanacore 566/1539 Pagina 59 di 279
  60. 60. La soluzione adottata prevede la definizione di una Stored Procedure (“insertData”)per linserimento di record nella tabella DATA. Tale procedura ha la responsabilità diinserire record nella tabella DATA e di verificare e mantenerne costante il numero direcord. Il client della base di dati, quindi, invece di utilizzare loperazione “INSERT”,per tale tabella, deve far uso di tale procedura.In caso di uso di “INSERT”, ed in condizione di tabella “piena”, si è ricorso ad un“trucco” di uso comune. In particolare, non potendo definire e lanciare eccezioni,viene richiamata una procedura inesistente. A seguito di tale chiamata, MySQL generauneccezione che informa dellinesistenza della procedura. Nonostante tale soluzionesia poco elegante e definibile “programmazione sporca”, essa consente di esulare ilclient da responsabilità che riguardano la logica interna della base di dati. Inoltre,tenuto conto della procedura realizzata che il client deve utilizzare, si ritiene che ilrisultato complessivo sia soddisfacente.Per completezza si segnala che, al fine di generare eccezioni in MySQL, un altro“trucco” di uso comune è quello di violare qualche vincolo di integrità. 4.4 Logica di controllo per la gestione dei datiGli aspetti riguardanti la logica di controllo ritenuti di maggior rilievo sono: • amministrazione dei dati; • temporizzazione delle letture degli rrd; • i Monitor ed i Report Statistici.Il componente designato allamministrazione è lAdmin Server. Tale componenteinteragisce in maniera stretta con il Data Client. In particolare persiste una relazione diuno a uno.Paolo Vanacore 566/1539 Pagina 60 di 279
  61. 61. Accesso ai Dati di MonitoraggioCacti Cacti Cacti Cacti Cacti Cacti DB DBDB RRD Files RRD Files RRD Files Data Server Data Server Data Server RRDB Data Client Admin Server Fig. 4.4.1 – Data Client ed Admin Server per la gestione della logica di controllo nella gestione dei dati 4.4.1 Servizi di amministrazione dei datiI servizi di amministrazione, che lAdmin Server offre per mezzo di socket, sono iseguenti: • gestione della lista di Data Server poiché ogni Data Client può accedere a più server di monitoraggio, lAdmin Server consente di conoscere e gestire la lista di tali server. La gestione della lista comprende le seguenti, possibili, azioni: ◦ lettura; ◦ aggiunta;Paolo Vanacore 566/1539 Pagina 61 di 279

×