Mrtg: monitoriamo la banda: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
m (versioni compatibili)
 
(14 versioni intermedie di 7 utenti non mostrate)
Riga 1: Riga 1:
==Prefazione==
{{Versioni compatibili|Jessie|Stretch|Buster}}
==Introduzione==


Questa � una guida introduttiva all'uso del cellulare come modem bluetooth.
Spesso è utile monitorare la banda utilizzata da un server (o anche da un computer), per vedere se sono presenti anomalie, verificare l'andamento del traffico, etc.
MRTG (Multi Router Traffic Grapher: http://www.mrtg.org/) ci viene in aiuto, permettendoci di monitorare efficacemente la banda utilizzata tramite dei comodissimi grafici.
Vediamo come installarlo e configurarlo in Debian.
La macchina usata per le prove monta Debian Sarge.


Tale guida � utilizzabile anche per altri sistemi operativi (oltre Debian) dotati di kernel Linux.
==Installazione==


I file che per essere editati necessitino dei privilegi di root, possono essere aperti (conoscendo la password) con il seguente comando:
Per installare mrtg, è sufficiente dare il seguente comando:
<pre>
# apt-get install mrtg mrtg-contrib librrds-perl snmpd snmp
</pre>


<pre>su -c "gedit nome_del_file_da_editare"</pre> su GNOME, e
Oltre a mrtg, verrà installato il server snmpd ed il suo client.
<pre>su -c "kwrite nome_del_file_da_editare"</pre> su KDE.




In alternativa al comando su, � possibile usare sudo (appositamente configurato).
==Configurazione==


==Software necessario==
La configurazione può sembrare un po' 'articolata' e 'difficile', ma non è così.
Procediamo per gradi:


Per l'utilizzo di un dispositivo bluetooth � necessario installare "The official Linux Bluetooth protocol stack", cio� BlueZ.
===Snmpd===
Successivamente bisognerebbe abilitare, anche, il supporto al Point-to-Point Protocol, pi� genericamente conosciuto come PPP, nel kernel. Ma di solito lo � gi� di default.


===Sorgenti===
Dobbiamo configurare il server SNMP, permettendone l'accesso il lettura al computer che esegue mrtg (nel nostro caso 127.0.0.1).
:I sorgenti sono scaricabili come tarball sul sito http://www.bluez.org/download.html.
Per fare questo, modifichiamo il file <code>'''/etc/snmp/snmpd.conf'''</code> con il nostro editor di testo preferito, e facciamo in modo che le righe:
===Pacchetti===
<pre>
:I pacchetti delle blueZ dovrebbero essere contenuti nei cd/dvd della distribuzione, tuttavia - se cos� non fosse - sono scaricabili (per Debian GNU/Linux) all'indirizzo http://packages.debian.org/stable/admin/bluez-utils.
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>


:Installare anche il pacchetto ppp, che contiene gli script "pon" e "poff".
Una volta salvato il tutto, riavviamo snmpd con un semplice:
<pre>
# /etc/init.d/snmpd restart (oppure reload)
</pre>


==Configurare il bluetooth==
Per permettere la comunicazione tra il Pc e il Cellulare necessario accoppiare i due dispositivi. Durante questa fase richiesto:
*Un pin;
*Il MAC Address del dispositivo bluetooth;
*I parametri forniti dal provider;


===Mrtg===


'''Nota bene:''' per utilizzare il bluetooth pu� essere necessario avviare il demone hcid. Col comando:
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).
<pre># /usr/sbin/hcid</pre>
ed � buona norma farlo fare in automatico al boot.
La maggior parte delle distribuzioni, comunque, lo lanciano automaticamente una volta installati i pacchetti inerenti il bluetooth.


===Il file "etc/bluetooth/pin"===
Le BlueZ-utils permettono di impostare il pin attrverso il file di configurazione "/etc/bluetooth/pin"


