sFlow虚拟机流量监控

news/2025/3/10 15:54:24/文章来源:https://www.cnblogs.com/chuangblog/p/18605752

实验-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博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/852068.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

八、ArkTS-语句-类型进阶与渲染控制

1.对象数组 1.1定义对象数组 它是一个自定义对象类型的数组,数组元素是自己定义对象类型的对象,就是数组元素是对象,数组类型是自定义对象的类型//第一步通过接口定义对象 interface student{stuID:number,name:string,gender:string,age:number }//基于接口创建对象数组 le…

在CodeBolcks+Windows API下的C++编程教程——给你的项目中添加资源文件和图标

0.前言 我想通过编写一个完整的游戏程序方式引导读者体验程序设计的全过程。我将采用多种方式编写具有相同效果的应用程序,并通过不同方式形成的代码和实现方法的对比来理解程序开发更深层的知识。 了解我编写教程的思路,请参阅体现我最初想法的那篇文章中的“1.编程计划”:…

20222402 2024-2025-2 《网络与系统攻防技术》实验七实验报告

1.实验内容 1.1本周学习内容 网络攻击基本模式 ①截获 嗅探 监听 ②篡改 数据包篡改 ③中断 拒绝服务 ④伪造 欺骗 IP 源地址欺骗: 伪造具有虚假源地址的 IP 数据包进行发送√目的:隐藏攻击者身份、假冒其他计算机通过身份验证 1.2实验内容及要求 本实践的目标理解常用网络欺诈…

转载:【AI系统】LLVM IR 基本概念

在上一篇文章中,我们已经简要介绍了 LLVM 的基本概念和架构,我们现在将更深入地研究 LLVM 的 IR(中间表示)的概念。 了解 LLVM IR 的重要性是为了能够更好地理解编译器的运作原理,以及在编译过程中 IR 是如何被使用的。LLVM IR 提供了一种抽象程度适中的表示形式,同时能够…

转载:【AI系统】AI 框架基础介绍

什么是 AI 算法?什么是神经网络?神经网络有什么用?为什么神经网络需要训练?什么是模型?AI 框架有什么用?AI 框架能解决什么问题? 上面的几个问题其实还挺有挑战的,也是本文需要回答的一个问题。下面来对一些基础概念进程澄清:首先深度学习是机器学习研究领域中的一种范…

转载:【AI系统】谷歌 TPU v1-脉动阵列

本文深入探讨了谷歌 TPU v1 的架构和设计原理。我们将解析 TPU v1 芯片的关键元素,包括 DDR3 DRAM、矩阵乘法单元(MXU)、累加器和控制指令单元。重点介绍脉动阵列(Systolic Array)的工作原理,它是 TPU 的核心,通过数据的流水线式处理实现高效的矩阵乘法计算。此外,我们…

GitLab安装使用

GitLab安装GitLab的安装 1. 环境配置 关闭防火墙和selinux [root@gitlab ~]# systemctl stop firewalld [root@gitlab ~]# systemctl disable firewalld Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service". Removed "/etc/systemd/syst…

2024-2025-1 20241401 《计算机基础与程序设计》 第十二周学习总结

班级链接 2024计算机基础与程序设计作业要求 第十二周作业教材学习内容总结 《C语言程序设计》第11章指针与一维数组间的关系: 指针和一维数组之间的联系,包括如何使用指针访问数组元素等。 指针与二维数组间的关系: 指针与二维数组交互的方式,以及相关的访问方法。 指针数…

转载:【AI系统】编译器基础介绍

随着深度学习的不断发展,AI 模型结构在快速演化,底层计算硬件技术更是层出不穷,对于广大开发者来说不仅要考虑如何在复杂多变的场景下有效的将算力发挥出来,还要应对 AI 框架的持续迭代。AI 编译器就成了应对以上问题广受关注的技术方向,让用户仅需专注于上层模型开发,降…

转载:【AI系统】昇腾 AI 处理器

本文将会介绍华为昇腾 AI 处理器的架构与卷积加速原理。昇腾 AI 处理器是华为基于达芬奇架构专为AI计算加速而设计的处理器,它支持云边端一体化的全栈全场景解决方案,具有高能效比和强大的 3D Cube 矩阵计算单元,支持多种计算模式和混合精度计算。 昇腾 AI 处理器的架构包括…

转载:【AI系统】CPU 计算时延

CPU(中央处理器)是计算机的核心组件,其性能对计算机系统的整体性能有着重要影响。CPU 计算时延是指从指令发出到完成整个指令操作所需的时间。理解 CPU 的计算时延对于优化计算性能和设计高效的计算系统至关重要。在本文中我们将要探讨 CPU 的计算时延组成和影响时延产生的因…