Ubuntu安装vnstat控制台网络流量监视器
如何在Ubuntu上安装vnstat是基于控制台的网络流量监视器,以保持所选接口的5分钟间隔,每小时,每天,每月和每年的网络流量记录?
在此教程中,您将学习如何在基于Ubuntu LTS 16.04、18.04和20.04 LTS的台式机或者服务器上安装vnstat。
它是一个免费的基于开源控制台的网络流量监视工具。
它不是数据包嗅探器。
即使没有root权限,也可以使用vnStat。
让我们看看如何在Ubuntu机器上设置vnstat。
第1步Ubuntu使用apt/apt-get安装vnstat
执行以下apt命令/apt-get命令以更新系统:
sudo apt update sudo apt upgrade
搜索vnstat软件包,执行:
apt show vnstat
输出示例:
Package: vnstat Version: 2.6-1 Priority: optional Section: universe/net Origin: Ubuntu Maintainer: Ubuntu Developers <[email protected]> Original-Maintainer: Christian Göttsche <[email protected]> Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 310 kB Pre-Depends: init-system-helpers (>= 1.54~) Depends: libc6 (>= 2.29), libsqlite3-0 (>= 3.7.6.1), adduser, lsb-base Suggests: vnstati Homepage: https://humdi.net/vnstat/ Download-Size: 88.9 kB APT-Sources: http://mirrors.linode.com/ubuntu focal/universe amd64 Packages Description: console-based network traffic monitor vnStat is a network traffic monitor for Linux. It keeps a log of daily network traffic for the selected interface(s). vnStat is not a packet sniffer. The traffic information is analyzed from the /proc filesystem, so vnStat can be used without root permissions.
安装
执行以下命令以在Ubuntu服务器上设置和安装vnstat:
sudo apt-get install vnstat
或者
sudo apt install vnstat
步骤2设定vnstat
每个接口的缺省数据库目录位于以下位置(使用ls命令/cd命令):
cd /var/lib/vnstat/ ls -l /var/lib/vnstat/
输出示例:
total 4 -rw-r--r-- 1 vnstat vnstat 2792 Apr 23 19:28 eth0
使用ip命令找出您的接口名称:
ip l show ip a show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 40:9f:38:28:f6:b5 brd ff:ff:ff:ff:ff:ff
记下接口名称enp0s31f6。
我们需要使用文本编辑器(例如nano或者vim)编辑/etc/vnstat.conf
文件:
sudo nano /etc/vnstat.conf
将默认接口名称设置为enp0s31f6(或者在较旧的Ubuntu系统上为eth0):
Interface "enp0s31f6"
我们可以自定义日期输出格式,如下所示:
DayFormat "%Y-%m-%d" MonthFormat "%Y-%m" TopFormat "%Y-%m-%d"
设置数据保留期限策略(使用-1表示无限制,使用0禁用它)
5MinuteHours 48 HourlyDays 4 DailyDays 62 MonthlyMonths 25 YearlyYears -1 TopDayEntries 20
保存并关闭文件。
步骤3启用并启动vnstat服务
我们将在Ubuntu Linux上使用systemctl命令来控制系统系统,例如vnstat.service。
启用服务的语法如下:
sudo systemctl enable vnstat.service
启动vnstat服务
sudo systemctl start vnstat.service
停止vnstat服务
sudo systemctl stop vnstat.service
重新启动/重新加载vnstat服务
编辑/etc/vnstat.conf后,我们必须重新启动或者重新加载服务:
sudo systemctl restart vnstat.service
或者
sudo systemctl reload vnstat.service
查找vnstat服务的状态
sudo systemctl status vnstat.service
步骤4查看网络流量图
我们分为两个部分,如下所示:
- vnstatd守护程序后台服务,用于根据/etc/vnstat.conf文件监视和更新接口数据库。
- vnstat命令行sysadmins/developers的命令行工具,用于查询由vnstatd守护程序存储的流量信息。换句话说,我们需要使用vnstat命令。
让我们在Ubuntu框中执行以下命令来查询vnstat数据库:
vnstat
新安装的系统的输出示例:
Database updated: 2020-04-23 19:39:00 eth0 since 2020-04-23 rx: 94.30 KiB tx: 113.71 KiB total: 208.01 KiB monthly rx | tx | total | avg. rate ------------------------+-------------+-------------+-------------- 2020-04 94.30 KiB | 113.71 KiB | 208.01 KiB | 0 bit/s ------------------------+-------------+-------------+-------------- estimated -- | -- | -- | daily rx | tx | total | avg. rate ------------------------+-------------+-------------+-------------- today 94.30 KiB | 113.71 KiB | 208.01 KiB | 24 bit/s ------------------------+-------------+-------------+-------------- estimated 114 KiB | 138 KiB | 252 KiB |
我们可以选择以下界面:
vnstat -i eth0
是否要显示接口eth0,eth2和eth3合并的流量摘要?
尝试:
vnstat -i eth0+eth1+eth3
我们可以以xml格式输出有关VPN接口tun0的所有信息:
vnstat -i tun0 --xml
json格式怎么样?
尝试:
vnstat --json
以下两个特殊选项只能与--json,-xml和列表输出一起使用。
传递-b选项以从日期定义的特定日期/时间开始列表输出,而不是根据要显示的条目数选择开始。
该日期只能采用YYYY-MM-DD HH:MM和YYYY-MM-DD格式。
另一种选择是通过-e
设置结束日期:
vnstat -b {YYYY-MM-DD} -i {interface} --xml vnstat -e {YYYY-MM-DD} -i {interface} --json
可以使用以下格式删除接口eth1的数据库条目并停止对其进行监视:
vnstat -i eth1 --remove
查看每小时流量统计
vnstat -h vnstat -i eth0 -h
查看每日(天)流量统计信息
vnstat -d vnstat -i tun0 -d
显示每月流量统计
vnstat -m
显示年度流量统计
vnstat -y
enp0s31f6 / yearly year rx | tx | total | avg. rate ------------------------+-------------+-------------+-------------- 2019 382.24 GiB | 78.11 GiB | 460.35 GiB | 125.39 kbit/s 2020 834.28 GiB | 345.17 GiB | 1.15 TiB | 1.03 Mbit/s ------------------------+-------------+-------------+-------------- estimated 2.61 TiB | 1.08 TiB | 3.70 TiB |
以上显示了过去几年每年的流量统计信息。
显示热门流量日
vnstat -t vnstat -i eth0
如何实时显示所选接口的当前传输速率,直到中断
如果运行时间超过10秒,则会在中断后显示另一个显示实时网络传输速率和统计信息的漂亮选项:
vnstat -l vnstat -i tun0 -l vnstat -i eth0 -l
获得帮助
执行以下man命令:
man vnstat vnstat --help vnstat --longhelp
vnStat 2.6 by Teemu Toivola <tst at iki dot fi> -5, --fiveminutes [limit] show 5 minutes -h, --hours [limit] show hours -hg, --hoursgraph show hours graph -d, --days [limit] show days -m, --months [limit] show months -y, --years [limit] show years -t, --top [limit] show top days -b, --begin <date> set list begin date -e, --end <date> set list end date --oneline [mode] show simple parsable format --json [mode] [limit] show database in json format --xml [mode] [limit] show database in xml format -tr, --traffic [time] calculate traffic -l, --live [mode] show transfer rate in real time -i, --iface <interface> select interface