Registrazione e monitoraggio del consumo di traffico con VnStat | INTROSERV
EUR
european

EUR

usa

USD

Italy It
Ex. VAT Ex. VAT 0%

Come registrare e monitorare il consumo di traffico con vnStat

vnStat è uno strumento a riga di comando leggero che conserva lo storico del traffico di rete su Linux. Un servizio in background, vnstatd, legge i contatori delle interfacce dal kernel e li salva in un piccolo database. È quindi possibile visualizzare il traffico per ore, giorni, mesi e anni, oppure monitorare in tempo reale la velocità di trasferimento corrente. vnStat non cattura i pacchetti, perciò il carico aggiuntivo sul sistema è molto basso. Mostra quanto traffico è passato attraverso ciascuna interfaccia, ma non quali indirizzi IP, porte o connessioni lo abbiano generato.

Questa guida mostra come installare vnStat dal repository o dal codice sorgente e come visualizzare le statistiche del traffico. vnStat è utile su qualsiasi server in cui il traffico è limitato o a pagamento, ad esempio su un VPS Linux o su un server dedicato INTROSERV.

Installare vnStat dal repository

Collegatevi al server tramite SSH. Per i dettagli, consultate Connessione tramite SSH.

Ubuntu e Debian

vnStat è disponibile nei repository standard. Installatelo:

sudo apt update sudo apt install -y vnstat

L'installazione avvia il servizio vnstat e lo abilita all'avvio del sistema. Verificate che sia in esecuzione:

sudo systemctl status vnstat

L'output deve mostrare active (running). Se il servizio non è in esecuzione, abilitatelo e avviatelo con il comando sudo systemctl enable --now vnstat.

AlmaLinux e Rocky Linux

vnStat è disponibile nel repository EPEL. Abilitate EPEL e installate vnStat:

sudo dnf install -y epel-release sudo dnf install -y vnstat

Abilitate e avviate il servizio:

sudo systemctl enable vnstat && sudo systemctl start vnstat

Verificate che sia in esecuzione:

sudo systemctl status vnstat

Installare vnStat dal codice sorgente

Compilate vnStat dal codice sorgente se il pacchetto non è disponibile per la vostra distribuzione o se vi serve la versione più recente.

Warning

Se vnStat è già stato installato dal repository, rimuovete prima il pacchetto: sudo apt remove -y vnstat su Ubuntu e Debian oppure sudo dnf remove -y vnstat su AlmaLinux e Rocky Linux. Entrambe le installazioni usano lo stesso file di configurazione, lo stesso database e lo stesso nome di servizio, quindi tenerle insieme causa conflitti.

Installate le dipendenze di compilazione. Su Ubuntu e Debian:

sudo apt update && sudo apt install -y build-essential libsqlite3-dev wget

Su AlmaLinux e Rocky Linux:

sudo dnf group install -y "Development Tools" sudo dnf install -y sqlite-devel wget

Scaricate e decomprimete l'ultima versione:

wget https://humdi.net/vnstat/vnstat-latest.tar.gz tar -xf vnstat-latest.tar.gz cd vnstat-*/

L'archivio viene decompresso in una directory il cui nome contiene il numero di versione, ad esempio vnstat-2.13. Il carattere jolly vnstat-*/ consente di accedervi senza digitare il numero di versione.

Compilate e installate vnStat:

./configure --prefix=/usr --sysconfdir=/etc && make && sudo make install

L'opzione --prefix=/usr installa i programmi in /usr/bin e /usr/sbin, mentre --sysconfdir=/etc colloca il file di configurazione in /etc/vnstat.conf.

Su AlmaLinux e Rocky Linux con SELinux abilitato, se vnStat era stato precedentemente installato dal repository, ripristinate prima le etichette SELinux della directory del database. In caso contrario il servizio non si avvia e restituisce l'errore Permission denied:

sudo restorecon -Rv /var/lib/vnstat

Installate il servizio systemd, quindi abilitatelo e avviatelo:

sudo cp -v examples/systemd/vnstat.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now vnstat

Verificate la versione e lo stato del servizio:

vnstat --version sudo systemctl status vnstat

Individuare l'interfaccia di rete

Per impostazione predefinita, vnStat aggiunge al database tutte le interfacce di rete del server, tranne l'interfaccia di loopback. Per visualizzare le interfacce attualmente presenti nel database, eseguite:

vnstat --dbiflist

È inoltre possibile elencare le interfacce con il comando ip a. Gli esempi seguenti usano l'interfaccia ens3. Sostituitela con il nome della vostra interfaccia, ad esempio eth0 o enp1s0.

Info

Per impostazione predefinita, vnStat salva nel database i nuovi dati ogni 5 minuti. Subito dopo l'installazione, il comando vnstat segnala che non ci sono ancora dati, ad esempio con il messaggio Not enough data available yet o No data. Attendete qualche minuto ed eseguite di nuovo il comando.

Visualizzare le statistiche del traffico

Eseguite vnstat senza opzioni per visualizzare un riepilogo di tutte le interfacce, che include il traffico del giorno e del mese correnti e una stima per la fine di ciascun periodo.

vnstat

In tutti i report, rx indica il traffico in entrata, tx il traffico in uscita e total la loro somma.

Traffico orario

Per visualizzare le ultime 12 voci orarie, eseguite:

vnstat -i ens3 -h --limit 12

Traffico giornaliero

Per visualizzare le ultime 2 voci giornaliere, eseguite:

vnstat -i ens3 -d --limit 2

Senza --limit, il numero di voci mostrate è definito dal parametro ListDays in /etc/vnstat.conf, pari a 30 per impostazione predefinita. Il parametro limita solo l'output, non i dati memorizzati nel database.

Traffico mensile

vnstat -i ens3 -m

Traffico annuale

vnstat -i ens3 -y

Traffico in tempo reale

Per monitorare la velocità di trasferimento corrente, eseguite:

vnstat -i ens3 -l

La velocità viene aggiornata finché non premete Ctrl+C. Se il comando è rimasto in esecuzione per più di 10 secondi, vnStat mostra poi un riepilogo relativo a questo intervallo.

Traffico in un numero definito di secondi

Per misurare la velocità media del traffico in un determinato periodo, indicate la durata in secondi. Ad esempio, 20 secondi:

vnstat -i ens3 -tr 20

Senza indicare un valore, la misurazione dura 5 secondi. Il risultato viene mostrato allo scadere del tempo.

Grafico delle ultime 24 ore

Per visualizzare il traffico delle ultime 24 ore sotto forma di grafico testuale, eseguite:

vnstat -i ens3 -hg

Tip

Per elaborare le statistiche in uno script, usate l'opzione --json o --oneline. Ad esempio, vnstat -i ens3 --json d esporta le statistiche giornaliere in formato JSON.

Impostare l'interfaccia predefinita

Se il server dispone di più interfacce e di norma ne controllate una sola, impostatela come predefinita nel file di configurazione /etc/vnstat.conf. Aprite il file:

sudo nano /etc/vnstat.conf

Su AlmaLinux e Rocky Linux nano non è installato per impostazione predefinita. Installatelo con sudo dnf install -y nano oppure usate vi.

Trovate la riga Interface, rimuovete il punto e virgola all'inizio e inserite il nome della vostra interfaccia:

Interface "ens3"

Salvate il file. Ora vnstat mostra questa interfaccia quando viene eseguito senza l'opzione -i, ad esempio vnstat -d. Il servizio vnstat continua a monitorare tutte le interfacce.

Per l'elenco completo delle opzioni, eseguite vnstat --longhelp o consultate man vnstat.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA