• seguici su feed rss
  • seguici su twitter
  • seguici su linkedin
  • seguici su facebook
  • cerca

SEI GIA' REGISTRATO? EFFETTUA ADESSO IL LOGIN.



ricordami per 365 giorni

HAI DIMENTICATO LA PASSWORD? CLICCA QUI

NON SEI ANCORA REGISTRATO ? CLICCA QUI E REGISTRATI !

Come monitorare il consumo di banda in Linux utilizzando vnStat

di :: 04 marzo 2020 08:55
Come monitorare il consumo di banda in Linux utilizzando vnStat

VnStat è un applicativo open source, utilizzabile da linea di comando, grazie al quale possiamo verificare quanta banda viene utilizzata dalle interfacce di rete presenti nel nostro server linux, e visualizzare una statistica oraria, giornaliera, mensile, o per un periodo di tempo specificato.

Il nostro server linux monta una CentOS 7, per cui ci dedicheremo a questa distribuzione.

Installazione di VnStat

Dobbiamo abilitare, se ancora non l'avete fatto, la repository EPEL

# yum install epel-release

Dopodichè procediamo con l'installazione

# yum install vnstat

Ed infine avviamo l'applicativo

# systemctl enable --now vnstat

Configurazione di Vnstat

Innanzitutto, identifichiamo le interfacce di rete del nostro server linux, utilizzando ifconfig

# ifconfig

