sFlow监控OVS使用测试

本文介绍了在OVS上进行sFlow监控的测试过程,包括sFlow的基本概念、sFlow Collector工具inMon sFlowTrend和SFlow-RT的安装、配置OVS的sFlow设置,以及如何在Linux和Windows环境下进行安装。通过sFlow,可以实现对网络流量的实时监控和分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OVS下的sFlow 测试

sflow概述

sFlow是Sampled Flow的简称,是一种用于监控数据网络上交换机或者路由器流量转发状况的技术。

sFlow系统包含一个嵌入在设备中的sFlow Agent和远端的sFlow Collector

  • sFlow Agent 内嵌于网络设备中,在sFlow系统中收集流量统计数据发送到Collector端供分析
  • sFlow Collector 通常由专门服务器充当,在sFlow系统中收集各Agent的采样数据并以图表形式加以汇总

原理什么的 暂时 也不去了解了。什么消息类型格式什么的。。。采用UDP封装,缺省目的端口号为端口6343 也就是sFlow Agent 会将收集的流量统计信息 发往安装sFlow Collector 主机的6343 端口。

sFlow Collector 工具

sFlow Agent 内嵌于网络设备中,不用特别的设置。
sFlow Collector 工具倒是需要自己找。因为要将收集的数据制表制图什么的,当然,厉害的大神 自己根据端口收集的数据 自己制表制图 也是可以的。

总之,按个人理解 sFlow Collector是一个 数据分析工具,,,把从6343端口收到的数据进行分析 然后制成可视化的 图表的工具。

从网上 看到的 几个 工具

  1. SolarWinds sFlow Collector and Analyzer(免费试用)
  2. Paessler PRTG Network Monitor(免费试用)
  3. inMon sFlowTrend
  4. ManageEngine NetFlow Analyzer
  5. ntopng and nProbe
  6. Plixer Scrutinizer

嗯,各有特点。。。本实验当然用免费的 inMon sFlowTrend。可以顺便测试一下同是inMon 产品的 sFlow-RT。

  • inMon sFlowTrend sFlowTrend 是免费的,图形按的网络和服务器监控功能。使用sFlow标准,提供全面用户和应用的网络带宽使用情况。
    sFlowTrend™ is a free, graphical network and server monitoring tool. sFlowTrend makes use of the popular sFlow® standard to generate real-time displays of the top users and applications making use of network bandwidth. sFlowTrend also uses the extensions to the sFlow standard for monitoring physical and virtual server performance, to link network, server, and application performance and provide an end-end view of networked system performance. sFlowTrend accepts sFlow data from at most five switches or hosts and stores one hour of data in memory. sFlowTrend-Pro does not limit the number of switches or hosts that can be monitored and stores historical data to disk.
  • SFlow-RT sFlow流量监控工具,可直观的展现网络中的流量以及其他监控信。
    sFlow-RT™ incorporates InMon’s asynchronous analytics technology (U.S. Patents 8838774, 9509583, 9712443, 9722926), delivering real-time visibility to Software Defined Networking (SDN), DevOps and Orchestration stacks and enabling new classes of performance aware application such as load balancing, DDoS protection, and workload placement.

安装inMon sFlowTrend

安装前 要先安装JDK 环境1.8以上

免费版似乎最多支持 5个 交换机的监听。。。

Windows下安装

安装包
32位 系统
https://inmon.com/products/sFlowTrend/downloads/sFlowTrend-windows-x32-7_0_1.exe
64 位 系统
https://inmon.com/products/sFlowTrend/downloads/sFlowTrend-windows-x64-7_0_1.exe

就是一个软件 正常安装就行。。。
从sFlowTrendV7.0开始,Java客户端已经被删除,现在必须使用Web客户端连接到sFlowTrend服务器。一旦安装了sFlowTrend,将浏览器指向http://localhost:8087或https://localhost:8443(当然,如果远程访问服务器,您可以将localhost替换成对应主机名)

所以 安装完成是 没有 一个启动程序的。。。可以在服务中找到它