Credo che il file pin nelle ultime versioni sia stato eliminato, giacch� il pin � configurabile anche nel file /etc/bluetooth/hcid.conf sotto la voce di "passkey"; come mostrato nell'esempio sottostante.
====Configurazione Automatizzata====
<pre>options {
Per creare il file di configurazione <code>mrtg.conf</code> ci viene in aiuto cfgmaker, che ha proprio questa funzione.
  # ...
Lo utilizzeremo con la sua sintassi base, visto che non abbiamo particolari esigenze.
  # tutte le opzioni...
Prima di generarlo, però, è utile modificare il file <code>'''/etc/snmpd/snmpd.local.conf'''</code> (che viene letto prima di <code>'''/etc/snmpd/snmpd.conf'''</code>), per personalizzare un po' il server: modifichiamo il file <code>'''/etc/snmpd/snmpd.local.conf'''</code> con il nostro editor preferito, rendendolo simile a questo:
  # ...
<pre>
  passkey "1234";
# Il nome del Server
}</pre>
sysname Spirit


In alternativa, al file pin o hcid.conf, si pu� gestire il pin con delle utility grafiche. Da segnalare � bluez-gnome (per chi usa GNOME) o kdebluetooth (per chi utilizza KDE).
# La descrizione della macchina
sysdescr MaXeR's Server


{{Box | Come scelgo il pin? |Il pin pu� essere scelto a picere, purch� durante l'accoppiamento col pc - sul cellulare - si inserisca il pin specificato all'interno del file "/etc/bluetooth/pin" o nella maschera grafica di bluez-gnome (o kdebluetooth)}}
# La locazione della macchina
syslocation Verona


===Il MAC Address===
# Chi è il responsabile
Per accoppiare il cellulare bisogna essere a conoscenza del MAC Address. Per fare ci� si pu� usare il comando '''hcitool''' con il parametro '''scan'''
syscontact MaXeR <maxer@knio.it>
</pre>


<pre># hcitool scan</pre>
L'output del comando dovrebbe risultare simile a questo riportato di seguito
<pre>04:F0:65:92:A5:BE    NomeCellulare</pre>


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


Editare il file "/etc/bluetooth/rfcomm.conf" come segue:


<pre>rfcomm0 {
Le opzioni più interessanti sono (degne di nota):<br/>
  bind yes;
; <code>--enable-ipv6</code> : che abilita l'ipv6<br/>;
  device 04:F0:65:92:A5:BE;
; <code>--output <file></code> : che redirige l'output su un file, al posto dello STDOUT.
  channel 1;
}</pre>
dove l'indirizzo che succede alla voce device � l'indirizzo MAC, precedentemente ricavato grazie a hctool.


� ora di procedere alla creazione del device /dev/rfcomm0 e alla procedura di accoppiamento.
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 interfaccia).
Per fare ci� baster� eseguire il comando:
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.
<pre># rfcomm bind 0 04:F0:65:92:A5:BE 1</pre> che creer� /dev/rfcomm0 e successivamente si potr� procedere all'associazione dei dispositivi dal cellulare, oppure dal pc col comando:
Prendiamo in esame l'interfaccia ppp0.
<pre>rfcomm connect 0 04:F0:65:92:A5:BE 1</pre>
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 '##').


==Gli script per la connessione==
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>


Gli script di connessione sono rilasciati assieme a i parametri relativi ai maggiori gestori di telefonia mobile.
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>


===Il file "/etc/chatscripts/provider"===
====Configurazione Manuale====
La configurazione manuale è un po' più complessa (o forse macchinosa): analizziamola.


Bisogna editare il file /etc/chatscripts/provider come segue:
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>


<pre>ABORT BUSY
Si riceverà un output simile a questo:
ABORT 'NO CARRIER'
<pre>
ABORT VOICE
IF-MIB::ifDescr.1 = STRING: bond0
ABORT 'NO DIALTONE'
IF-MIB::ifDescr.2 = STRING: lo
ABORT 'NO DIAL TONE'
IF-MIB::ifDescr.3 = STRING: shaper0
ABORT 'NO ANSWER'
IF-MIB::ifDescr.4 = STRING: dummy0
ABORT DELAYED
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>


'' ATZ
Leggendolo dobbiamo annotarci i numeri riferiti alle interfacce che vogliamo prendere in considerazione.
ppp0, ad esempio, è associata al numero 11.


#Scegliere la riga corrispondente il proprio provider
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:
#Per vodafone
<pre>
OK-AT-OK AT+CGDCONT=1,"IP","web.omnitel.it"
WorkDir: /var/www/mrtg
#Per wind
EnableIPv6: no
OK-AT-OK AT+CGDCONT=1,"IP","internet.wind"
</pre>
#Per tim
OK-AT-OK AT+CGDCONT=1,"IP","ibox.tim.it"
#Per 3HG
OK-AT-OK AT+CGDCONT=1,"IP","tre.it"
#Per 3HG con promozione NAVIGA3
OK-AT-OK AT+CGDCONT=1,"IP","naviga.tre.it"


OK-AT-OK ATDT_numero_
Una volta terminata la scrittura del file di configurazione, è possibile controllarne l'esattezza con un:
<pre>
# mrtg --check <config_file>
</pre>


CONNECT ''</pre> e al posto di _numero_ va inserito il numero di telefono corrispondente alla marca del proprio cellulare:
===Apache===


<pre>Numeri: Nokia e Motorola: *99#
Ipotizziamo Apache già installato e configurato per avere la propria root in <code>'''/var/www'''</code>.
Siemens, Sharp e Panasonic: *99***1#
Samsung: *99***1*#
Ericsson e SonyEricsson *99***CID# (CID = N� profilo GPRS)
Altri: *99#</pre>


{{Box | ESEMPIO:|Con un Nokia la stringa col numero sar�: '''OK-AT-OK ATDT*99#'''}}
Controlliamo l'esistenza della directory indicata nel file di configurazione precedentemente creato: <code>/var/www/mrtg</code>, altrimenti creiamola ed impostiamo i permessi:
<pre>
# chown root:root /var/www/mrtg
# chmod 755 /var/www/mrtg
</pre>


===Il file "/etc/ppp/peers/provider"===
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>


Bisogna editare il file /etc/ppp/peers/provider come segue:
è sufficiente per creare una homepage di introduzione che si deve trovare all'interno della cartella mrtg.


<pre>noauth
Riporto alcune delle opzioni più importanti:<br/>
connect "/usr/sbin/chat -v -f /etc/chatscripts/provider"
; <code>--clicktext</code>: rende clickabile anche la descrizione dei grafici<br/>
/dev/rfcomm0
; <code>--title str</code>: Imposta il titolo della pagina<br/>
921600
; <code>--output file</code>: Scrive su 'file' al posto di riversare il contenuto sullo STDOUT<br/>
defaultroute
; <code>--show=str</code>: Imposta che immagine mostrare (possibili opzioni: day, week, month, year, none)<br/>
noipdefault
usepeerdns
persist
ipcp-accept-remote
ipcp-accept-local
lcp-echo-interval 0
lcp-echo-failure 0</pre>


==Connetersi e Disconnettersi==
==Conclusioni==


Per connetersi basta usare
Mrtg è un ottimo tool, che offre dei risultati molto semplici da interpretare quando preziosi.
<pre>$ pon</pre> e per disconnetersi <pre>$ poff</pre>
Lo ritengo indispensabile, sia sui server, sia sui computer desktop con un accesso ad internet fisso (ADSL o simili).


{{Autori
|Autore = [[User:MaXeR|MaXeR]]
}}


 
[[Categoria:Monitoraggio]]
Per avere un output, sull'esito dell'operazione, si pu� usare (da root) il comando:
<pre># pon;plog</pre>
in modo da avere informazioni per risolvere eventuali problemi.
 
''Per qualsiasi cosa, non esitate a contattarmi.''
----
 
 
 
Autore: [[Utente:Clockwork orange|Clockwork Orange]]
 
[[Categoria: Networking]][[Categoria: Hardware]]

Versione attuale delle 18:47, 19 ott 2019

Debian-swirl.png Versioni Compatibili

Debian 8 "jessie"
Debian 9 "stretch"
Debian 10 "buster"

Introduzione

Spesso è utile monitorare la banda utilizzata da un server (o anche da un computer), per vedere se sono presenti anomalie, verificare l'andamento del traffico, etc. MRTG (Multi Router Traffic Grapher: http://www.mrtg.org/) ci viene in aiuto, permettendoci di monitorare efficacemente la banda utilizzata tramite dei comodissimi grafici. Vediamo come installarlo e configurarlo in Debian. La macchina usata per le prove monta Debian Sarge.

Installazione

Per installare mrtg, è sufficiente dare il seguente comando:

# apt-get install mrtg mrtg-contrib librrds-perl snmpd snmp

Oltre a mrtg, verrà installato il server snmpd ed il suo client.


Configurazione

La configurazione può sembrare un po' 'articolata' e 'difficile', ma non è così. Procediamo per gradi:

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:

com2sec paranoid   default         public
#com2sec readonly  default         public
#com2sec readwrite default         private

diventino:

#com2sec paranoid  default         public
com2sec  readonly  127.0.0.1       public
#com2sec readwrite default         private

Una volta salvato il tutto, riavviamo snmpd con un semplice:

# /etc/init.d/snmpd restart (oppure reload)


Mrtg

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).


