vnstat流量统计(2.8版本)
vnStat 是一个基于控制台的 Linux 和 BSD 网络流量监视器,它为所选接口保留网络流量日志。它使用内核提供的网络接口统计信息作为信息源。这意味着 vnStat 实际上不会嗅探任何流量,并且无论网络流量率如何,都可以确保少量使用系统资源。
这个程序是开源/GPL 的,可以作为root 用户或单个用户安装。
官方网址:/vnstat/
github:/vergoh/vnstat
图像输出演示:/vnstat/cgidemo/
特点
安装和运行快速简单收集的统计信息在系统重启后仍然存在可以同时监控多个接口几个输出选项总结,5 分钟,每小时,每天,每月,每年,最重要的日子可选的 png 图像输出(使用 libgd)数据保留时间完全由用户动态配置月份可以配置为遵循计费周期轻量级,最少的资源使用无论流量如何,CPU 使用率都一样低无需root权限即可使用在线颜色配置编辑器
安装配置vnstat
先决条件
makeC compileruser with access to kernel interface statistics usually available by default but can be restricted for example by grsecurity and similar security enhancement suites or settings sqlite3 (library and development files)libgd (optional, image output)check (optional, test suite)pkg-config (optional, for check detection)autotools (optional, for recreating configure and makefiles)安装
wget /vergoh/vnstat/releases/download/v2.8/vnstat-2.8.tar.gztar zxf vnstat-2.8.tar.gzcd vnstat-2.8./configure --prefix=/usr --sysconfdir=/etc && make && make installmkdir /var/lib/vnstatchmod -R 777 /var/lib/vnstat/
配置system启动
cp -v examples/systemd/vnstat.service /etc/systemd/system/systemctl enable vnstatsystemctl start vnstatsystemctl restart vnstat
注意:如果是较旧的版本使用下面的命令
cp -v examples/systemd/simple/vnstat.service /etc/systemd/system/systemctl enable vnstatsystemctl start vnstat
其它系统
Debiancp -v examples/init.d/debian/vnstat /etc/init.d/update-rc.d vnstat defaultsservice vnstat start
Red Hat / CentOS
cp -v examples/init.d/redhat/vnstat /etc/init.d/chkconfig vnstat onservice vnstat start
upstart
cp -v examples/upstart/vnstat.conf /etc/init/initctl start vnstat
在首次启动期间,守护程序 (vnstatd) 应列出并添加所有可用的监控接口。根据配置,vnstat 命令可能需要几分钟时间才能开始显示结果,因为数据库中的条目不会不断更新。
可以通过以下方式停止对不需要的接口的监视:
vnstat --remove -i eth0
如果需要添加
vnstat --add -i eth0
vnstat使用
vnstat命令参数详解
这里是最新版2.8的参数
[root@linux vnstat]# vnstat --helpvnStat 2.8 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 interfaceUse "--longhelp" or "man vnstat" for complete list of options.
vnstat
查看所以接口流量统计情况
[root@linux vnstat]# vnstatrx/tx/total / estimateddocker0:-11 0 B / 0 B / 0 B /--today 0 B / 0 B / 0 B /--eth0:-11 185.98 KiB / 330.13 KiB / 516.12 KiB /--today 185.98 KiB / 330.13 KiB / 516.12 KiB /675 KiB
rx:rx是接收(receive)
tx:tx是发送(transport)
total:总计
estimated:估计
vnstat -5
按照每五分钟查看
[root@linux vnstat]# vnstat -5eth0 / 5 minutetime rx|tx| total | avg. rate------------------------+-------------+-------------+----------------11-1218:1078.90 KiB | 137.68 KiB | 216.58 KiB | 5.91 kbit/s18:15 107.09 KiB | 192.45 KiB | 299.54 KiB | 8.18 kbit/s18:20 107.65 KiB | 193.50 KiB | 301.15 KiB | 8.22 kbit/s------------------------+-------------+-------------+---------------
time:时间
rx:rx是接收(receive)
tx:tx是发送(transport)
total:总计
avg. rate:平均速度
vnstat -h
按小时查看
[root@linux vnstat]# vnstat -heth0 / hourlyhour rx|tx| total | avg. rate------------------------+-------------+-------------+----------------11-1218:00 396.99 KiB | 712.44 KiB | 1.08 MiB | 5.05 kbit/s------------------------+-------------+-------------+---------------
vnstat -hg
显示小时图
[root@linux vnstat]# vnstat -hgeth0 18:35 ^ t | t | t | t | t | rt | rt | rt | rt | rt -+---------------------------------------------------------------------------> | 19 20 21 22 23 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 h rx (KiB) tx (KiB) ][ h rx (KiB) tx (KiB) ][ h rx (KiB) tx (KiB) 19 0.0 0.0 ][ 03 0.0 0.0 ][ 11 0.0 0.020 0.0 0.0 ][ 04 0.0 0.0 ][ 12 0.0 0.021 0.0 0.0 ][ 05 0.0 0.0 ][ 13 0.0 0.022 0.0 0.0 ][ 06 0.0 0.0 ][ 14 0.0 0.023 0.0 0.0 ][ 07 0.0 0.0 ][ 15 0.0 0.000 0.0 0.0 ][ 08 0.0 0.0 ][ 16 0.0 0.001 0.0 0.0 ][ 09 0.0 0.0 ][ 17 0.0 0.002 0.0 0.0 ][ 10 0.0 0.0 ][ 18502.7905.6
vnstat -tr
计算流量(calculate traffic)
[root@linux vnstat]# vnstat -tr92 packets sampled in 5 secondsTraffic average for eth0rx 6.21 kbit/s 9 packets/stx 10.11 kbit/s 9 packets/s
vnstat -l
显示实时传输率
[root@linux vnstat]# vnstat -lMonitoring eth0... (press CTRL-C to stop)rx: 384 bit/s1 p/stx: 912 bit/s1 p/s^Ceth0 / traffic statisticsrx | tx--------------------------------------+------------------bytes21.60 KiB | 43.41 KiB--------------------------------------+------------------max 7.91 kbit/s | 15.87 kbit/saverage 2.85 kbit/s |5.74 kbit/smin 384 bit/s | 912 bit/s--------------------------------------+------------------packets 282 | 281--------------------------------------+------------------max 11 p/s |11 p/saverage 4 p/s | 4 p/smin 1 p/s | 1 p/s--------------------------------------+------------------time 1.03 minutes
还有好多用法,比如按天,按月等等,大家可以自行尝试。
报错解决
错误一
configure: error: could not find required sqlite3 library
解决方法
Ubuntu
# Ubuntuapt-get install sqlite3apt-get install libsqlite3-dev
CentOS
# CentOS# 方法一wget http: ///sqlite-autoconf-3070500.tar.gztar xvzf sqlite-autoconf-3070500.tar.gzcd sqlite-autoconf-3070500./configuremakemake install# 方法二:yum install -y sqlite-devel# 方法三:yum install -y sqlite3-ruby
查看版本信息:sqlite3 -version
终端进入命令:sqlite3
错误二
configure: error: no acceptable C compiler found in $PATH
解决方法
Ubuntu
# Ubuntuapt install 'g++'
CentOS
方法一yum -y install gcc gcc-c++方法二wget /sites//pub/gcc/releases/gcc-9.4.0/gcc-9.4.0.tar.gztar zxf gcc-9.4.0.tar.gzcd gcc-9.4.0yum -y install bzip2./contrib/download_prerequisites./configure --disable-multilib --enable-languages=c,c++make -j 4make install
错误三
error: Cannot download mpfr-3.1.4.tar.bz2 from ftp:///pub/gcc/infrastructure/error: Cannot download mpc-1.0.3.tar.gz from ftp:///pub/gcc/infrastructure/
error: Cannot download gmp-6.1.0.tar.bz2 from ftp:///pub/gcc/infrastructure/
wget /download/gmp/gmp-6.1.0.tar.lzwget /mpfr-current/mpfr-3.1.4.tar.bz2wget /gnu/mpc/mpc-1.0.3.tar.gzwget /pub/gcc/infrastructure/isl-0.18.tar.bz2