GNU/Linux >> Linux Esercitazione >  >> Linux

vnStat:monitora la larghezza di banda della rete in Linux e BSD

In questo tutorial vedremo cos'è vnStat, come installarlo e quindi come monitorare la larghezza di banda della rete utilizzando vnStat nei sistemi operativi Linux e BSD.

Introduzione a Vnstat

VnStat è un monitor del traffico di rete gratuito, open source, leggero e basato su console. Utilizzando VnStat, possiamo facilmente trovare quanta larghezza di banda di rete viene consumata e visualizzare il risultato ogni ora, ogni giorno, ogni mese o per un periodo di tempo specifico.

Vnstat raccoglie i dettagli sull'utilizzo di una o più interfacce di rete e visualizza il riepilogo nella riga di comando. Aiuta anche a calcolare la quantità approssimativa di utilizzo della larghezza di banda Internet al mese o al giorno o per un determinato periodo di tempo.

Installa vnStat su Linux

VnStat è disponibile nei repository predefiniti di molti sistemi operativi Linux e Unix. Puoi installarlo utilizzando il gestore di pacchetti della tua distribuzione.

Sui sistemi basati su Arch:

Assicurati di aver abilitato [Community] repository e installalo usando pacman come di seguito:

$ sudo pacman -S vnstat

Su Debian, Uubntu, Linux Mint, Pop OS:

$ sudo apt install vnstat

Su Ubuntu potrebbe essere necessario abilitare [Universe] repository per installare vnstat.

Su Redhat, CentOS, AlmaLinux, Rocky Linux:

Aggiungi e abilita prima il repository EPEL:

$ sudo dnf install epel-release

E quindi installa vnStat come mostrato sopra.

$ sudo dnf install vnstat

Su Fedora:

$ sudo dnf install vnstat

Su openSUSE:

$ sudo zypper install vnstat

Dopo aver installato vnStat, avvia il suo servizio usando il comando:

$ sudo systemctl enable --now vnstat

Non è necessario avviare vnstat su sistemi basati su DEB, perché verrà avviato automaticamente durante il tempo di installazione.

Installa vnStat su FreeBSD

Su sistemi BSD come freeBSD, aggiorna l'albero delle porte e installa vnStat come root utente che utilizza i comandi:

# pkg update
# pkg install vnstat

Una volta installato, abilita e avvia il servizio vnStat come di seguito.

# echo 'vnstat_enable="YES"' >> /etc/rc.conf
# service vnstat start

Risultato di esempio:

Starting vnstat.
No interfaces found in database, adding available interfaces...
Interface "em0" added with 1000 Mbit bandwidth limit.
-> 1 new interface found.
Limits can be modified using the configuration file. See "man vnstat.conf".
Unwanted interfaces can be removed from monitoring with "vnstat --remove".".

Configura l'interfaccia di rete predefinita su Linux

vnStat usa eth0 come interfaccia di rete predefinita nel suo file di configurazione (/etc/vnstat.conf ).

Tuttavia, in alcuni sistemi Linux (ad es. Ubuntu), il nome dell'interfaccia di rete potrebbe essere diverso, come enp0s3 , enp0s8 . Puoi verificare il nome dell'interfaccia di rete utilizzando "ip addr" comando.

Diamo un'occhiata al contenuto del file di configurazione vnstat.

$ head /etc/vnstat.conf

Esempio di output:

# vnStat 1.18 config file
##

# default interface
Interface "eth0"

# location of the database directory
DatabaseDir "/var/lib/vnstat"

# locale (LC_ALL) ("-" = use system locale)

Come puoi vedere, l'interfaccia predefinita è etho in questo file.

Verifichiamo le interfacce di rete disponibili identificate da vnstat.

$ ls /var/lib/vnstat
enp0s3 enp0s8

Come puoi vedere, le interfacce di rete disponibili sono diverse da quella definita nel file vnstat.conf.

Se non imposti l'interfaccia predefinita corretta, potresti ricevere il seguente errore durante la visualizzazione del traffico della larghezza di banda della rete ogni ora o ogni mese.

Error: Unable to read database "/var/lib/vnstat/eth0": No such file or directory

Ciò accade perché l'interfaccia predefinita è definita in modo errato in /etc/vnstat.conf file.

Per configurare l'interfaccia di rete predefinita, modifica /etc/vnstat.conf file e aggiornare il nome dell'interfaccia corretto. Puoi modificare direttamente /etc/vnstat.conf file e aggiorna il nome dell'interfaccia a livello globale. Tuttavia, si consiglia di creare il proprio file di configurazione vnstat nella directory HOME dell'utente.

$ cp /etc/vnstat.conf ~/.vnstatrc
$ nano ~/.vnstatrc

Userò enp0s3 come mia interfaccia predefinita.

Sostituisci enp0s3 con il tuo. Salva e chiudi il file.

