在这里我主要介绍三个网络运维工具:
iftop ntopng iperf
一、先来看看iftop
iftop是一个免费的网卡实时流量监控工具,类似于linux下的top命令,iftop可以监控指定网卡的实时流量、端口连接信息,反向解析ip,还可以精确的显示本机网络流量情况及网络内各主机与本机互相通信的流量状况。
iftop的安装
iftop官网:http://www.ex-parrot.com/pdw/iftop/
有源码编译安装和rpm包安装,两种方法都很简单。如果用源码编译安装,下载下来直接./configure 就可以了,rpm包安装则更简单就不用说了。
iftop 使用参数:
-i 指定需要监测的网卡
-n 将输出的主机信息都通过ip显示,不进行dns反向解析
-b 将输出以byte为单位显示网卡流量,默认是bit
-p 以混杂模式运行iftop,此时iftop可以用作网络嗅探器
-n 只显示连接端口号,不显示端口对应的服务名称
-p 显示主机以及端口信息
-f 显示特定网段的网卡进出流量
-m 设置iftop输出界面中最上面的流量刻度最大值,流量刻度分5个大段显示
在最下面三行,tx表示发送数据,rx表示接收数据,total表示发送和接收的全部流量。其中,cumm表示从运行iftop到目前的发送、接收和总数据流量。peak表示发送、接收以及总的流量峰值;rates表示过去2s、10s、40s内的平均流量值。
交互参数说明:
p 通过此键可切换暂停/继续显示
h 通过此键可以在交互参数界面/状态输出界面
b 切换是否显示平均流量图像调
t 切换是否显示每个连接的总流量
j/k 向上或向下滚动屏幕当前显示的信息
l 通过此键可打开iftop输出过滤功能,比如输入要显示的ip,按回车键后,屏幕就只显示与这个ip相关的流量信息
l 切换显示流量的刻度范围
t 切换iftop显示格式,连续按此键可依次显示:以两行方式显示发送、接收流量,以一行方式显示发送接收流量,只显示发送流量/只显示接收流量
o 通过此键可切换是否固定显示当前的连接
二、网络管理系统ntopng
安装ntopng
下载地址:http://www.nmon.net/centos/
这里有提供rpm格式的安装包,直接使用yum安装即可。
yum install pfring n2disk nprobe ntopng ntopng-data nbox -y
创建配置文件
# vim /etc/ntopng/ntopng.conf
-g=/var/tmp/ntopng.gid
--local-networks "192.168.31.0/24"
--interface eth0
--user nobody
--http-port 3000
相关参数含义如下:
-g 指定存储ntopng进程号的文件路径
--local-network 指定要监控的本地子网段
--interface eth0 指定要监听eth0网卡上的流量
--user指定运行ntopng服务所使用的帐户
--http-port指定ntopng的web服务端口号,默认端口为3000.
启动ntopng服务之前需要启动redis服务,因为ntopng服务依赖redis服务的键值存储。
service redis start
service ntopng start
ntopng 常用参数:
-d 将ntopng进程放到后台执行,默认ntop在前台运行。
-u 指定启动ntopng执行的用户,默认是nobody用户。
-i 指定ntopng监听的网卡设备,指定多块网卡时,用逗号隔开。
-m 如果通过-i 参数指定了多块网卡,那么输出的网卡流量信息默认是合并的,如果要将多块网卡信息分开统计,就需要添加此参数。
-l 将ntopng的输出信息写入系统日志文件中,对应于centos,就是/var/log/message文件
-w 设置ntopng的web界面使用的端口,默认是3000
-r 设定ntopng的web界面自动刷新频率,默认是每3s刷新一次。
服务启动起来以后,就可以通过web界面访问了。
默认帐号密码:admin
三、网络性能评估工具iperf
iperf是一个基于tcp/ip和udp/ip的网络性能测试工具,它可以用来测量网络带宽和网络质量,还可以提供网络延迟抖动、数据包丢失率、最大传输单元等统计信息。网络管理员可以根据这些信息了解并判断网络性能问题,从而定位网络瓶颈。
iperf的主要功能:
tcp方面
测试网络带宽
支持多线程,在客户端与服务器支持多重连接
报告mss/mtu值的大小
支持tcp窗口值自定义并可通过套接字缓冲
udp方面
可以设置指定带宽的udp数据流
可以测试网络抖动值、丢包数
支持多播测试
支持多线程,在客户端与服务器端支持多重连接
iperf 官网:http://iperf.fr
安装iperf
tar zxvf iperf-2.0.5-source.tar.gz
cd iperf-2.0.5
./configure --prefix /usr/local/iperf
make && make install
cp /usr/local/iperf/bin/iperf /usr/bin/
iperf参数说明:
服务端专用选项
-s 将iperf以服务器模式启动,例如:iperf –s iperf默认启动的监听端口为5201,可以通过“-p”选项修改默认监听端口
-d 将iperf作为后台守护进程运行,例如:iperf –s –d
客户端专用选项
-c 将iperf以客户端模式启动
-u 指定使用udp协议
-b [k|m|g] 指定udp模式使用的带宽,单位bits/sec。此选项与-u 选项相关。 默认1 mbits/sec
-t 指定传输数据包的总时间。 iperf将在指定的时间内,重复发送指定长度数据包。 默认10s
-n [k|m|g] 指定传输数据包的字节数
-l 指定读写缓冲区的长度,tcp方式默认大小为8kb,udp方式默认大小为1470b
-p 指定客户端与服务器端之间使用的线程数,默认是1个线程。需要客户端与服务器端同时使用此参数
-r 切换数据发送、接收模式
-w 指定套接字缓冲区大小
-b 用来绑定一个主机地址或接口,这个参数仅用于具有多个网络接口的主机。
-m 设置tcp最大信息段的值
-n 设置tcp无延时
客户端与服务器端公用选项
-f [k|m|g|k|m|g] 指定带宽输出单位
-p 指定服务器端使用的端口或客户端所连接的端口
-i 指定每次报告之间的时间间隔,单位为秒。 默认值为1.
-f 指定文件作为数据流进行带宽测试
实战演练:
要使用ifperf,首先启动一个服务器端。
./bin/iperf -d -s
然后来到客户端这边测试
# iperf -c 192.168.31.253
------------------------------------------------------------
client connecting to 192.168.31.253, tcp port 5001
tcp window size: 19.3 kbyte (default)
[ 3] local 192.168.31.254 port 49057 connected with 192.168.31.253 port 5001
[ id] interval transfer bandwidth
[ 3] 0.0-10.0 sec 1.41 gbytes 1.21 gbits/sec
指定发送数据的大小,指定输出的单位,指定线程数。
# iperf -c 192.168.31.253 -n 2000000000 -f m -p 2
-----------------------------------------------------------
tcp window size: 0.02 mbyte (default)
[ 4] local 192.168.31.254 port 49058 connected with 192.168.31.253 port 5001
[ 3] local 192.168.31.254 port 49059 connected with 192.168.31.253 port 5001
[ 3] 0.0-17.5 sec 1907 mbytes 109 mbytes/sec
[ 4] 0.0-23.5 sec 1907 mbytes 81.3 mbytes/sec
[sum] 0.0-23.5 sec 3815 mbytes 163 mbytes/sec
测试udp丢包和延迟
iperf -c 192.168.31.253 -u -b 50m -f m -i 2
笔者安装的iperf是2.0版本的,建议大家按照3.0版本。 学习总结完成!