Linux下使用vnstat统计服务器流量
除了服务商提供的面板,我们也可以安装 vnStat 来监控你的 VPS 或服务器的流量使用情况,vnStat 安装方法很简单,可分为编译安装或者直接通过源安装。由于源安装一般不是最新版本,推荐使用编译安装。
编译安装
输入以下命令下载源文件
git clone https://github.com/vergoh/vnstat.git
进入 vnstat 目录
cd vnstat
编译文件
./configure --prefix=/usr --sysconfdir=/etc && make
安装
make install
如果需要卸载则输入 make uninstall
安装服务脚本
examples 目录下包含了最常用的服务脚本文件,根据不同的系统进行以下操作。
Debian / Ubuntu:
cp -v examples/init.d/debian/vnstat /etc/init.d/
update-rc.d vnstat defaults
service vnstat start
Red Hat / CentOS:
cp -v examples/init.d/redhat/vnstat /etc/init.d/
chkconfig vnstat on
service vnstat start
如遇到 Failed to restart vnstat.service: Unit vnstat.service is masked. 请删除 /etc/systemd/system/ 下的 vnstat.service 文件。
源安装
源安装比编译安装方法更简单,但一般不是最新版本。
Debian / Ubuntu 下直接使用 apt-get 安装即可:
apt-get install vnstat
Centos 需要先安装 epel 源后才能使用 yum 来安装:
yum install epel-release -y
yum install -y vnstat
修改配置
输入 ifconfig 命令查看自己的网卡名。一般来说 OVZ 的网卡是 venet0,而 XEN 和 KVM 的网卡是 eth0。
然后修改配置文件
vi /etc/vnstat.conf
修改 Interface 选项
## KVM / XEN
Interface "eth0"
## OpenVZ
Interface "venet0"
MonthRotate 为每月流量结算日期,也就是每月流量重新计算的日期,默认为每月 1 日,根据需要修改。
其它选项可查看官方配置文档
修改好配置后使用 service vnstat restart
命令来重启 vnStat。
生成数据库
同样的,OVZ 的网卡是 venet0,而 XEN 和 KVM 的网卡是 eth0,根据实际情况来输入以下命令来生成数据库。
## KVM / XEN
vnstat -u -i eth0
## OpenVZ
vnstat -u -i venet0
出现如下报错:权限的问题导致
Error: Unable to read database "/var/lib/vnstat/eth0".
Info: -> A new database has been created.
chmod -R 777 /var/lib/vnstat/
chown vnstat:vnstat eth0
数据库目录:/var/lib/vnstat/
删除数据库 vnstat --delete --force -i eth0
使用方法
使用 vnstat --help 命令来查看详细使用方法。
流量统计查询
vnstat -h #按小时查询
vnstat -d #按天数查询
vnstat -m #按月数查询
vnstat -w #按周数查询
vnstat -t #查询TOP10
查询实时流量
## KVM / XEN
vnstat -l -i eth0 -ru
## OpenVZ
vnstat -l -i venet0 -ru
服务命令
启动 vnStat:service vnstat start
停止 vnStat:service vnstat stop
重启 vnStat:service vnstat restart
查看 vnStat 状态:service vnstat status
附:nload
nload 是一个实时监控网络流量和带宽使用的控制台应用程序,使用两个图表可视化地展示接收和发送的流量,并提供诸如数据交换总量、最小/最大网络带宽使用量等附加信息。
nolad 与 vnstat 区别在于,nload 可以显示实时网速,vnstat 显示的则是平均网速。
1、安装
I、CentOS
# yum install nload
II、Ubuntu
# apt install nload
2、使用
# nload
3、参数
更新间隔
# nload -t 500
默认每 100 毫秒刷新一次显示数值,上面的例子将时间间隔设置成 500 毫秒。
显示单位
# nload -u h|H|b|B|k|K|m|M|g|G
# nload -U h|H|b|B|k|K|m|M|g|G
小写选项 -u: h 意为自动格式化为人类易读的单位,b 意为 Bit/s,k 意为 kBit/s,m 意为 MBit/s,g 意为 GBit/s。大写字母意为使用 Byte 替代 Bit。默认为 k。
大写选项 -U 与小写选项 -u 非常相似,不同之处在于它展示的是数据量,比如 Bit, kByte, GBit 等等。(没有 "/s")。默认值是 M。
快捷键
nload 命令一旦执行就会开始监控网络设备,你可以使用下列快捷键操控 nload 应用程序:
按键盘上的 ← → 或者 Enter/Tab 键在设备间切换
- 按 F2 显示选项窗口
- 按 F5 将当前设置保存到用户配置文件
- 按 F6 从配置文件重新加载设置
- 按 q 或者 Ctrl+C 退出 nload