vnstat 就是一个很好用的Linux服务器流量统计命令。一直以来用它查看服务器带宽以及流量使用统计,非常实用。这里小编便大体介绍一下vnstat这款开源免费的软件的编译、安装及使用方法。

vnstat特色功能有:

1、实时查看带宽使用情况(这点最实用)

2、能够统计每天、周、月、年等时段的流量使用状况。

vnstat的编译与安装

vnstat的官方网站是:http://humdi.net/vnstat/

vnstat 源码包下载地址:http://humdi.net/vnstat/vnstat-1.17.tar.gz

将其wget下载下来,还是以centos为例,编译vnstat首先系统中需要有gcc编译器,可以通过 yum install gcc 下载。

之后便是常见的编译命令:

./configure

make

make install

接下来便可以直接使用vnstat命令了。

vnstat命令的使用

一开始便出错:

# vnstat
Error: Unable to open database directory "/var/lib/vnstat": No such file or directory
The vnStat daemon should have created this directory when started.
Check that it is is configured and running. See also "man vnstatd".

这是因为vnstat必须配置指定一个目录来进行监控带宽与流量情况用于记录。

直接运行vnstat是显示流量统计,若我们只是用来看实时带宽情况,则使用命令 vnstat -l

# vnstat -l
Error: Configured default interface "eth0" isn't available.

Update "Interface" keyword value in "/usr/local/etc/vnstat.conf" to change
the default interface or give an alternative interface
using the -i parameter.

The following interfaces are currently available:
ens3 lo

然而又是出错,这是为什么,因为有的服务器默认的要统计的网卡的名称不是eth0而是别的,如上面我这服务器上是叫ens3,这时候必须手动指定你需要显示的是哪个网卡

使用命令 vnstat -l -i ens3 便对了

如下显示:

# vnstat -l -i ens3
Monitoring ens3...    (press CTRL-C to stop)

rx:    97.63 Mbit/s  9019 p/s          tx:    22.55 Mbit/s  5090 p/s

这里便显示出入和出的带宽的情况,以及每秒收发包的个数。

同时也提醒你可以通过修改 /usr/local/etc/vnstat.conf 中的Interface的配置来忽略这个-i参数,毕竟每次打这个也浪费时间,比如在我这服务器上就配置一下

# default interface
Interface "ens3"
然后直接使用 vnstat -l 命令即可达到同样的目的啦。

好前面所说是查看实时带宽情况(实际上小编大部分是要这个功能就足够了),接下来我们来看看如何让vnstat后台监控流量活动情况,并记录下来做统计用。

首先我们需要启用监控。

采用 vnstatd -d 命令启动后台监控,那么vnstat就会启动一个监控进程实时统计流量带宽情况并将其写入到某个数据库中。这些配置都是通过配置文件/usr/local/etc/vnstat.conf 指定的。

可以用vi打开这个文件,默认的数据库文件是/var/lib/vnstat

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

可以改成别的目录。

注:vnstatd -d 这个指令可以加入到开机启动中,如在/etc/rc.local中最后另起一行把这个命令加上 

/usr/local/bin/vnstat -d

那么以后一开机便监视着啦!

启用监控后需要大概10分钟后才能收集足够的数据用于显示。出现

# vnstat
ens3: Not enough data available yet.

表示数据还不足以显示,耐心等候一段时间之后再使用vnstat命令便可以显示默认监视网卡的流量总和。例:

# vnstat
Database updated: Tue Dec 12 23:10:28 2017

ens3 since 12/12/2017

rx:  469.60 MiB      tx:  426.51 MiB      total:  896.12 MiB

monthly
rx      |     tx      |    total    |   avg. rate
------------------------+-------------+-------------+---------------
Dec '17    469.60 MiB |  426.51 MiB |  896.12 MiB |    7.15 kbit/s
------------------------+-------------+-------------+---------------
estimated      1.17 GiB |    1.06 GiB |    2.22 GiB |

daily
rx      |     tx      |    total    |   avg. rate
------------------------+-------------+-------------+---------------
today    469.60 MiB |  426.51 MiB |  896.12 MiB |   90.10 kbit/s
------------------------+-------------+-------------+---------------
estimated       485 MiB |     441 MiB |     926 MiB |
 

更加详细的官方介绍: