Kako beležiti in spremljati porabo prometa z vnStat
vnStat je lahko konzolno orodje, ki hrani zgodovino omrežnega prometa v sistemu Linux. Storitev v ozadju, vnstatd, bere števce vmesnikov iz jedra in jih shranjuje v majhno zbirko podatkov. Promet si lahko nato ogledate po urah, dnevih, mesecih in letih ali pa v realnem času spremljate trenutno hitrost prenosa. vnStat ne zajema paketov, zato je njegova obremenitev sistema zelo majhna. Prikaže, koliko prometa je šlo prek posameznega vmesnika, ne pa, kateri naslovi IP, vrata ali povezave so ga ustvarili.
Ta vodnik prikazuje, kako namestiti vnStat iz repozitorija ali iz izvorne kode ter kako pregledovati statistiko prometa. vnStat je uporaben na vsakem strežniku, kjer je promet omejen ali zaračunan, na primer na strežniku VPS z Linuxom ali namenskem strežniku INTROSERV.
Namestitev vnStat iz repozitorija
Z strežnikom se povežite prek SSH. Podrobnosti najdete v članku Povezava prek SSH.
Ubuntu in Debian
vnStat je na voljo v standardnih repozitorijih. Namestite ga:
sudo apt update sudo apt install -y vnstat
Namestitev zažene storitev vnstat in jo omogoči ob zagonu sistema. Preverite, ali se izvaja:
sudo systemctl status vnstat
Izpis mora prikazati active (running). Če se storitev ne izvaja, jo omogočite in zaženite z ukazom sudo systemctl enable --now vnstat.

AlmaLinux in Rocky Linux
vnStat je na voljo v repozitoriju EPEL. Omogočite EPEL in namestite vnStat:
sudo dnf install -y epel-release sudo dnf install -y vnstat
Omogočite in zaženite storitev:
sudo systemctl enable vnstat && sudo systemctl start vnstat
Preverite, ali se izvaja:
sudo systemctl status vnstat
Namestitev vnStat iz izvorne kode
vnStat prevedite iz izvorne kode, če paket za vašo distribucijo ni na voljo ali če potrebujete najnovejšo različico.
Če je vnStat že nameščen iz repozitorija, najprej odstranite paket: sudo apt remove -y vnstat v sistemih Ubuntu in Debian ali sudo dnf remove -y vnstat v sistemih AlmaLinux in Rocky Linux. Obe namestitvi uporabljata isto konfiguracijsko datoteko, isto zbirko podatkov in isto ime storitve, zato njuno sobivanje povzroča konflikte.
Namestite odvisnosti, potrebne za prevajanje. V sistemih Ubuntu in Debian:
sudo apt update && sudo apt install -y build-essential libsqlite3-dev wget
V sistemih AlmaLinux in Rocky Linux:
sudo dnf group install -y "Development Tools" sudo dnf install -y sqlite-devel wget
Prenesite in razpakirajte najnovejšo izdajo:
wget https://humdi.net/vnstat/vnstat-latest.tar.gz tar -xf vnstat-latest.tar.gz cd vnstat-*/
Arhiv se razpakira v imenik, katerega ime vsebuje številko različice, na primer vnstat-2.13. Nadomestni znak v vnstat-*/ omogoča vstop v imenik brez vnosa številke različice.
Prevedite in namestite vnStat:
./configure --prefix=/usr --sysconfdir=/etc && make && sudo make install
Možnost --prefix=/usr namesti programe v /usr/bin in /usr/sbin, možnost --sysconfdir=/etc pa konfiguracijsko datoteko postavi v /etc/vnstat.conf.
V sistemih AlmaLinux in Rocky Linux z omogočenim SELinuxom, če je bil vnStat prej nameščen iz repozitorija, najprej obnovite oznake SELinux imenika zbirke podatkov. Sicer se storitev ne zažene in javi napako Permission denied:
sudo restorecon -Rv /var/lib/vnstat
Namestite storitev systemd, nato jo omogočite in zaženite:
sudo cp -v examples/systemd/vnstat.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now vnstat
Preverite različico in stanje storitve:
vnstat --version sudo systemctl status vnstat
Iskanje omrežnega vmesnika
vnStat privzeto v zbirko podatkov doda vse omrežne vmesnike strežnika, razen povratnega vmesnika (loopback). Če si želite ogledati vmesnike, ki so trenutno v zbirki podatkov, zaženite:
vnstat --dbiflist
Vmesnike lahko izpišete tudi z ukazom ip a. V spodnjih primerih je uporabljen vmesnik ens3. Zamenjajte ga z imenom svojega vmesnika, na primer eth0 ali enp1s0.
vnStat privzeto shranjuje nove podatke v zbirko podatkov vsakih 5 minut. Takoj po namestitvi ukaz vnstat sporoči, da podatkov še ni, na primer z obvestilom Not enough data available yet ali No data. Počakajte nekaj minut in ukaz zaženite znova.
Pregled statistike prometa
Zaženite vnstat brez možnosti, da prikažete povzetek za vse vmesnike, ki vključuje promet za tekoči dan in mesec ter oceno do konca vsakega obdobja.
vnstat
V vseh poročilih rx pomeni dohodni promet, tx odhodni promet, total pa njuno vsoto.
Promet po urah
Za prikaz zadnjih 12 urnih zapisov zaženite:
vnstat -i ens3 -h --limit 12

