sFlow-rt 3.0流量监控工具安装部署及简单实验

时间:2024-03-01 17:37:17

首先我敢说,现在网上没有谁的文章比我这篇实验记录更加全面。在做这个实验的过程中遇到了许多问题已经解决了,看了许多博客写的内容要不就是工具太落伍了,要不就是条理不清晰,要不就是省略了重要步骤,初学者看了很容易掉坑里,因而我想借这篇文章帮助初学者少走弯路,开心愉快地做完流量监控的小实验。

以下是正文。。。。。。。

简介

sFlow流量监控工具由sFlow Agent和sFlow Collector两部分组成。

sFlow Agent作为客户端,一般内嵌于网络转发设备(如交换机、路由器),通过获取本设备上的接口统计信息和数据信息,将信息封装成sFlow报文,当sFlow报文缓冲区满或是在sFlow报文缓存时间(缓存时间为1秒)超时后,sFlow Agent会将sFlow报文发送到指定的Collector。

sFlow Collector作为远端服务器,负责对sFlow报文分析、汇总、生成流量报告。

sFlow-RT 3.0 安装

点击链接跳转至官方sFlow-rt安装包

安装的步骤很简单,只需要在Linux命令终端按以下顺序执行命令即可完成sFlow-rt的安装

wget http://www.inmon.com/products/sFlow-RT/sflow-rt.tar.gz
tar -xvzf sflow-rt.tar.gz
cd sflow-rt
./start.sh

强烈吐槽一下,用wget的方式下载安装包真的是巨慢无比,可以用迅雷或IDM下载器试试,虽然速度依然慢,但是还是可以接受。

wget下载
在这里插入图片描述
IDM下载
在这里插入图片描述
迅雷下载
在这里插入图片描述

在这里插入图片描述
打开网址http://127.0.0.1:8008
在这里插入图片描述

sFlow-RT 3.0版本具有简化的用户界面,该界面专注于管理sFlow-RT分析软件和已安装的应用程序的性能所需的指标。可以使用一些应用程序来替代前2.3版本中的功能。下面的说明了如何安装sFlow-RT 3.0基本的数据探索应用程序。

安装docker
具体安装教程查看:如何在Ubuntu上安装Docker

安装应用程序

mkdir app
docker run -v $PWD/app:/sflow-rt/app --entrypoint /sflow-rt/get-app.sh sflow/sflow-rt sflow-rt flow-trend
docker run -v $PWD/app:/sflow-rt/app --entrypoint /sflow-rt/get-app.sh sflow/sflow-rt sflow-rt browse-metrics
docker run -v $PWD/app:/sflow-rt/app -p 6343:6343/udp -p 8008:8008 sflow/sflow-rt

可以在端口127.0.0.1:8008*问产品用户界面在这里插入图片描述参考文档:sFlow-rt 3.0的app安装教程:sFlow-RT 3.0 released

sFlow-RT 3.0部署及简单实验

1.在两台Linux虚拟主机上部署

系统前提:两台Linux虚拟机A和B,至少有一台虚拟机配备好Mininet环境和OpenVSwitch交换机,以下假设只要虚拟机A符合该条件。在虚拟机B中安装并开启sFlow,在浏览器中打开http://localhost:8008查看端口的采样参数。在本实验中虚拟机A的角色是作为sFlow Agent,虚拟机B则为sFlow Collector。

在虚拟机A中输入以下命令开启Mininet虚拟拓扑网络,为简单起见使用默认的拓扑结构。

sudo mn 

在虚拟机A中打开新终端输入以下命令配置sFlow Agent:

sudo su

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

命令参数agent是要监听的网卡,target是sflow collector所在的ip地址和sflow默认端口6343,虚拟机B的ip地址为192.168.221.128,bridge设定需要监听的交换机。

通过以下命令可以查询一下配置好的agent信息和链路状态。

sudo ovs-vsctl list sflow
ip link

在这里插入图片描述
回到虚拟机A的Mininet终端输入以下命令,模拟产生网络流量。

//洪泛
h1 ping -f h2
//大数据包
iperf h1 h2

切换到虚拟机B在Collector Web界面查看监控结果,查看sFlow采样情况。
在这里插入图片描述

2.在一台Linux虚拟机上部署(通过mininet内的两台虚拟主机实现部署)

输入以下命令开启Mininet虚拟拓扑网络,为简单起见使用默认的拓扑结构。

sudo mn 

在这里插入图片描述
网桥s1无IP,通过ens33端口是无法监控到Mininet内部两个主机的ping测试。因此需要把eth0端口IP复制给s1,由s1端口作为sFlow Agent来监听,开启一个新终端

sudo ifconfig ens33 0 up
sudo ovs-vsctl add-port s1 ens33
sudo ifconfig s1 10.0.0.3 netmask 255.255.255.0
sudo route add default gw 10.0.0.1
route -n
sudo ovs-vsctl -- --id=@sflow create sFlow agent=s1 target=\"10.0.0.3:6343\"  header=128  sampling=64 polling=1 -- set bridge s1 sflow=@sflow

待sFlow Agent配置好后,会生成一个UUID。

  • agent:虚拟机对应的某个监控流量的网卡,本实验用s1网卡产生和监控流量
  • target:sFlow Collector的IP,默认端口6343;(同一台主机所以也设置为10.0.0.3,不同主机就是不同的ip)
  • bridge:需要开启sflow的网桥

在Mininet终端输入以下命令,模拟产生网络流量

h1 ping -f h2

登录sFlow Collector Web页面 ip地址为:http://10.0.0.3:8008/agents/html,查看agents中可知已将虚拟机(10.0.0.3)已加到被监控对象中,通过上述操作步骤,也可以监控多个
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述