采用sFlow工具实现流量监控--实验

简介: 采用sFlow工具实现流量监控--实验

采用sFlow工具实现流量监控—实验

学习目标

  • 采用sFlow工具实现流量监控

学习内容

  • 理解sFlow-rt的基本配置与操作;
  • 掌握mininet中sFlow agent的配置过程
  • 实验原理

sFlow的部署分为两部分:sFlow agent和sFlow collector。sFlow agent内嵌入网络设备中,获取设备的实时信息并封装成sFlow报文发送给sFlow collector。


sFlow-rt可统计到每个接口的流量信息,通过sFlow-rt的rest api获取json数据并对json数据进行解析获得。对解析到的数据进行判断分析后即可实施策略。


选择sFlow-rt好处:sFlow-rt可以提供周期性的网络接口统计采样和数据包采样,能够提供各接口的流量信息,且几乎不会对被统计设备造成任何负担,管理成本极低。


关于如何下载和使用sFlow-rt工具请参考我的这篇 博客


实验拓扑

如下图

4e1bec498db24a1e95beb9cb73082569.png



实验仿真

启动sFlow-rt以及floodlight控制器

切换到sFlow-rt目录并启动sFlow-rt

cd sflow-rt/
./start.sh

5755a261c7154f2d9bd49b7d013c9960.png


打开浏览器输入:

localhost:8080

如下图说明floodlight控制器启动成功

b17f5cd77fb74e288534d0e60bf20777.png



新开一个终端,切换到floodlight/example目录,执行以下命令查询虚拟机交换机dpid

cd floodlight/example
./cli.py switch

29ed96f05049444797a7fd425cb7947d.png


在输出结果中寻找dpid号如下



91de126726ce44a68288111274d6f6d1.png

切换到floodight安装目录下


touch dropkt.json
sudo chmod 777 dropkt.json
sudo gedit dropkt.json

执行以下命令创建文件,并使用vim命令编辑该文件

5fa47365c4134e48af269e9c838780d4.png


         


在dropkt.json文件中添加如下内容,switch对应的编号则为之前获取的虚拟机交换机dpid


d1480c1f7f98495ebc99b4da67fe5007.png


执行以下命令启动floodlight


java -jar target/floodlight.jar

dfe9260e20854d4b8e8e6056d699471f.png



创建拓扑

新开一个终端,在/mininet目录下创建文件topo-1sw_3host.py,

sudo touch topo-1sw_3host.py
sudo chmod 777 topo-1sw_3host.py
gedit topo-1sw_3host.py

c48a3f8cc51b4fbdad78f1d6de0abbf7.png

并如下添加内容

e41f40d98d9c454aba56653df7c72ba7.png



添加完成后保存退出。


执行以下命令启动Mininet,生成测试拓扑结构

sudo mn --custom /home/administrator/Desktop/mininet/topo-1sw_3host.py --topo mytopo --controller=remote,ip=127.0.0.1,port=6633 --switch ovsk,protocols=OpenFlow10

a0d4b0b20aa346418a2478f0191f5a82.png


说明


–mac指定虚拟主机的mac地址顺序编号,若不带此参数则随机编号


–controller指定of交换机的控制器


–switch指定虚拟交换机的类型,ovsk表示虚拟交换机为ovs Kernel mode


–custom指定自定义拓扑文件


–topo指定加载拓扑的名字


部署sFlow agent

步骤1.

在mininet环境中输入ifconfig命令查看当前网卡状态

ifconfig

ab1b98bcc4df4173b222d922b0f421de.png


步骤2.

在mininet上测试连通性

h1 ping h2

477ce7798d5a4feb94af569ff1651f1a.png


步骤3

执行以下命令开启OvS的sFlow功能,并配置sFlow Agent

sudo ovs-vsctl -- --id=@sflow create sflow agent=s1 target=\"127.0.0.1:6343\" header=128 sampling=10 polling=1 -- set bridge s1 sflow=@sflow


65abc3f96ff7467a813d831c14ab7933.png

参数说明:


1)agent:虚拟机对应的某个监控流量的网卡,本实验用s1网卡产生和监控流量;

2)target:sFlow-rt的IP,默认端口6343;

3)bridge:需要开启sFlow的网桥;

步骤4

输入如下命令查看已经配置的Agent信息。


sudo ovs-vsctl list sflow

2af654315f1747619713313baa2e27ba.png


输入ip link命令,查看交换机端口名称与端口编号的映射关系。


如下图我这里的docker0(eth0)对应的编号是3,s1对应的编号是13


(安装docker:主要实现Linux 机器上的本地虚拟化,目的做到轻量级、可移植性高)

b50ed7bed4eb4ec1bbfd98902aa58b3d.png



步骤5.

查看sFlow agent是否配置成功


打开浏览器输入:

localhost:8080

可以看到代理配置成功


29053470f44b475e9d3e329ab4530a47.png


进入该监控的端口列表页面,如下


3ce4ab77a0b04c04b21a897ce4f7383d.png


步骤6.

进入端口监控页面


6404c75cc85b41029762ca5549de4b9e.png


总结

流量监控是sdn中很重要的一个环节,在获取各个端口的实时信息后,可以实现很多的服务,比如负载均衡,QoS,流量工程等。


–end–


相关文章
|
5月前
|
缓存 网络协议 Linux
玩转网络调试利器:深入剖析ip命令的强大功能
玩转网络调试利器:深入剖析ip命令的强大功能
52 2
|
6月前
|
网络安全
防火墙综合实验二
防火墙综合实验二
31 4
|
Python
python脚本基于端口开启服务识别信息收集
python脚本基于端口开启服务识别信息收集
241 0
|
监控 Linux 测试技术
性能测试 基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据
性能测试 基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据
146 0
|
数据采集 运维 监控
Zabbix与乐维监控对比分析(七)——网络功能篇
本篇是Zabbix与乐维监控对比专题系列文章的第七篇——网络功能篇,具体包括IP地址管理、网络端口映射发现、网络配置备份、专线监控等功能的对比分析
268 0
Zabbix与乐维监控对比分析(七)——网络功能篇
|
监控 Shell 应用服务中间件
网络分析shell脚本(实时流量+连接统计)
网络分析shell脚本(实时流量+连接统计)
277 0
网络分析shell脚本(实时流量+连接统计)
|
数据采集 存储 JSON
数据预处理-系统监控web界面-系统运行情况数据来源|学习笔记
快速学习数据预处理-系统监控web界面-系统运行情况数据来源
229 0
数据预处理-系统监控web界面-系统运行情况数据来源|学习笔记
|
运维 监控
经常用到的PING工具监控 - WGCLOUD
WGCLOUD是一款运维监测平台,其中具备对主机、设备、链路等进行持续的PING监控
经常用到的PING工具监控 - WGCLOUD