实验-sFlow流量监控
本实验需要准备两个虚拟机:
- Mininet虚拟机:需要安装Mininet,用来创建topo产生流量。
- sFlow虚拟机:需要安装sFlow,用来监控Mininet虚拟机中的topo中产生的流量。
实验基本流程介绍:
- 准备两台Ubuntu虚拟机,一台安装Mininet,一台安装sFlow
- 在Mininet虚拟机中创建topo并产生流量
- 将Mininet虚拟机设置为sFlow的代理设备
- 在sFlow虚拟机中开启sFlow,监听代理设备中的流量
本实验在sFlow官网中有:开始
一、环境配置(sFlow虚拟机)
在sFlow虚拟机中配置环境。
1、安装JDK
参考:Linux之Ubuntu18.04安装Java JDK8的三种方式_ubuntu jave8 镜像站-CSDN博客
华为镜像站下载jdk:Index of java-local/jdk/8u151-b12
下载好后,将文件复制到虚拟机中。这里是放在了Downloads目录。
进入到JDK压缩包所在的目录,进行解压。
# 创建文件夹
sudo mkdir /usr/lib/jvm
# 将JDK解压到上面创建的文件夹
tar -zxvf jdk-8u151-linux-x64.tar.gz -C /usr/lib/jvm
查看JDK的安装目录,这里是jdk1.8.0_151,下面修改环境变量时的目录要与这里的目录名一样。
ls /usr/lib/jvm/
修改环境变量
# 打开文件
sudo vi ~/.bashrc
在文件末尾添加下面的内容
#set oracle jdk environment
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_151 ## 这里要注意目录要换成自己解压的jdk 目录
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
使环境变量立即生效
source ~/.bashrc
系统注册此JDK
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_151/bin/java 300
# 注意:/usr/lib/jvm/jdk1.8.0_151/bin/java这里也要改为自己的JDK目录
查看当前JDK版本。
java -version
如果执行上面的命令后,输出的版本与下载的JDK版本不一致,可能是安装了多个Java版本,通过下面的命令可以切换系统中的多个Java版本。
sudo update-alternatives --config java
2、安装sFlow-RT
可参考官方文档:sFlow-RT 下载
# 下载sFlow-RT软件包
wget https://inmon.com/products/sFlow-RT/sflow-rt_3.0-1707.deb
# 使用功能dpkg包管理工具安装sFlow-RT
sudo dpkg -i sflow-rt_3.0-1707.deb
# 使用这种方式安装的sflow的安装路径为/usr/local/sflow-rt/
注:使用wget下载速度比叫慢,可以将下载链接https://inmon.com/products/sFlow-RT/sflow-rt_3.0-1707.deb
复制到浏览器(或者是迅雷之类的下载工具)中进行下载,下载完成后,再使用dpkg安装。
执行下面的命令,启动sflow-rt
sudo systemctl enable sflow-rt
sudo systemctl start sflow-rt
我这里执行上面的命令无法运行。只能手动运行。
# 进入到sflow-rt安装目录
cd /usr/local/sflow-rt/bin/
# 手动运行run-rt
./run-rt
运行后,在虚拟机的浏览器中访问网址http://127.0.0.1:8008
,如下图。
这个终端(终端0)不要关闭,请重新创建一个终端继续接下来的实验。
3、安装sFlow APP
官方文档往下滑,找到安装app,参考文档进行安装。
# 进入到sFlow安装目录
cd /sur/local/sflow-rt
# 安装app
./get-app.sh sflow-rt browse-flows
# 要安装其他app,只需将browse-flows改为app名称即可j
# 本实验需要安装browse-flows、browse-metrics和mininet-dashborad三个app
根据提示,重启sFlow,浏览器访问8008端口端口,就能看到刚刚安装的app。
二、创建topo(Mininet虚拟机)
在Mininet虚拟机中打开一个终端,执行下面的命令,创建topo。
# 创建topo
sudo mn
用h1 ping h2,产生流量。
h1 ping h2
三、部署sFlow Agent(Mininet虚拟机)
在Mininet虚拟机中重新打开一个终端,执行下面的命令,开启 OvS 的 sFlow 功能。
sudo ovs-vsctl -- \
--id=@s create sFlow agent=s1-eth1 target=\"192.168.66.52:6343\" \
-- set bridge s1 sflow=@s
解释:
- agent:被监控的端口。(这里为mn命令创建的虚拟网桥s1的s1-eth1端口)
- target:sFlow Collector(收集器)的 IP,默认端口6343;(192.168.66.52是sFlow虚拟机的IP地址,6343端口是sFlow的默认端口)
- bridge:需要开启 sflow 的网桥;
- set:将上面的sFlow配置应用到网桥s1上
打开物理机中的浏览器,在地址栏输入192.168.66.52:8008
(sFlow虚拟机的IP),查看监控结果。
打开browse-flows app
设置参数,点击Submit。即可监控到s1-eht1的流量,如下图。
ipsource,ipdestination
bps
标签:rt,Mininet,sFlow,sflow,虚拟机,监控,安装 From: https://www.cnblogs.com/chuangblog/p/18605752参考文章:
基于Mininet,搭建简单的sFlow测试环境 - cyquen - 博客园
sFlow-rt 3.0流量监控工具安装部署及简单实验_启动sflow显示cannot open sflow port 6343-CSDN博客