如何监控CentOS/RHEL Linux服务器的网络流量

时间:2019-11-20 08:52:42  来源:igfitidea点击:

问题

如何将CentOS系统每天的网络流量进行统计?
如何检查Linux的网络流量?

解决方案

可以使用 vnstat命令,它是基于控制台的网络流量监视器。
它从proc文件系统分析流量信息。
会记录选定接口的每小时,每日和每月网络流量。

安装vnstat

首先,在CentOS 6/RHEL 6或RHEL 7/CentOS 7.x上启用EPEL仓库。

# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

执行以下yum命令以安装vnstat:

# yum --disablerepo=\* --enablerepo=epel install vnstat

如果使用的是Fedora Linux,使用dnf命令:

# dnf update
# dnf install vnstat

vnstat配置

编辑/etc/vnstat.conf

# vi /etc/vnstat.conf

将默认接口设置为要监控的网口eth1:

Interface "eth1"

创建数据库

运行以下命令来创建数据库。

首先使用chsh将vnstat的shell设置为/bin/bash,
否则This account is currently not available.

# chsh -s /bin/bash vnstat
# grep --color vnstat /etc/passwd
# id vnstat

使用runuser命令为eth1接口创建数据库(新安装vnstat才需要创建):

# runuser -l vnstat -g vnstat -c '/usr/bin/vnstat -u -i eth1'

Info: -> A new database has been created.

否则会报错

No database found, nothing to do. Use --help for help.

A new database can be created with the following command:
    vnstat --create -i eth0

Replace 'eth0' with the interface that should be monitored.

The following interfaces are currently available:

禁止vnstat用户登录:

# chsh -s /sbin/nologin vnstat
# grep --color vnstat /etc/passwd
# id vnstat

启动vnstat服务

设置开机时自启动:

# chkconfig vnstat on

启动/停止/重启vnstart服务或者查看状态:

# service vnstat start
# service vnstat stop
# service vnstat restart
# service vnstat status

如果是CentOS/RHEL版本7.x,
还可以使用下面的命令启动/停止/重启vnstart服务

$ sudo systemctl start vnstat
$ sudo systemctl stop vnstat
$ sudo systemctl restart vnstat
$ sudo systemctl status vnstat

Linux如何查看网络流量的统计信息?

vnstat语法为:

vnstat
vnstat -i {interface} 
vnstat -i {interface} -option
vnstat -i {interface} -option1 -option2
$ vnstat

输出示例:

          rx:  16 KiB      tx:  6 KiB      total:  22 KiB

   monthly
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
       Dec '20        16 KiB |       6 KiB |      22 KiB |    0.00 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated        --     |      --     |      --     |

   daily
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
         today        16 KiB |       6 KiB |      22 KiB |    0.01 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated        --     |      --     |      --     |

CentOS/RHEL 查看eth1流量统计信息:

$ vnstat -i eth1

CentOS/RHEL 查看eth0的每日流量统计信息:

$ vnstat -i eth0 -d

CentOS/RHEL 查看每小时的网络流量统计信息:

$ vnstat -i eth0 -h

CentOS/RHEL 查看每月的网络流量统计信息:

$ vnstat -i eth0 -m

CentOS/RHEL 查看每周的网络流量统计信息:

$ vnstat -i eth0 -w

查看排名前10位的网络统计信息:

$ vnstat -t
$ vnstat -i eth0 -t

查看简短的输出:

$ vnstat -i eth0 -s

CentOS/RHEL 计算网络流量:

$ vnstat -i eth0 -tr

CentOS/RHEL 实时查看网络接口eth0的传输速率:
CentOS/RHEL 实时查看网卡的传输速率:

$ vnstat -i eth0 -l