Configura l'interfaccia di rete predefinita su FreeBSD

Modifica il file di configurazione di vnstat:

# vi /usr/local/etc/vnstat.conf

Se il file di configurazione non è disponibile, creane uno nuovo utilizzando il file di configurazione di esempio:

# cp /usr/local/etc/vnstat.conf.sample /usr/local/etc/vnstat.conf

Quindi, aggiorna l'interfaccia di rete predefinita corretta:

Interface "em0"

Salva e chiudi il file.

Monitoraggio della larghezza di banda della rete utilizzando vnStat in Linux e Unix

Se non conosci vnStat, apri la sezione della guida di vnStat e guarda l'elenco delle opzioni disponibili eseguendo questo comando:

$ vnstat --help

Risultato di esempio:

 vnStat 1.18 by Teemu Toivola <tst at iki dot fi>

         -q,  --query          query database
         -h,  --hours          show hours
         -d,  --days           show days
         -m,  --months         show months
         -w,  --weeks          show weeks
         -t,  --top10          show top 10 days
         -s,  --short          use short output
         -u,  --update         update database
         -i,  --iface          select interface (default: eth0)
         -?,  --help           short help
         -v,  --version        show version
         -tr, --traffic        calculate traffic
         -ru, --rateunit       swap configured rate unit
         -l,  --live           show transfer rate in real time

See also "--longhelp" for complete options list and "man vnstat".

Visualizzazione dell'utilizzo della larghezza di banda di tutte le interfacce

Ora mostriamo il traffico di rete di tutte le interfacce.

Per farlo, esegui semplicemente:

$ vnstat

Risultato di esempio:

                      rx      /      tx      /     total    /   estimated
 enp0s3:
       Sep '19       120 KiB  /      66 KiB  /     186 KiB  /       0 KiB
         today       120 KiB  /      66 KiB  /     186 KiB  /      --    

 enp0s8:
       Sep '19       128 KiB  /      88 KiB  /     216 KiB  /       0 KiB
         today       128 KiB  /      88 KiB  /     216 KiB  /      --

Ecco,

  • rx - Il traffico ricevuto
  • tx - Il traffico trasferito

Attendere alcuni minuti affinché Vnstat inizi a raccogliere l'utilizzo del traffico di rete. Se avvii vnstat subito dopo averlo installato, potresti ottenere un risultato simile a quello di seguito.

enp0s3: Not enough data available yet.

In alternativa, otterrai il seguente output in distribuzioni basate su RPM come CentOS.

No database found, nothing to do. Use --help for help.

A new database can be created with the following command:
 vnstat --create -i eth0

Replace 'eth0' with the interface that should be monitored.

The following interfaces are currently available:
 enp0s3 (1000 Mbit) lo

Non mostra nulla ora. È perché vnStat non ha ancora iniziato a raccogliere le statistiche.

Visualizzazione dell'utilizzo della larghezza di banda di una particolare interfaccia

Per visualizzare l'utilizzo della larghezza di banda di rete di una particolare interfaccia, ad esempio enp0s3 , menziona semplicemente il nome della scheda di rete come di seguito.

$ vnstat -i enp0s3

Risultato di esempio:

Database updated: Mon Sep  9 08:26:47 2019

   enp0s3 since 09/09/2019

          rx:  136 KiB      tx:  74 KiB      total:  210 KiB

   monthly
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
       Sep '19       136 KiB |      74 KiB |     210 KiB |    0.00 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated        --     |      --     |      --     |

   daily
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
         today       136 KiB |      74 KiB |     210 KiB |    0.06 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated        --     |      --     |      --     |

Qui, enp0s3 è il nome della mia scheda di rete. Puoi trovare il nome della tua scheda di rete utilizzando "ip addr" comando.

Su FreeBSD , il nome della scheda di rete è em0 . Per visualizzare la sua larghezza di banda, esegui semplicemente:

# vnstat -i em0

Risultato di esempio:

Database updated: 2019-09-09 16:40:00

   em0 since 2019-09-09

          rx:  606.84 KiB      tx:  56.12 KiB      total:  662.96 KiB

   monthly
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
       2019-09    606.84 KiB |   56.12 KiB |  662.96 KiB |        7 bit/s
     ------------------------+-------------+-------------+---------------
     estimated       --      |     --      |     --      |

   daily
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
         today    606.84 KiB |   56.12 KiB |  662.96 KiB |       90 bit/s
     ------------------------+-------------+-------------+---------------
     estimated       873 KiB |      80 KiB |     953 KiB

Visualizzazione dell'utilizzo della larghezza di banda all'ora

Mostriamo i risultati del traffico di rete all'ora. Per farlo, esegui:

$ vnstat -h

Risultato di esempio:

 enp0s3                                                                   09:46 
  ^                                                                    r        
  |                                                                 r  r        
  |                                                                 r  r        
  |                                                                 r  r        
  |                                                                 r  r  r     
  |                                                                 rt rt r     
  |                                                                 rt rt r     
  |                                                                 rt rt rt    
  |                                                                 rt rt rt    
  |                                                              r  rt rt rt    
 -+---------------------------------------------------------------------------> 
  |  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         12          7
15          0          0 ][ 23          0          0 ][ 07         86         48
16          0          0 ][ 00          0          0 ][ 08         88         45
17          0          0 ][ 01          0          0 ][ 09         59         32

Se hai più interfacce, usa -i parametro per visualizzare il traffico di rete orario di una scheda specifica come di seguito.

$ vnstat -h -i enp0s8

Lettura consigliata:

  • Come limitare la larghezza di banda della rete in Linux utilizzando Wondershaper

Visualizzazione dell'utilizzo giornaliero della larghezza di banda

Usa '-d' flag per visualizzare il traffico di rete dell'interfaccia di rete predefinita al giorno.

$ vnstat -d

Risultato di esempio:

enp0s3  /  daily

         day         rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
     09/09/2019      258 KiB |     138 KiB |     396 KiB |    0.09 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated        --     |      --     |      --     |

Visualizzazione dell'utilizzo settimanale della larghezza di banda

$ vnstat -w

Risultato di esempio:

enp0s3  /  weekly

                      rx      |     tx      |    total    |   avg. rate
   ---------------------------+-------------+-------------+---------------
    last 7 days       258 KiB |     138 KiB |     396 KiB |    0.00 kbit/s
   current week       258 KiB |     138 KiB |     396 KiB |    0.09 kbit/s
   ---------------------------+-------------+-------------+---------------
      estimated        --     |      --     |      --     |

Visualizzazione dell'utilizzo mensile della larghezza di banda

Per visualizzare l'utilizzo mensile di una scheda di interfaccia di rete, utilizzare '-m' interruttore.

$ vnstat -m

Risultato di esempio:

enp0s3  /  monthly

       month        rx      |     tx      |    total    |   avg. rate
    ------------------------+-------------+-------------+---------------
      Sep '19       258 KiB |     138 KiB |     396 KiB |    0.00 kbit/s
    ------------------------+-------------+-------------+---------------
    estimated        --     |      --     |      --     |

Visualizzazione dell'utilizzo della larghezza di banda dei primi dieci giorni precedenti

Per visualizzare l'utilizzo della rete degli ultimi dieci giorni, utilizza '-t' bandiera.

$ vnstat -t

Risultato di esempio:

enp0s3  /  top 10

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

Non mostra alcun dato dei primi dieci giorni, perché ho installato Vnstat oggi.

Lettura consigliata:

  • Installa lo strumento di monitoraggio delle prestazioni di NetData su Linux

Visualizzazione dell'utilizzo della larghezza di banda in un momento particolare

Possiamo anche visualizzare l'utilizzo della larghezza di banda in un determinato momento.

Per visualizzare l'utilizzo della larghezza di banda degli ultimi dieci secondi, esegui:

$ vnstat -i enp0s3 -tr 10

Risultato di esempio:

7 packets sampled in 10 seconds
Traffic average for enp0s3

      rx         0.28 kbit/s             0 packets/s
      tx         0.14 kbit/s             0 packets/s

Visualizzazione dell'utilizzo della larghezza di banda in tempo reale

Per avviare il monitoraggio in tempo reale dell'utilizzo di una particolare scheda di interfaccia, eseguire:

$ vnstat -i enp0s3 -l

Risultato di esempio:

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

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

Per interrompere il monitoraggio in tempo reale, premi CTRL-C .

Per maggiori dettagli, fare riferimento alle pagine man:

$ man vnstat

Conclusione

VnStat è uno strumento utile e utile per monitorare l'utilizzo di Internet o il traffico di rete per una o più interfacce di rete. Nel caso ti stia chiedendo quanta larghezza di banda stai consumando giornalmente/mensile, puoi utilizzare questo strumento per scoprirlo senza l'aiuto del tuo provider di servizi Internet o utilizzando strumenti di terze parti.


Linux
  1. Come installare e testare Ansible su Linux

  2. Come installare e utilizzare Flatpak in Linux

  3. Come installare e utilizzare Traceroute in Linux

  4. Risoluzione dei problemi e debug della rete Linux?

  5. Come monitorare e registrare il traffico di rete su Linux utilizzando vnStat

Come installare e utilizzare phpMyAdmin in Linux

Monitora attività Linux con SysMonTask

Come installare e utilizzare il comando fd in Linux

Come installare e utilizzare Nu Shell su Linux

Come installare il monitoraggio della larghezza di banda di rete Iftop su Linux

Monitora l'utilizzo della larghezza di banda della rete Linux in tempo reale con nload