Configurazione Automatizzata

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:

# Il nome del Server
sysname Spirit

# La descrizione della macchina
sysdescr MaXeR's Server

# La locazione della macchina
syslocation Verona

# Chi è il responsabile
syscontact MaXeR <maxer@knio.it>


Il comando per generare il file di configurazione di mrtg è il seguente:

# cfgmaker public@localhost --output=/etc/mrtg.cfg


Le opzioni più interessanti sono (degne di nota):

--enable-ipv6
che abilita l'ipv6
;
--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 interfaccia). 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:

velocità_in_Kbit/sec * 1000 / 8 = Velocità_in_Byte/sec

Ecco una tabellina delle velocità più comuni:

------------------------------------------
|   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           |
------------------------------------------

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:

# snmpwalk -v 1 -c public localhost interfaces.ifTable.ifEntry.ifDescr

Si riceverà un output simile a questo:

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

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:

WorkDir: /var/www/mrtg
EnableIPv6: no

Una volta terminata la scrittura del file di configurazione, è possibile controllarne l'esattezza con un:

# mrtg --check <config_file>

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:

# chown root:root /var/www/mrtg
# chmod 755 /var/www/mrtg

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:

# indexmaker --clicktext --title="Spirit MRTG" --output=index.html /etc/mrtg.cfg

è sufficiente per creare una homepage di introduzione che si deve trovare all'interno della cartella mrtg.

Riporto alcune delle opzioni più importanti:

--clicktext
rende clickabile anche la descrizione dei grafici
--title str
Imposta il titolo della pagina
--output file
Scrive su 'file' al posto di riversare il contenuto sullo STDOUT
--show=str
Imposta che immagine mostrare (possibili opzioni: day, week, month, year, none)

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).




Guida scritta da: MaXeR Swirl-auth20.png Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized