E N D
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: • 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: • 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 • 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 graficiqueste 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: • 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) ilMANAGER(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: • 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: • Installare i developer tools: http://developer.apple.com/tools/ • Scaricare e installare il sw snmp-agent-NET-SNMP • Scaricare e installare le librerie grafiche: al posto della zlib è richiesta la jpeg-6b (ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz ) • Scaricare e installare MRTG (http://www.mosxsw.com/port/mrtg/mrtg-2.9.4-mosx.tgz) …
THE END