2024-12-13 19:50阅读: 166评论: 0推荐: 0

sFlow虚拟机流量监控

实验-sFlow流量监控

本实验需要准备两个虚拟机:

  • Mininet虚拟机:需要安装Mininet,用来创建topo产生流量。
  • sFlow虚拟机:需要安装sFlow,用来监控Mininet虚拟机中的topo中产生的流量。

image-20241111161207070

实验基本流程介绍:

  1. 准备两台Ubuntu虚拟机,一台安装Mininet,一台安装sFlow
  2. 在Mininet虚拟机中创建topo并产生流量
  3. 将Mininet虚拟机设置为sFlow的代理设备
  4. 在sFlow虚拟机中开启sFlow,监听代理设备中的流量

本实验在sFlow官网中有:开始

一、环境配置(sFlow虚拟机)

在sFlow虚拟机中配置环境。

1、安装JDK

参考:Linux之Ubuntu18.04安装Java JDK8的三种方式_ubuntu jave8 镜像站-CSDN博客

华为镜像站下载jdk:Index of java-local/jdk/8u151-b12

image-20241028153537432

下载好后,将文件复制到虚拟机中。这里是放在了Downloads目录。

image-20241028153637555

进入到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/

image-20241028154320370

修改环境变量

# 打开文件
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  

image-20241028154530249

使环境变量立即生效

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

image-20241028154856369

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安装。

image-20241028145757287

执行下面的命令,启动sflow-rt

sudo systemctl enable sflow-rt
sudo systemctl start sflow-rt

我这里执行上面的命令无法运行。只能手动运行。

# 进入到sflow-rt安装目录
cd /usr/local/sflow-rt/bin/
# 手动运行run-rt
./run-rt

image-20241028155446960

运行后,在虚拟机的浏览器中访问网址http://127.0.0.1:8008,如下图。

image-20241028155802037

这个终端(终端0)不要关闭,请重新创建一个终端继续接下来的实验。

3、安装sFlow APP

官方文档往下滑,找到安装app,参考文档进行安装。

image-20241104145322640

# 进入到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。

image-20241111154752242

image-20241111154844045

二、创建topo(Mininet虚拟机)

在Mininet虚拟机中打开一个终端,执行下面的命令,创建topo。

# 创建topo
sudo mn

image-20241028160215153

用h1 ping h2,产生流量。

h1 ping h2

image-20241028200718031

三、部署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),查看监控结果。

image-20241028201803081

打开browse-flows app

image-20241111155259698

设置参数,点击Submit。即可监控到s1-eht1的流量,如下图。

ipsource,ipdestination
bps

image-20241111155347119

image-20241111155453742

参考文章:

基于Mininet,搭建简单的sFlow测试环境 - cyquen - 博客园

sFlow-rt 3.0流量监控工具安装部署及简单实验_启动sflow显示cannot open sflow port 6343-CSDN博客

本文作者:最爱喝开水

本文链接:https://www.cnblogs.com/chuangblog/p/18605752

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   最爱喝开水  阅读(166)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起