Keeping a Log Of Daily Network Traffic for ADSL or Dedicated Remote Linux Server

Posted on in Categories CentOS, FreeBSD, Gentoo Linux, Howto, Linux, Monitoring, Networking, OpenBSD, RedHat/Fedora Linux, Suse Linux, Tips, UNIX last updated August 16, 2017

Almost a year ago, I wrote about Linux MRTG configuration how-to. However, some user seems to confused with MRTG, most users would like to know – how much traffic actually generated by ADSL/Cable service provider on daily and monthly basis.

MRTG is for network monitoring and it can be use to see how much traffic your server or ADSL router actually generated, however it will not tell you how much megabytes or gigabytes the daily traffic was. For all such home user and people having dedicated single Linux box hosted somewhere remote at IDC/ISP there is a tool called vnStat:

  • It is a console-base network traffic monitor for Linux (perfect tool for remote Linux box hosted at ISP)
  • It keeps a log of daily and monthly network traffic for the selected network interface(s).
  • It collects all data from /proc file system it means normal user can monitor traffic (no need to run vnstat as a root user)
  • Easy to setup & configure
  • Ease of use

Step # 1: Install vnstat

Debian / Ubuntu Linux user can install vnstat using the apt-get command/apt command, enter:

# apt-get install vnstat

OR

# apt install vnstat

Sample outputs:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  vnstati
The following NEW packages will be installed:
  vnstat
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 84.0 kB of archives.
After this operation, 259 kB of additional disk space will be used.
Get:1 http://cdn-fastly.deb.debian.org/debian stretch/main amd64 vnstat amd64 1.15-2 [84.0 kB]
Fetched 84.0 kB in 2s (39.8 kB/s)
Selecting previously unselected package vnstat.
(Reading database ... 115133 files and directories currently installed.)
Preparing to unpack .../vnstat_1.15-2_amd64.deb ...
Unpacking vnstat (1.15-2) ...
Setting up vnstat (1.15-2) ...
Created symlink /etc/systemd/system/multi-user.target.wants/vnstat.service → /lib/systemd/system/vnstat.service.
Processing triggers for systemd (232-25+deb9u1) ...
Processing triggers for man-db (2.7.6.1-2) ...

Fedora Linux user type the following dnf command:

# dnf install vnstat

CentOS/RHEL users type the following [nxicmd name=”yum”] after enabling epel repo on CentOS/RHEL 5.x/6.x or RHEL/CentOS 7.x:

# yum install vnstat

Sample outputs:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.nhanhoa.com
 * epel: repo.ugm.ac.id
 * extras: mirrors.nhanhoa.com
 * updates: mirror.onet.vn
Resolving Dependencies
--> Running transaction check
---> Package vnstat.x86_64 0:1.15-2.el7 will be installed
--> Processing Dependency: libgd.so.2()(64bit) for package: vnstat-1.15-2.el7.x86_64
--> Running transaction check
---> Package gd.x86_64 0:2.0.35-26.el7 will be installed
--> Processing Dependency: libXpm.so.4()(64bit) for package: gd-2.0.35-26.el7.x86_64
--> Running transaction check
---> Package libXpm.x86_64 0:3.5.11-3.el7 will be installed
--> Finished Dependency Resolution
 
Dependencies Resolved
 
=========================================================================================
 Package            Arch               Version                    Repository        Size
=========================================================================================
Installing:
 vnstat             x86_64             1.15-2.el7                 epel             125 k
Installing for dependencies:
 gd                 x86_64             2.0.35-26.el7              base             146 k
 libXpm             x86_64             3.5.11-3.el7               base              54 k
 
Transaction Summary
=========================================================================================
Install  1 Package (+2 Dependent packages)
 
Total download size: 325 k
Installed size: 982 k
Is this ok [y/d/N]: y
Downloading packages:
(1/3): gd-2.0.35-26.el7.x86_64.rpm                                | 146 kB  00:00:00     
(2/3): libXpm-3.5.11-3.el7.x86_64.rpm                             |  54 kB  00:00:02     
(3/3): vnstat-1.15-2.el7.x86_64.rpm                               | 125 kB  00:00:02     
-----------------------------------------------------------------------------------------
Total                                                       143 kB/s | 325 kB  00:02     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : libXpm-3.5.11-3.el7.x86_64                                            1/3 
  Installing : gd-2.0.35-26.el7.x86_64                                               2/3 
  Installing : vnstat-1.15-2.el7.x86_64                                              3/3 
  Verifying  : vnstat-1.15-2.el7.x86_64                                              1/3 
  Verifying  : gd-2.0.35-26.el7.x86_64                                               2/3 
  Verifying  : libXpm-3.5.11-3.el7.x86_64                                            3/3 
 
Installed:
  vnstat.x86_64 0:1.15-2.el7                                                             
 
Dependency Installed:
  gd.x86_64 0:2.0.35-26.el7                 libXpm.x86_64 0:3.5.11-3.el7                
 
Complete!

Step # 2: Enable vnstat

Once installed, you need to create a database with the following commands. The latest version uses config file, you need to edit it as follows:
$ sudo vi /etc/vnstat.conf
Make sure you setup correct interface name:

# default interface
Interface "wlp4s0"

Save and close the file using vi/vim command. Once done start the vnstat server as follows:
$ sudo systemctl start vnstat

Step # 3 View statistics

Display default traffic statistics

$ vnstat

Display daily traffic statistics

$ vnstat -d


Display monthly traffic statistics:

$ vnstat -m

Display all time top10 traffic days:

$ vnstat -t


Try help option to get all query options:

$ vnstat --help

Sample outputs:

 vnStat 1.15 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: eth1)
         -?,  --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

Read man page of vnstat for complete options and more information and download vnstat here:

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

Share this on (or read 15 comments/add one below):

15 comment

  1. Just perfect so far! I haven’t accumulated a lot of stats yet but it seems to be working well!

    It is also a real bonus that it operates in the ‘background’, unobtrusive but efficient.

    Thanks for the effort and thanks for an excellent tool.

  2. This tool is really nice …It worked for me on my Ubuntu 8.10 distribution ,when coming to F10 its just didnt ….I’ve done the same config…Seems ” Not enough data available yet ” even after 3 days …

    But this is amazing tool with very less config …………

    Thanks for the Help

  3. any way to whitelist certain destinatons?

    australian ISPs enforce a monthly bandwidth quota on consumers. Most good australians ISP also provide larges amounts of locally mirrored data that don’t count towards that monthly quota.

    I’d like to white list some IP addresses in order to obtain a report relevant to usage affecting the monthly quota my isp provides me.

Leave a Comment