Il risultato sarà il seguente

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 176.255.75.122  netmask 255.255.255.0  broadcast 178.255.79.255
        inet6 fe80::e85d:b2f5:e5f9:9bca  prefixlen 64  scopeid 0x20<link>
        ether ae:a0:5d:2f:dc:39  txqueuelen 1000  (Ethernet)
        RX packets 1035393463  bytes 79466035105 (74.0 GiB)
        RX errors 0  dropped 133958  overruns 0  frame 0
        TX packets 22040838  bytes 6380683143 (5.9 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.12  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::aca0:ddff:fee0:a233  prefixlen 64  scopeid 0x20<link>
        ether ae:a0:dd:e0:a2:33  txqueuelen 1000  (Ethernet)
        RX packets 1675320  bytes 576964295 (550.2 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1687660  bytes 1453134802 (1.3 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 470042  bytes 181251551 (172.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 470042  bytes 181251551 (172.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

La nostra attenzione sarà concentrata sull'interfaccia eth0, che è la scheda di rete esposta sulla WAN (la eth1 è la scheda utilizzata per le comunicazioni in LAN).

Un altro modo per verificare le interfacce è utilizzare lo stesso Vnstat, che le identifica in autonomia:

# ls /var/lib/vnstat
eth0 eth1

Passiamo adesso alla configurazione di Vnstat.

La configurazione è semplice: occorre editare il file di configurazione "/etc/vnstat.conf", ad esempio utilizzando l'editori vi

# vi /etc/vnstat.conf

Identifichiamo la linea "default interface": qui occorre indicare l'interfaccia di default che vogliamo monitorare, cioè la eth0.

# default interface
Interface "eth0"

Se la nostra interfaccia avesse un nome differente, occorre modificare il nome indicato nel file di configurazione.

Monitorare il consumo di banda delle interfacce di rete

Bene, adesso lanciamo finalmente Vnstat, con il comando vnstat

# vnstat

Il risultato sarà il seguente

                      rx      /      tx      /     total    /   estimated
 eth0: Not enough data available yet.
 eth1: Not enough data available yet.

Vnstat ci sta comunicando che non ci sono sufficienti dati per fornirci informazioni, occorre attendere ancora qualche minuto.

Nel frattempo vi spiego il significato delle 4 colonne presenti:

  • rx: è il traffico in entrata
  • tx: è il traffico in uscita
  • total: è il traffico totale
  • estimed: è il traffico stimato

E' trascorso qualche minuto, rilanciamo il comando vnstat, ed ecco il risultato di semplice lettura:

                      rx      /      tx      /     total    /   estimated
 eth0:
       mar '20     10,17 MiB  /    1,05 MiB  /   11,22 MiB  /  144,00 MiB
         today     10,17 MiB  /    1,05 MiB  /   11,22 MiB  /      26 MiB

 eth1:
       mar '20        10 KiB  /      12 KiB  /      22 KiB  /       0 KiB
         today        10 KiB  /      12 KiB  /      22 KiB  /      --  

Per ogni interfaccia di rete abbiamo due righe:

  • la prima riga evidenzia i dati del mese di marzo 2020 (in mese in corso)
  • la seconda riga i dati di oggi

Monitorare una singola interfaccia di rete

Se volessimo monitorare solo una interfaccia, ad esempio la eth0, utilizziamo l'opzione "-i" seguita dal nome dell'interfaccia

# vnstat -i eth0

Ecco il risultato

Database updated: Tue Mar  3 09:43:55 2020

   eth0 since 03/03/2020

          rx:  11,35 MiB      tx:  1,12 MiB      total:  12,47 MiB

   monthly
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
       mar '20     11,35 MiB |    1,12 MiB |   12,47 MiB |    0,50 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated       144 MiB |      13 MiB |     157 MiB |

   daily
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
         today     11,35 MiB |    1,12 MiB |   12,47 MiB |    2,92 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated        27 MiB |       2 MiB |      29 MiB |

Monitorare l'utilizzo di banda per ora

Per ottenere le informazioni relative al consumo di banda orario, utilizziamo l'opzione "-h"

# vnstat -h -i eth0

Ecco il risultato

 eth0                                                                     09:48 
  ^                                                                       r     
  |                                                                       r     
  |                                                                       r     
  |                                                                       r     
  |                                                                       r     
  |                                                                       r     
  |                                                                       r     
  |                                                                       r     
  |                                                                       r     
  |                                                                    r  r     
 -+---------------------------------------------------------------------------> 
  |  10 11 12 13 14 15 16 17 18 19 20 21 22 23 00 01 02 03 04 05 06 07 08 09    
                                                                                
 h  rx (KiB)   tx (KiB)      h  rx (KiB)   tx (KiB)      h  rx (KiB)   tx (KiB) 
10          0          0    18          0          0    02          0          0
11          0          0    19          0          0    03          0          0
12          0          0    20          0          0    04          0          0
13          0          0    21          0          0    05          0          0
14          0          0    22          0          0    06          0          0
15          0          0    23          0          0    07          0          0
16          0          0    00          0          0    08       1615        589
17          0          0    01          0          0    09      11048        616

Monitorare l'utilizzo di banda giornaliera

Per ottenere le informazioni relative al consumo di banda giornaliero, utilizziamo l'opzione "-d"

# vnstat -d -i eth0

Ecco il risultato

 eth0  /  daily

         day         rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
     03/03/2020    13,37 MiB |    1,25 MiB |   14,62 MiB |    3,36 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated        31 MiB |       2 MiB |      33 MiB |

Monitorare l'utilizzo di banda settimanale

Per ottenere le informazioni relative al consumo di banda settimanale, utilizziamo l'opzione "-w"

# vnstat -w -i eth0

Ecco il risultato

 eth0  /  weekly

                      rx      |     tx      |    total    |   avg. rate
   ---------------------------+-------------+-------------+---------------
    last 7 days     13,37 MiB |    1,25 MiB |   14,62 MiB |    0,22 kbit/s
   current week     13,37 MiB |    1,25 MiB |   14,62 MiB |    0,98 kbit/s
   ---------------------------+-------------+-------------+---------------
      estimated        66 MiB |       5 MiB |      71 MiB |

Monitorare l'utilizzo di banda mensile

Per ottenere le informazioni relative al consumo di banda mensile, utilizziamo l'opzione "-m"

# vnstat -m -i eth0

Ecco il risultato

 eth0  /  monthly

       month        rx      |     tx      |    total    |   avg. rate
    ------------------------+-------------+-------------+---------------
      mar '20     13,37 MiB |    1,25 MiB |   14,62 MiB |    0,58 kbit/s
    ------------------------+-------------+-------------+---------------
    estimated       169 MiB |      13 MiB |     182 MiB |

Monitorare l'utilizzo di banda degli ultimi 10 giorni

Per ottenere le informazioni relative al consumo di banda degli ultimi 10 giorni, utilizziamo l'opzione "-t"

# vnstat -t -i eth0

Ecco il risultato, che ovviamente non riporta dati in quanto l'abbiamo installato oggi

 eth0  /  top 10

    #      day          rx      |     tx      |    total    |   avg. rate
   -----------------------------+-------------+-------------+---------------
                              no data available
   -----------------------------+-------------+-------------+---------------

Monitorare l'utilizzo di banda in un certo intervallo di tempo

Per ottenere le informazioni relative al consumo di banda per i prossimi x secondi, con x personalizzabile, ad esempio 10 secondi, utilizziamo l'opzione "-tr":

vnstat -i eth0 -tr 10

Attendiamo 10 secondi ed ecco il risultato

576 packets sampled in 10 seconds
Traffic average for eth0

      rx        30,12 kbit/s            54 packets/s
      tx         3,97 kbit/s             2 packets/s

Monitorare l'utilizzo di banda in tempo reale

Per monitorare le interfacce in tempo reale, utilizziamo l'opzione "-l"

vnstat -i eth0 -l

Il risultato in tempo reale sarà

Monitoring eth0...    (press CTRL-C to stop)

   rx:       64 kbit/s   136 p/s          tx:        0 kbit/s     0 p/s

Attendiamo qualche minuto. Poi uscire dal monitoring utilizziamo la combinazione di tast "CTRL + C", ottenendo il riepilogo

 eth0  /  traffic statistics

                           rx         |       tx
--------------------------------------+------------------
  bytes                      393 KiB  |          34 KiB
--------------------------------------+------------------
          max              68 kbit/s  |       15 kbit/s
      average           27,57 kbit/s  |     2,35 kbit/s
          min               6 kbit/s  |        0 kbit/s
--------------------------------------+------------------
  packets                       5735  |             181
--------------------------------------+------------------
          max                141 p/s  |           6 p/s
      average                 50 p/s  |           1 p/s
          min                  6 p/s  |           0 p/s
--------------------------------------+------------------
  time                  1,90 minutes

Con il monitoraggio in tempo reale relativo al consumo di banda, abbiamo terminato.

Per l'elenco di tutte le opzioni di Vnstat si rimanda a:

# vnstat --help
 
pay per script

Hai bisogno di uno script PHP personalizzato, di una particolare configurazione su Linux, di una gestione dei tuoi server Linux, o di una consulenza per il tuo progetto?

 
 
 
x

ATTENZIONE