Window下安装
防火墙也要设置一下 不然6343端口可能收不到统计信息
Windows防火墙-》高级设置-》入站规则-》新建规则
然后定义-》端口-》udp/6343-》允许连接-》何时应用该规则全选上-》再设置名称(随意)
设置防火墙
然后 访问 本机的8087端口或者 设置https后访问8443端口 便可以查看到
第一次 使用 可能会让输入 许可证 号之类。。。选择 free 就是免费版。。。
sFlow的window版界面
然后就可以查看了。当前没有 交换机 向其发消息 所以 找不到。稍后再设置 OVS 虚拟交换机 发送sflow 消息。

Linux下安装

为linux下安装似乎准备了不少方式
.sh可执行文件
https://inmon.com/products/sFlowTrend/downloads/sFlowTrend-unix-7_0_1.sh
rpm 安装包
https://inmon.com/products/sFlowTrend/downloads/sFlowTrend-linux-7_0_1.rpm
deb 包
https://inmon.com/products/sFlowTrend/downloads/sFlowTrend-linux-7_0_1.deb

建议.sh 可执行文件安装 还可以控制软件安装位置(一般选择默认) 。。算是交互式安装了。使用rpm 安装包安装后。个人不知道默认的安装包在哪里。。。

下载.sh 文件到 系统。我的是 CentOS7。嫌wget慢就先下载 然后ftp方式传到CentOS系统

wget https://inmon.com/products/sFlowTrend/downloads/sFlowTrend-unix-7_0_1.sh

下载完成后 为该文件赋予可执行权限 。执行该可执行文件需要是root权限用户

su
chmod u+x sFlowTrend-unix-7_0_1.sh
./sFlowTrend-unix-7_0_1.sh

然后就是安装,这个基本上应该都没问题,都选默认的就好。
CentOS7安装
安装完成
SFlowTrend安装完成CentOS7下
CentOS7 下 也是以一个 守护进程运行(服务)。 服务名sflowtrend-server

systemctl status sflowtrend-server

查看trend状态
这个服务启动停止 等和正常 CentOS下服务一致。。注 服务名是sflowtrend-server 不要少了 -server

然后 防火墙 关闭 或者 开放 udp/6343 端口 即可。
由于是在VMWare 的CentOS7虚拟机下安装的。IP是192.168.199.91
访问

http://192.168.199.91:8087

远程访问

安装inMon SFlow-RT

安装前 要先安装JDK 环境1.8以上

https://sflow-rt.com/download.php

两个安装一个就好。。。同时安装会出出错,因为都要监听6343 端口。。。
个人也不清楚 哪个更好用 更适合作为监控。(毕竟也是初学)

SFlow-RT 的安装更简单。。。解压后 执行可执行文件即可

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

这个应该没有 windows版。。。。
执行 start.sh 这个可执行文件。。。

sflow-rt
是一个前台执行的 应用。。。访问 IP:8008 端口即可查看分析的结果
sflow-rt 初始
清楚地看到 Agents 为0 目前没有 交换机发来sflow 消息。。。
真正要查看 状态 是在 Apps 里面。。。 可以把 apps 当作 不同角度的分析工具 而初始安装的 只是一个展示界面。。

初始未安装apps
安装apps也很简单
./sflow-rt/get-app.sh sflow-rt 加上要安装的应用名即可
https://sflow-rt.com/download.php
可安装应用

如 基本上必备的 flow-trend 和 browse-metrics

./sflow-rt/get-app.sh sflow-rt flow-trend
./sflow-rt/get-app.sh sflow-rt browse-metrics

安装完成再重新执行

./sflow-rt/start.sh

apps安装完成

再次访问 IP:8008 查看apps
多了两个刚安装的 应用
然后就可以 点击 应用 筛选 查询了。。。
至于API 可自行查看 应该是 使用 网络请求 获取 json 格式的数据。

SFlow-RT 运行时一直占据前台。。。让人有点 不爽。可以 使用nodup 命令使其在后台执行。 其它前台显示命令也适用 会把命令返回结果 放到 执行该命令时的 同级 目录下 的 nohup.out

nohup ./sflow-rt/start.sh &

后台执行
可以看到 命令在后台执行。且nohuo.out 记录了程序返回内容。
使用命令

 jobs -l

查看 后台运行 任务 及 进程号。。。可通过 进程号 如11500 杀死该进程

