MULTI
MRTG = ROUTER
TRAFFIC
GRAPHER
MRTG
• Strumento che serve a monitorare il carico di
traffico esistente sui link di una rete  traffico di
dati “passanti” per uno o più router
• Genera pagine HTML contenenti immagini
grafiche che forniscono una rappresentazione
visiva “LIVE” di tale traffico.
• Basato sui linguaggi perl e C e gira sotto UNIX/
LINUX, WINDOWS e MAC OS
UN PO’ DI STORIA
• Implementato per la prima volta nel ’94
unicamente in perl  difetto lentezza
• Riscrittura nel ’96 di alcune parti in C 
aumento della velocità di 40 volte
• Successive modifiche degli utenti grazie
alla disponibilità del codice sorgente 
MRTG è soggetto alla GNU GPL
GNU GPL (General Public
License)
Pubblicata dalla Free Software Foundation 
programmi “free” o “open source”:
–
–
–
FREE come LIBERTA’ di: copiare, modificare, ridistribuire dichiarando
il proprio operato in modo da evitare perdite di reputazione
L’unico prezzo che può esser fatto pagare è quello inerente ai costi di
distribuzione fisica
OPEN SOURCE significa che il codice sorgente è aperto a tutti coloro
che vogliono contribuire a migliorare il programma o che vogliono
riutilizzarlo, anche in parte, per implementare un altro programma,
anch’esso soggetto a GPL  parti di “codice free” non possono infatti
essere inclusi in “programmi proprietari”.
MRTG: struttura
MRTG consiste essenzialmente in:
1) un programma principale in C che si occupa:
- del “logging” (tenere traccia) del traffico monitorato
- della creazione dei grafici rappresentanti il traffico
stesso
Grazie al C tutto questo avviene in maniera molto
efficiente (maggiore velocità rispetto al perl)
2) script perl eseguiti dal programma principale: grazie a
loro (tramite il protocollo SNMP) è possibile eseguire
delle query verso il nodo da monitorare e leggere ad
esempio i contatori di traffico di un router
MRTG: componenti necessari
Per poter funzionare MRTG ha bisogno di:
I.
un interprete del perl e l’interprete GNU per C (GCC), se non è già
installato
II.
tre pacchetti di librerie:
1) GD
2) LIBPNG
3) ZLIB
III. i file di installazione di MRTG
IV. (un manager e) uno o più agent SNMP
V.
un webserver
MRTG: componenti necessari
I.
Un interprete del perl e un interprete
GNU per C (GCC) :

l’interprete perl è disponibile liberamente
all’indirizzo http://www.activeperl.com (l’eseguibile
che ad es. possiamo scaricare è “APi522e.exe”)

per le macchine UNIX/LINUX occorre un interprete
per C detto GCC che di solito è già compreso nelle
diverse distribuzioni LINUX, comunque liberamente
scaricabile
MRTG: componenti necessari
II. tre pacchetti di librerie:
1) GD come libreria grafica di base
2) la libreria LIBPNG (richiesta dalla GD) per la creazione di
files.png
3) ZLIB (richiesta a sua volta da LIBPNG) che serve alla
compressione dei file di immagine
Per poter creare e gestire i grafici queste librerie devono essere
installate perciò nell’ordine inverso 3), 2), 1) prima che venga
installato MRTG: così facendo i grafici saranno generati direttamente
nel formato PNG-8 (molto simile al formato GIF e supportato da quasi
tutti i browser) tramite GD (pacchetto di libreria grafica che crea anche
immagini GIF o JPEG)
MRTG: componenti necessari
III. I file di installazione di MRTG
l’ URL di riferimento per il free downolad è:
http://people.ee.ethz.ch/~oetiker/webtools/mrtg/pub
MRTG: componenti necessari
IV. (Un manager e) uno o più agent SNMP:
SNMP = Simple Network Management Protocol:
l’architettura dell’SNMP è di tipo client-server e comprende quindi
due elementi:
1) l’AGENT (server):
programma in esecuzione in ognuno dei nodi della rete che
devono essere monitorati: solitamente gli agent SNMP di un
apparato di rete sono implementati nel firmware dello stesso,
infatti gli SNMP agent sono in funzione sui device di rete: gli
oggetti gestiti dagli agent, sono raccolti, in ogni device, in un
database chiamato MIB (Management Information Base)
2) il MANAGER (client)(MRTG):
programma in esecuzione sulla macchina che controlla il traffico
 può decidere quali parametri della/e MIB monitorare e può
