如何在 Ubuntu 22.04 上使用 vnStat 监控网络流量

简介

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

我的博客:https://blog.ivwv.site

相关推荐
我爱写代码?10 分钟前
Scala递归中求汉罗塔游戏的步骤
大数据·运维·服务器·scala
week@eight16 分钟前
Linux - MySQL迁移至一主一从
linux·mysql
码农秃头老李1 小时前
系列5:基于Centos-8.6 Kubernetes master节点允许运行pod节点
linux·kubernetes·centos
一叶知秋@qqy1 小时前
Devops-蓝鲸篇-03-蓝盾流水线简单介绍
运维·devops
vvw&2 小时前
如何在 Ubuntu 22.04 上使用 Fail2Ban 保护 SSH
linux·运维·服务器·web安全·ubuntu·ssh·fail2ban
沃和莱特2 小时前
Ubuntu上源码编译安装snort,使用snort进行数据检测和防御(简单示例)
linux·运维·计算机网络·ubuntu·scala·snort
域智盾-运营小韩2 小时前
CAD图纸加密软件哪个最好用 | 安全可靠的解决方案
运维·网络
@启智森2 小时前
【Uboot】Uboot启动流程分析
linux·c++·嵌入式·uboot·启动·底层
confident32 小时前
spark-sql 备忘录
服务器·sql·spark
宁君2 小时前
Elasticsearch高性能优化2
linux·运维·服务器