kill -9 11500 

设置 OVS 的Bridge 设置sFlow

发送给sFlow Collector 工具的 消息 都是一样的。区别只是不同的 工具 从不同的角度分析 生成不同的 可是图表而已。。。

暂定已经安装好了 OVS 设置了网桥等。。。
ovs-vsctl show

查看当前 sflow 配置
ovs-vsctl list sflow

为空

进行sflow 配置
COLLECTOR_IP=192.168.199.153
COLLECTOR_PORT=6343
AGENT_IP=ens33
HEADER_BYTES=128
SAMPLING_N=64
POLLING_SECS=10

ovs-vsctl -- --id=@sflow create sflow agent=${AGENT_IP} target=\"${COLLECTOR_IP}:${COLLECTOR_PORT}\"  header=${HEADER_BYTES} sampling=${SAMPLING_N} polling=${POLLING_SECS} -- set bridge cloudbr0 sflow=@sflow

前面设置 环境变量 后面设置 sflow。。。
待sFlow Agent配置好后,会生成一个UUID。

(1) agent:虚拟机的网卡。使用该网卡将sflow信息发送到COLLECTOR_IP的COLLECTOR_PORT。如果设置了错误的网卡名,还是会选择一个网卡将信息发送出去。
(2) target:sFlow Collector的IP,默认端口6343;(宿主机Windows安装了sflowtrend所以设置为192.168.199.153,不同主机就是不同的ip)
(3) bridge:需要开启sflow的网桥
一行命令执行就是

ovs-vsctl -- --id=@sflow create sFlow agent=ens33 target=\"192.168.199.153:6343\"  header=128  sampling=64 polling=1 -- set bridge cloudbr0 sflow=@sflow

设置sflow

这时 在 浏览器访问 192.168.199.153:8087 应该可以查看到数据了
图表展示

这个sflowtrend 显示的是ifindex 想要和设置的端口名 对应 还需自己查看 如ifindex 15 对应 端口 ens33
当然 也许是自己没找到对应的图表。。。

ovs-vsctl list sflow
[root@agent ~]# ovs-vsctl list sflow
_uuid               : 3adf5553-cb3b-443d-9890-d6168333c0e3
agent               : "ens33"
external_ids        : {}
header              : 128
polling             : 1
sampling            : 64
targets             : ["192.168.199.153:6343"]
[root@agent ~]# ovs-vsctl list interface
_uuid               : 543afdf0-ff40-4d27-b54b-08328aabd84f
admin_state         : up
bfd                 : {}
bfd_status          : {}
cfm_fault           : []
cfm_fault_status    : []
cfm_flap_count      : []
cfm_health          : []
cfm_mpid            : []
cfm_remote_mpids    : []
cfm_remote_opstate  : []
duplex              : full
error               : []
external_ids        : {attached-mac="1e:00:11:00:00:42", iface-id="dc24ec05-a0c5-4ef3-88b6-2c598f6ee7e5", iface-status=active, vm-id="62b759d3-a9f8-46e4-9cd6-798302e92018"}
ifindex             : 15
ingress_policing_burst: 0
ingress_policing_rate: 0
lacp_current        : []
link_resets         : 1
link_speed          : 10000000
link_state          : up
lldp                : {}
mac                 : []
mac_in_use          : "fe:00:11:00:00:42"
mtu                 : 1500
name                : "vnet6"
ofport              : 6
ofport_request      : []
options             : {}
other_config        : {}
statistics          : {collisions=0, rx_bytes=0, rx_crc_err=0, rx_dropped=0, rx_errors=0, rx_frame_err=0, rx_over_err=0, rx_packets=0, tx_bytes=11029464, tx_dropped=0, tx_errors=0, tx_packets=38818}
status              : {driver_name=tun, driver_version="1.6", firmware_version=""}
type                : ""
sflow 设置 删除

根据 uuid 删除 sflow

ovs-vsctl remove bridge cloudbr0 sflow uuid

ovs-vsctl remove bridge cloudbr0 sflow 3adf5553-cb3b-443d-9890-d6168333c0e3

清除 sflow

使用sFlow测试监控 CloudStack。

使用 sflow-trend

使用sflow-rt

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值