当我们考虑监控工具时,我们通常会考虑监控进程和资源使用情况(例如磁盘空间、内存和 CPU 负载)的工具。但是,服务器的网络带宽使用情况也同样重要。因此,在本文中,我们将介绍 VnStat – 轻量级命令行网络监控工具。
VnStat由多个部分组成:
- VnStatd 守护进程:它在服务器后台运行,监控网络流量并将统计信息记录到数据库中
- VnStat 命令:用于分析数据库中记录的信息并在命令行上显示信息。VnStat 命令还执行与 vnstat 命令相同的任务,只是输出形式为 .png 图像而不是文本输出到屏幕。
安装 VnStat 进行服务器监控
VnStat 包含在 Debian 和 Ubuntu Linux 发行版的标准存储库中,因此安装非常简单。在基于 Debian 和 Ubuntu 的发行版中,可以使用以下命令完成安装:
sudo apt-get update
sudo apt-get install vnstat
对于 CentOS 和 Red Hat 发行版,您需要先使用以下命令启用 EPEL 存储库:
sudo yum install epel-release
sudo yum update
然后使用以下命令进行安装:
sudo yum install vnstat
安装完成后,VnStatd 守护程序应开始收集统计数据。要确认它正在运行,请使用以下命令:
sudo systemctl status vnstat
如果它没有运行,请使用以下命令启用并启动它:
sudo systemctl enable vnstat
sudo systemctl start vnstat
了解 VnStat
VnStat本身具有许多内置视图可用于显示统计数据。由于这些视图大多基于时间,因此系统需要时间来建立有意义的统计数据供您检查许多视图。可以使用标志选择各种视图。如果不使用任何标志运行,则会提供默认概览:
-h 每小时,按小时提供网络流量视图。
-d 每天,按天提供网络流量视图。
-w 每周,按周提供网络流量视图。
-m 每月,提供按月提供网络流量视图。
-t 前 10 名,显示日志中网络流量最大的十天。
-l 显示实时流量数据。
-i 用于选择显示哪个网络接口的流量(如果您配置了多个)。
例如,以下命令将为您的服务器提供每日带宽使用情况的明细:
vnstat -d
请注意,如果您的服务器上有多个网络接口,您可以使用 -i 标志选择哪个。以下命令将提供 eth0 网络接口的每日视图:
vnstat -d -i eth0
虽然 vnstat 提供的大多数统计视图都是历史视图,但是您可以使用 -l 标志来获取实时系统流量的实时概览。
vnstati 命令的工作方式与 vnstat 命令大致相同。唯一的区别是您需要为 -o 标志提供保存图像的路径。例如:
vnstati -h -o /var/www/html/vnstat/hourly.png
上述命令会生成每小时的统计报告并将数据保存在 /var/www/html/vnstat/hourly.png 文件中。
但是,VnStat 缺乏自动创建定期更新的网络流量图表的能力。可以通过设置 BASH 脚本或多个 cron 任务来轻松纠正这个问题,以便为您生成图像,并将它们放在服务器的 webroot 目录中的某个位置。此操作可让您轻松查看数据,而无需先登录并亲自运行命令。还有许多前端工具可供使用,例如Sqweek.com的 PHP 网站前端。