Mrtg: monitoriamo la banda: differenze tra le versioni

m
Riga 1: Riga 1:
In questo articolo vedremo come attivare il supporto per le quote.
==Introduzione==
Nell'esempio supporr� che /home sia montato su /dev/hda5.


== Introduzione ==
Spesso è utile monitorare la banda utilizzata da un server (od anche da un computer), per vedere se sono presenti anomalie, per vedere l'andamento del traffico, etc...
'''A cosa servono le quote?''' Servono a limitare lo spazio di disco che gli utenti possono utilizzare.
MRTG (Multi Router Traffic Grapher: http://www.mrtg.org/) ci viene in aiuto, permettendoci di monitorare efficacemente la banda utilizzata tramite dei comodissimi grafici.
Nel caso di sistemi con pi� utenti, il loro utilizzo � utile perch� permette di impedire che pochi utenti occupino tutto lo spazio disponibile, a discapito degli altri.
Vediamo come installarlo e configurarlo in Debian.
Le quote possono servire per impostare la dimensione massima che un utente pu� utilizzare, e per impostare il numero massimo di file (inodes) che pu� salvare. Questo perch� anche i file vuoti occupano spazio su disco.
La macchina usata per le prove monta Debian Sarge.


== Requisiti ==
==Installazione==
Per prima cosa occorre che il kernel abbia il supporto per le quote. I kernel precompilati hanno tale supporto.
Se invece state usando un kernel compilato da voi, assicuratevi di aver incluso il supporto alle quote.


Per installare mrtg, è sufficiente dare il seguente comando:
<pre>
# apt-get install mrtg mrtg-contrib librrds-perl snmpd snmp
</pre>


== Modificare /etc/fstab ==
Oltre a mrtg, verrà installato il server snmpd ed il suo client.
Per prima cosa dobbiamo abilitare le quote sul filesystem che ci interessa (solitamente si attivano sulla partizione che contiene le cartelle home).


  /dev/hda5      /home          ext3      defaults,usrquota,grpquota        0      2


'''usrquota''' attiva le quote per gli utenti e '''grpquota''' le attiva per i gruppi.
==Configurazione==


Per rendere attive la nuova configurazione, dobbiamo smontare e rimontare il filesystem.
La configurazione può sembrare un po' 'articolata' e 'difficile', ma non è così...
  umount /home
Procediamo per passi:
  mount /home


Non sar� possibile smontare il filesystem se ci sono file aperti che si trovano in quel filesystem.
===Snmpd===


Dobbiamo configurare il server SNMP, permettendone l'accesso il lettura al computer che esegue mrtg (nel nostro caso 127.0.0.1).
Per fare questo, modifichiamo il file '''/etc/snmp/snmpd.conf''' con il nostro editor di testo preferito, e facciamo in modo che le righe:
<pre>
com2sec paranoid  default        public
#com2sec readonly  default        public
#com2sec readwrite default        private
</pre>
diventino:
<pre>
#com2sec paranoid  default        public
com2sec  readonly  127.0.0.1      public
#com2sec readwrite default        private
</pre>


== Attivare le quote ==
Una volta salvato il tutto, riavviamo snmpd con un semplice:
<pre>
# /etc/init.d/snmpd restart (oppure reload)
</pre>




== Impostare le quote per un utente ==
===Mrtg===
Per impostare la quota di un utente, bisogna dare il comando (username va sostituito con il nome dell'utente):
  edquota username


Si aprir� il vostro editor predefinito, che mostrer� una schermata simile a questa:
Per la configurazione di MRTG possiamo scegliere due vie: quella automatizzata, che consiglio, e quella un po' più manuale (che analizzeremo ed invito a leggere, così per capire un po' di più come funziona MRTG).
  Disk quotas for user user (uid 1000):
  Filesystem                  blocks      soft      hard    inodes    soft    hard
  /dev/hda5                      1848      49600      50000        244        0        0


La prima cifra indica i blocchi attualmente in uso da parte dell'utente.
La seconda indica il limite soft espresso in blocchi; e la terza il limite hard, sempre espresso in blocchi.


La quarta cifra indica il numero di inodes utilizzati dall'utente, e le successive due sono i limiti soft e hard sugli inode.
====Configurazione Automatizzata====
Le modifiche effettuate vengono controllate quando si chiude l'editor. In caso abbiate commesso qualche errore vi verr� segnalato.
Per creare il file di configurazione mrtg.conf ci viene in aiuto cfgmaker, che ha proprio questa funzione.
Lo utilizzeremo con la sua sintassi base, visto che non abbiamo particolari esigenze.
Prima di generarlo, però, è utile modificare il file '''/etc/snmpd/snmpd.local.conf''' (che viene letto prima di '''/etc/snmpd/snmpd.conf'''), per personalizzare un po' il server: modifichiamo il file '''/etc/snmpd/snmpd.local.conf''' con il nostro editor preferito, rendendolo simile a questo:
<pre>
# Il nome del Server
sysname Spirit


# La descrizione della macchina
sysdescr MaXeR's Server


== Impostare le quote per tutti gli utenti ==
# La locazione della macchina
Dopo aver impostato la quota di un utente, se volessimo usare le stesse impostazioni per altri utenti, sarebbe sufficiente scrivere:
syslocation Verona


  edquota -p user gianni
# Chi è il responsabile
syscontact MaXeR <maxer@knio.it>
</pre>


Tale comando copier le impostazioni sulla quota di user e le utilizzer anche per l'utente gianni.


Il comando per generare il file di configurazione di mrtg è il seguente:
<pre>
# cfgmaker public@localhost --output=/etc/mrtg.cfg
</pre>


[[Categoria: Sistema]]
 
Le opzioni più interessanti sono (degne di nota...):<br/>
; --enable-ipv6 : che abilita l'ipv6<br/>
; --output <file> : che redirige l'output su un file, al posto dello STDOUT.
 
Il programma genera un file (l'output del comando è allegato nel file 'cfgmaker'), contenente la configurazione (diviso, per la precisione in due parti: la prima con le impostazioni generali e la seconda con quelle specifiche per ogni interfacia).
Le impostazioni specifiche per ogni interfaccia sono quelle che ci interessano: alcune sono già decommentate (di norma quelle relative alle schede di rete), ed altre sono disattivate, con la motivazione riportata nei commenti a quel blocco.
Prendiamo in esame l'interfaccia ppp0.
Per renderla operativa decommentiamola ed effettuiamo delle sostituzioni. Quella sezione dovrebbe diventare simile a quella contenuta nell'allegato 'mrtg_ppp0' (in cui le parti modificate sono racchiuse tra 2 '##').
 
Una sostituzione che potrebbe creare problemi è la velocità dell'interfaccia. In realtà si tratta di una semplice conversione:
<pre>
velocità_in_Kbit/sec * 1000 / 8 = Velocità_in_Byte/sec
</pre>
 
Ecco una tabellina delle velocità più comuni:
<pre>
------------------------------------------
|  Kbit  |  Byte    |  Descrizione  |
|      56  |      7000 | DialUp 56K      |
|      64  |      8000 | ISDN            |
|    128  |    16000 | ISDN Dual      |
|    320  |    40000 | ADSL 320        |
|    640  |    80000 | ADSL 640        |
|    1000  |    125000 | 1 Mbit          |
|    1280  |    160000 | ADSL 1280      |
|    2000  |    250000 | FastWeb 2Mbit  |
|    2560  |    320000 | ADSL 2560      |
|    4000  |    500000 | FastWeb 4Mbit  |
|  10000  |  1250000 | 10Mbit          |
|  100000  |  12500000 | 100Mbit        |
| 1000000  | 125000000 | 1Gbit          |
------------------------------------------
</pre>
 
====Configurazione Manuale====
La configurazione manuale è un po' più complessa (o forse macchinosa), analizziamola!
 
Per creare il file di configurazione di mrtg, dobbiamo sapere quali interfacce sono presenti sulla nostra macchina.
Per fare questo usiamo il comando
<pre>
# snmpwalk -v 1 -c public localhost interfaces.ifTable.ifEntry.ifDescr
</pre>
 
Si riceverà un output simile a questo:
<pre>
IF-MIB::ifDescr.1 = STRING: bond0
IF-MIB::ifDescr.2 = STRING: lo
IF-MIB::ifDescr.3 = STRING: shaper0
IF-MIB::ifDescr.4 = STRING: dummy0
IF-MIB::ifDescr.5 = STRING: eth0
IF-MIB::ifDescr.6 = STRING: eth1
IF-MIB::ifDescr.7 = STRING: teql0
IF-MIB::ifDescr.8 = STRING: tunl0
IF-MIB::ifDescr.9 = STRING: gre0
IF-MIB::ifDescr.10 = STRING: sit0
IF-MIB::ifDescr.11 = STRING: ppp0
</pre>
 
Leggendolo dobbiamo annotarci i numeri riferiti alle interfacce che vogliamo prendere in considerazione.
ppp0, ad esempio, è associata al numero 11.
 
Possiamo, quindi, procedere a creare il nostro file di configurazione, completando lo schema presente nell'allegato 'mrtg_es', avendo cura di sostituire ad '______' i dati in nostro possesso. Ricordiamoci, inoltre, di inserire all'inizio del file le opzioni di carattere generale:
<pre>
WorkDir: /var/www/mrtg
EnableIPv6: no
</pre>
 
Una volta terminata la scrittura del file di configurazione, è possibile controllarne l'esattezza con un
<pre>
# mrtg --check <config_file>
</pre>
 
===Apache===
 
Ipotizziamo Apache già installato e configurato per avere la propria root in '''/var/www'''.
 
Controlliamo l'esistenza della directory indicata nel file di configurazione precedentemente creato: /var/www/mrtg, altrimenti creiamola ed impostiamo i permessi:
<pre>
# chown root:root /var/www/mrtg
# chmod 755 /var/www/mrtg
</pre>
 
Mrtg si occupa di inserire immagini e pagine html nella directory specificata nel file di configurazione.
Volendo, possiamo creare una pagina index.html, così da offrire una visuale generale del traffico (e rendendo più elegante e comoda la consultazione).
Un semplice
<pre>
# indexmaker --clicktext --title="Spirit MRTG" --output=index.html /etc/mrtg.cfg
</pre>
 
è sufficiente per creare una homepage di introduzione che si deve trovare all'interno della cartella mrtg.
 
Riporto alcune delle opzioni più importanti:<br/>
; --clicktext : rende clickabile anche la descrizione dei grafici<br/>
;--title str : Imposta il titolo della pagina<br/>
;--output file : Scrive su 'file' al posto di riversare il contenuto sullo STDOUT<br/>
;--show=str : Imposta che immagine mostrare (posibili opzioni: day, week, month, year, none)<br/>
 
==Conclusioni==
 
Mrtg è un ottimo tool, che offre dei risultati molto semplici da interpretare quando preziosi.
Lo ritengo indispensabile, sia sui server, sia sui computer desktop con un accesso ad internet fisso (ADSL o simili).
 
 
---- [[User:MaXeR|MaXeR]]
[[Categoria:Server]][[Categoria:Networking]][[Categoria:Sicurezza]]
5

contributi