简介
vnStat是一个免费的、开源的、基于控制台的Linux操作系统网络流量监控工具。通过vnStat,你可以在不同的时间段监控网络统计数据。它简单、轻量级,并且消耗的系统资源很小。vnStat允许你按小时、日、月、周和日生成网络流量数据。本教程将向你展示如何在Ubuntu 22.04上安装和使用vnStat来监控网络流量。
特性
- 同时监控多个接口。
- 提供多种输出选项,如按日、周等。
- 按小时、日、月或周排序数据,或获取前10天的数据。
- 允许你以图像格式生成输出。
- 同时监控多个网络接口。
- 轻量级且CPU使用率低。
接下来,我将一步一步教大家如何进行安装和部署!!
准备工作
服务器准备
必要前提:
- 一个充满求知欲的大脑。
- 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。
我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。
注册链接: https://rainyun.ivwv.site
创建雨云服务器
以下步骤仅供参考,请根据实际需求选择配置。
- 点击 云产品 → 云服务器 → 立即购买。
- 选择距离你较近的区域,以保证低延迟。
- 按照自己需求选择配置,选择Ubuntu 22.04 版本,按照自己需求是否预装Docker。
- 最后按照提示进行购买。
- 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。
- 我们使用
PowerShell
进行SSH
远程连接到服务器,Win+R
打开运行窗口,输入powershell
后点击确定。
- 输入
ssh root@你的服务器IP
例如ssh root@154.9.227.239
回车后,首次需要输入yes
,再次回车后即可登录服务器。
- 到此为止,我们的云服务器就远程连接上了。
开始安装
更新系统软件包
开始之前,建议更新并升级所有系统软件包到最新版本。你可以使用以下命令更新所有软件包:
bash
apt update -y
apt upgrade -y
所有软件包更新后,你可以在下一步从源代码安装vnStat。
安装vnStat
默认情况下,Ubuntu默认仓库中没有vnStat的最新版本。因此,你需要从源代码编译它。
首先,使用以下命令安装编译vnStat所需的所有依赖:
bash
apt-get install build-essential gcc make libsqlite3-dev -y
安装完所有依赖后,使用以下命令下载vnStat源代码的最新版本:
bash
wget https://humdi.net/vnstat/vnstat-2.10.tar.gz
下载完成后,使用以下命令解压下载的文件:
bash
tar -xvzf vnstat-2.10.tar.gz
接下来,切换到解压后的目录,并使用以下命令配置它:
bash
cd vnstat-2.10
./configure --prefix=/usr --sysconfdir=/etc
接下来,通过运行以下命令安装vnStat:
bash
make
make install
安装完vnStat后,你可以使用以下命令验证安装的vnStat版本:
bash
vnstat -v
你应该得到以下输出:
vnStat 2.10 by Teemu Toivola
完成后,你可以进行下一步。
使用systemd管理VnStat
要使用systemd管理VnStat,你需要将vnStat的systemd服务文件从vnStat源代码复制到/etc/systemd/system/目录:
bash
cp -v vnstat-2.10/examples/systemd/vnstat.service /etc/systemd/system/
接下来,使用以下命令启用并启动vnStat服务:
bash
systemctl enable vnstat
systemctl start vnstat
你还可以使用以下命令检查vnStat服务的状态:
bash
systemctl status vnstat
你应该得到以下输出:
bash
? vnstat.service - vnStat network traffic monitor
Loaded: loaded (/lib/systemd/system/vnstat.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2022-11-29 08:34:08 IST; 2h 49min ago
Docs: man:vnstatd(1)
man:vnstat(1)
man:vnstat.conf(5)
Main PID: 1730 (vnstatd)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/vnstat.service
??1730 /usr/sbin/vnstatd -n
Nov 29 08:34:08 vyompc systemd[1]: Started vnStat network traffic monitor.
Nov 29 08:34:08 vyompc vnstatd[1730]: Info: vnStat daemon 1.18 started. (pid:1730 uid:122 gid:128)
Nov 29 08:34:08 vyompc vnstatd[1730]: Info: Monitoring: enp20s0 (1000 Mbit) wlp22s0 (1000 Mbit)
完成后,你可以进行下一步。
如何使用vnStat监控网络流量
vnStat提供了多个选项,允许你监控网络流量。你可以使用以下命令列出所有可用选项:
bash
vnstat --help
你应该得到以下输出:
bash
vnStat 2.10 by Teemu Toivola
-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 set list begin date
-e, --end 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 select interface
Use "--longhelp" or "man vnstat" for complete list of options.
在使用vnStat之前,你需要等待一段时间以更新vnStat数据库。更新数据库后,你可以像下面这样运行vnStat,不带任何选项:
bash
vnstat
你应该看到以下输出:
rx / tx / total / estimated
wlp22s0:
Oct '22 17.80 GiB / 4.35 GiB / 22.15 GiB
Nov '22 16.61 GiB / 3.62 GiB / 20.23 GiB / 21.48 GiB
yesterday 332.22 MiB / 114.17 MiB / 446.39 MiB
today 710.25 MiB / 44.85 MiB / 755.11 MiB / 1.55 GiB
要使用特定的网络接口,使用-i选项,如下所示:
bash
vnstat -i ens3
你应该得到以下输出,显示每日和每月的统计数据:
bash
Database updated: 2020-11-12 06:30:00
ens3 since Saturday 29 January 2022
rx: 185.89 GiB tx: 38.82 GiB total: 224.70 GiB
monthly
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
Oct '22 17.80 GiB | 4.35 GiB | 22.15 GiB | 71.04 kbit/s
Nov '22 16.61 GiB | 3.62 GiB | 20.23 GiB | 71.20 kbit/s
------------------------+-------------+-------------+---------------
estimated 17.64 GiB | 3.85 GiB | 21.48 GiB |
daily
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
yesterday 332.22 MiB | 114.17 MiB | 446.39 MiB | 43.34 kbit/s
today 710.25 MiB | 44.85 MiB | 755.11 MiB | 154.31 kbit/s
------------------------+-------------+-------------+---------------
estimated 1.46 GiB | 92 MiB | 1.55 GiB |
要显示每小时的统计数据,运行以下命令:
bash
vnstat -h
你应该得到以下输出:
bash
ens3 / hourly
h rx (MiB) tx (MiB) ][ h rx (MiB) tx (MiB) ][ h rx (MiB) tx (MiB)
12 5.4 0.2 ][ 20 30.4 14.8 ][ 04 0.0 0.0
13 72.7 15.0 ][ 21 24.8 6.4 ][ 05 0.0 0.0
14
相关链接
雨云 - 新一代云服务提供商: https://rainyun.ivwv.site