Cme possiamo misurare e registare il traffico di rete sulle interfacce

Ritratto di admin

Se la vostra esigenza è tenere una traccia nel tempo del traffico di rete sulle interfacce di una linux box, esiste un programma molto comodo ed intuitivo che consente di registrare il traffico e di visualizzarlo in modo riepilogativo, Questo programma si chiama vnstat.

Installiamo il programma

# apt-get install vnstat

Generiamo i db per le diverse interfacce che ci interessa monitorare.

# vnstat -u -i eth0
# vnstat -u -i eth1

vediamo alcune rappresentazioni dei dati:

# vnstat
rx / tx / total / estimated
eth1:
yesterday 174 kB / 0 kB / 174 kB
today 53 kB / 0 kB / 53 kB / --
eth0:
yesterday 19.94 GB / 4.33 GB / 24.27 GB
today 3.86 GB / 0.98 GB / 4.84 GB / 10.16 GB

Una visione grafica/testuale dei dati l'abbiamo con il comando:

# vnstat -h
eth0 11:30
^ r
| r r
| r r r
| r t r r r r
| rt t r r r r r r
| rt t r r r r r r r
| rt rt r r r r r r r r r r
| rt rt r r r r r r r r r r r r
| rt rt r r r r r r r r r r r r r r t r
| rt rt rt r rt rt r rt r r r r r r rt r r r r rt rt rt rt r
-+--------------------------------------------------------------------------->
| 12 13 14 15 16 17 18 19 20 21 22 23 00 01 02 03 04 05 06 07 08 09 10 11

h rx (kB) tx (kB) h rx (kB) tx (kB) h rx (kB) tx (kB)
12 982886 695641 20 656238 57998 04 220823 12027
13 427656 757889 21 343002 62942 05 160220 11873
14 322904 165802 22 466482 52979 06 186506 21116
15 172664 85374 23 1039368 36649 07 188855 109409
16 654155 104752 00 907319 28156 08

I dati possono poi essere visualizzati riepilogati per giorno (d), settimane (w) mese (m) e anno (y).
Ecco un esempio:

# vnstat -d

eth0 / daily

day rx | tx | total
------------------------+-------------+----------------------------------------
14.01. 810.88 MB | 2.86 GB | 3.65 GB %::
15.01. 1.70 GB | 4.10 GB | 5.80 GB %::::
16.01. 33.29 MB | 245.22 MB | 278.52 MB
17.01. 18.66 MB | 125.58 MB | 144.24 MB

Per una misurazione in tempo reale del traffico si può invece usare il comando traffic:

# vnstat -tr
625 packets sampled in 5 seconds
Traffic average for eth0

rx 17.65 kB/s 63 packets/s
tx 20.51 kB/s 61 packets/s

Molto utile il comando top 10 che ci mostra i 10 giorni che hanno fatto maggior traffico:

# vnstat -t

eth0 / top 10

# day rx | tx | total
-------------------------------+-------------+---------------------------------
1 10.02.10 19.99 GB | 5.60 GB | 25.59 GB %%%%%%%%%%%%%%::::
2 11.02.10 19.94 GB | 4.33 GB | 24.27 GB %%%%%%%%%%%%%%:::
3 04.01.10 15.97 GB | 4.21 GB | 20.18 GB %%%%%%%%%%%:::
4 12.01.10 3.01 GB | 7.07 GB | 10.08 GB %%:::::
5 05.01.10 5.22 GB | 2.58 GB | 7.80 GB %%%::
6 13.01.10 2.00 GB | 4.51 GB | 6.51 GB %:::
7 09.02.10 2.63 GB | 3.19 GB | 5.82 GB %%::
8 15.01.10 1.70 GB | 4.10 GB | 5.80 GB %:::
9 11.01.10 1.52 GB | 3.84 GB | 5.36 GB %::
10 08.01.10 1.59 GB | 3.72 GB | 5.31 GB %::
-------------------------------+-------------+---------------------------------

Per visualizzare il traffico in tempo reale si può usare la modalità live:

# vnstat -l
Monitoring eth0... (press CTRL-C to stop)

rx: 10.69 kB/s 38 p/s tx: 9.18 kB/s 32 p/s^C

Questo comando risulta molto utile su sistemi come firewall e router con più interfacce per l'analisi della banda e del traffico sulle singole inteafacce.