Promet po dnevih
Za prikaz zadnjih 2 dnevnih zapisov zaženite:
vnstat -i ens3 -d --limit 2
Brez možnosti --limit je število prikazanih zapisov določeno s parametrom ListDays v datoteki /etc/vnstat.conf, privzeto 30. Parameter omejuje le izpis, ne pa podatkov, shranjenih v zbirki podatkov.
Promet po mesecih
vnstat -i ens3 -m

Promet po letih
vnstat -i ens3 -y
Promet v realnem času
Za spremljanje trenutne hitrosti prenosa zaženite:
vnstat -i ens3 -l
Hitrost se osvežuje, dokler ne pritisnete Ctrl+C. Če se je ukaz izvajal dlje kot 10 sekund, vnStat nato prikaže povzetek za to obdobje.

Promet v določenem številu sekund
Če želite izmeriti povprečno hitrost prometa v določenem časovnem obdobju, navedite trajanje v sekundah. Na primer 20 sekund:
vnstat -i ens3 -tr 20
Brez navedene vrednosti meritev traja 5 sekund. Rezultat je prikazan, ko čas poteče.
Graf za zadnjih 24 ur
Za prikaz prometa v zadnjih 24 urah v obliki besedilnega grafa zaženite:
vnstat -i ens3 -hg

Za obdelavo statistike v skriptu uporabite možnost --json ali --oneline. Na primer, vnstat -i ens3 --json d izvozi dnevno statistiko v obliki JSON.
Nastavitev privzetega vmesnika
Če ima strežnik več vmesnikov, vi pa običajno preverjate enega, ga nastavite kot privzetega v konfiguracijski datoteki /etc/vnstat.conf. Odprite datoteko:
sudo nano /etc/vnstat.conf
V sistemih AlmaLinux in Rocky Linux urejevalnik nano privzeto ni nameščen. Namestite ga z ukazom sudo dnf install -y nano ali uporabite vi.
Poiščite vrstico Interface, odstranite podpičje na začetku in vnesite ime svojega vmesnika:
Interface "ens3"
Shranite datoteko. Zdaj vnstat ob zagonu brez možnosti -i, na primer vnstat -d, prikaže ta vmesnik. Storitev vnstat še naprej spremlja vse vmesnike.
Celoten seznam možnosti dobite z ukazom vnstat --longhelp ali v priročniku man vnstat.