effettuare interrogazioni  communities private e pubbliche …
MRTG: componenti necessari
IV. (Continua …)
 L’utente della macchina client, dove risiede il manager SNMP, a
seconda dei diritti che possiede può avere una o due password
dette “communities” che possono essere pubblica o privata: la
prima (default: “public”) permette solo di interrogare la/e MIB e
l’altra (default: ”private”) di poter anche settare il numero e il
tipo delle variabili da monitorare relative alle macchine sulle quali
è attivo un agent SNMP.
 La Management Station interroga gli agent SNMP i quali inviano
le informazioni richieste. Gli oggetti gestiti dagli agent, sono
raccolti, in ogni device (scheda di rete), in un database chiamato
MIB (Management Information Base): esso contiene i parametri
che possono essere tenuti sotto osservazione (anche ad es.
quelli relativi ai vari protocolli utilizzati dalla macchina
monitorata)
MRTG: componenti necessari
IV. (Continua …)
All'interno di ogni MIB gli oggetti sono suddivisi in categorie, in
particolare:
- System: contiene informazioni di carattere generale sul device di
rete;
- Interfaces: contiene le informazioni relative alle interfacce di rete;
- Address Translation: contiene informazioni relative alla
conversioni degli indirizzi (Es. da logico a fisico), esiste per
compatibilà con MIB-I;
- Ip: contiene informazioni relative al protocollo IP;
- Icmp: contiene informazioni relative al protocollo ICMP;
- Tcp: contiene informazioni relative al protocollo TCP. Gli oggetti di
questo gruppo esistono solo per la durate della sessione TCP;
- Udp: contiene informazioni relative al protocollo UDP;
- Egp: contiene informazioni relative al protocollo EGP (protocollo
utilizzato da un router per scambiare informazioni tra Autonomous
System);
- Transmission: sperimentale, contiene informazione sui mezzi
trasmissione utilizzato da ogni interfaccia di rete ;
- Snmp: contiene informazioni relative al protocollo SNMP.
MRTG: componenti necessari
V. Un webserver :
- ha il compito di visualizzare tramite un qualunque
browser i grafici ottenuti
- deve essere installato e configurato sulla macchina
client SNMP
sul sito ufficiale di MRTG è consigliato l’Apache:
(www.apache.org)
MRTG: come funziona
Concettualmente, MRTG interroga uno o più server
SNMP per ricavarne le grandezze che indicano il traffico
(tipicamente i contatori di pacchetto delle schede di
rete).
MRTG permette non solo di monitorare il traffico ma
anche di monitorare una qualsiasi variabile a scelta,
anche non presente all’interno del database MIB,
utilizzando in quest’ultimo caso un programma esterno
per raccogliere i dati relativi ai parametri che vogliono
essere monitorati:
questo sottolinea la grande espansibilità di questo
programma.
MRTG: come funziona
MRTG permette, tramite una comoda interfaccia
web (browser), di mostrare l’evoluzione storica
(grafici) di una qualsiasi risorsa, quali il carico di
lavoro di una CPU, l’occupazione di un disco, il
numero di processi o di utenti di una data
macchina, ecc.
Il server da interrogare deve avere il servizio
(agent) SNMP attivo per accettare ed eseguire
interrogazioni esterne, mentre il client deve
disporre di un server web che visualizzi i grafici
ottenuti tramite le interrogazioni effettuate (con il
manager SNMP che in questo caso è l’MRTG
stesso).
MRTG: come funziona
MRTG crea grafici relativi a:
una vista giornaliera dettagliata
traffico osservato negli ultimi 7 giorni
traffico osservato nelle ultime 5 settimane
traffico osservato negli ultimi 12 mesi
MRTG mantiene un log di tutti i dati che estrae e
gestisce i dati efficientemente tramite un database
per ogni parametro osservato: ogni database è
automaticamente consolidato in modo da contenere
i dati rilevanti per tutti i traffici osservati senza mai
intasare il disco poiché più passa il tempo e più si
perde dettaglio.
MRTG: come funziona
Poiché si possono monitorare più di 200 nodi contemporaneamente, MRTG
utilizza l’UDP (User Datagram Protocol) in modo da ottenere migliori
performance (in particolare viene utilizzata la porta UDP 161 per le
interrogazioni e le risposte, e la porta UDP 162 come destinazione dei
messaggi trap SNMP generate dagli agent SNMP).
possibilità di perdite di pacchetti per diversi motivi:
- per elevata congestione
- per router che non riescono a smaltire le troppe richieste
- per buffer in overflow
- problemi di telecomunicazione, ecc. …
Alle perdite di dati MRTG può ovviare in due modi:
1) viene attivata l’opzione “unknaszero”, viene cioè preso come valore il
valore di default, che è zero  linea verticale sul grafico
2) non viene attivata “unknaszero”  MRTG farà una stima basata
sull’ultima risposta ricevuta che si presume sia più prossima alla realtà
rispetto allo zero, soprattutto se il livello di congestione non è
eccessivamente elevato:
questo eviterà interruzioni nette nell’andamento del grafico.
MRTG: come funziona
MRTG consente inoltre di stabilire delle soglie di allarme
per qualsiasi parametro posto sotto controllo, al cui
superamento possono farsi corrispondere delle azioni di
“problem notify/solve” automatiche (invio di e-mail di
avviso, avvio di procedure di protezione, ecc.) (trap)
All’uopo è stato quindi prodotto un set di files di
configurazione di MRTG e di script di controllo relativi a
tutti i parametri più importanti che si vogliono controllare:
carico CPU, spazio disco occupato/disponibile, numero
di utenti/processi, memoria occupata/disponibile, traffico
di rete in entrata ed in uscita attraverso la scheda di rete
di un nodo, uno switch o un router, latenza di rete (RTT)
ai capi di una connessione punto-punto
MRTG: i files di configurazione
Ad ogni nodo da osservare corrisponde un
file di configurazione creato tramite l’utility
“cfgmaker” fornita da MRTG stesso:
cfgmaker permette una configurazione
automatizzata dei parametri:
MRTG: i files di configurazione





Tipicamente, in un file di configurazione sono specificate:
la directory che MRTG deve utilizzare per organizzare i log
il formato (struttura) del log (ad es. RRDTOOL)
la directory dove mantenere i grafici
le impostazioni dell’intervallo di tempo che deve
trascorrere tra una “chiamata” e l’altra del programma
alle quali seguiranno gli aggiornamenti dei grafici:
l’intervallo è di default 5 minuti, ma l’organizzazione dati
fornita dall’RRDTOOL permette di abbassarlo fino a meno
di 1 minuto (“crontab”)
altre opzioni (come ad es. la lingua utilizzata)
MRTG: l’index-maker
L’INDEX-MAKER è un altro “tool” che ci
fornisce MRTG:
esso serve alla creazione della home page
creando dei links che permettono di
visualizzare, tramite il server web presente
nella “macchina osservatrice”, i grafici relativi
ai diversi parametri (di una o più macchine)
che devono essere monitorati.
MRTG: installazione
I passi principali generici di installazione in ordine sequenziale sono:
1)
2)
3)
3)
4)
5)
6)
installazione di un interprete perl (e del GCC:http://gcc.gnu.org/);
Installazione (con successiva configurazione) di un server web (apache)
installazione delle librerie grafiche:
(http://libpng.sourceforge.net/) per scaricare libpng
(http://www.zlib.net) per scaricare gzip
(http://www.boutell.com/gd/) per scaricare GD
installazione di MRTG;
installazione delle componenti SNMP (gli agent sono di solito già
implementati nei device di rete);
customizzazione dei files di configurazione tramite cfgmaker sia nel/nei
server sia nel client SNMP;
creazione dell’home page con i link relativi al/i router, con i diversi parametri
da monitorare, tramite l’index-maker.
Dopo questi steps dovremmo essere in grado di eseguire MRTG;
l’installazione comunque non è delle più semplici anche perché è
soggetta a delle varianti a seconda del sistema operativo che
utilizziamo nelle macchine che costituiscono il nostro sistema di
“monitoraggio”.
MRTG: installazione
Il sito ufficiale dell’MRTG è abbastanza
dettagliato e offre buona assistenza a chi voglia
installare questo programma sotto UNIX/LINUX
(compilando sia da sorgenti sia da rpm con la
Red Hat), mentre l’assistenza è scarsa per
Windows (esiste infatti una versione apposita del
programma per Windows (PRTG))
L’URL del sito ufficiale è:
www.mrtg.org
MRTG: installazione
Se invece si utilizza il mac OS occorre:
1. Installare i developer tools:
http://developer.apple.com/tools/
2. Scaricare e installare il sw snmp-agent-NET-SNMP
3. Scaricare e installare le librerie grafiche: al posto
della zlib è richiesta la jpeg-6b
(ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz )
4. Scaricare e installare MRTG
(http://www.mosxsw.com/port/mrtg/mrtg-2.9.4-mosx.tgz)
…
THE
END
Scarica

mrtg