sFlow 是一种网络流量监测技术,它能够有效地对网络流量进行采样和分析。其名称中的“s”代表“sampling”,即采样的意思。sFlow 工作原理的核心在于通过对网络流量进行随机采样,从而提供整体网络流量和性能的实时视图,同时有效地减少了对设备资源的消耗。
主要特点:
- 采样技术:sFlow 可以以预定的速率进行数据包的采样,帮助网络管理员了解网络流量模式而不需要处理每一个数据包。
- 支持多种协议:sFlow 支持多种网络层次的协议,包括以太网、IP 和 TCP/IP 等。
- 实时监控:sFlow 提供实时数据,可以帮助识别网络中的问题、流量峰值以及潜在的安全威胁。
- 可扩展性:适用于各种规模的网络,无论是小型企业还是大型数据中心。
应用场景:
- 性能监控:监控虚拟机、服务器、应用程序之间的流量。
- 安全分析:识别异常流量以防止潜在的攻击。
- 流量管理:优化带宽和资源配置,根据流量情况进行调整。
本文档介绍如何使用 Open vSwitch 通过 sFlow 采集器监控同一主机上两台虚拟机之间的流量。
sFlow 的应用包含两个要素
- sFlow agent (OvS 创建)
- sFlow collector(引用 外部组件, sFlowTrend)
• Data Network: 以太网用于虚拟机数据流量。对于实验,这个物理网络是可选的。您可以将所有虚拟机连接到没有连接到物理接口的网桥上。
• Management Network:这个网络必须存在,因为它用于将sFlow数据从代理发送到远程收集器。
在 host1 上,运行以下 OvS 相关命令创建一个 sFlow 配置并将其连接到 bridge br0:
注意这个命令返回的 UUID;该值用于删除 sFlow 配置:
- 还要配合一个 sFlow 采集器:sFlowTrend
在 hostMon 上,进入 sFlowTrend,点击右上角的“Install”。 如果您安装了 Java ,这将下载并启动 sFlowTrend 应用程序。
一旦 sFlowTrend 开始运行,sFlowTrend 应用程序右下角的指示灯应该闪烁绿色,表示收集器正在接收流量。
sFlow 配置现在已经完成,hostMon 上的 sFlowTrend 应该从 host1 上的 OVS 接收 sFlow 数据。
# 清理
ovs-vsctl list sflow
ovs-vsctl remove bridge br0 sflow <sFlow UUID>
和 pktvisor 对比
pktvisor 其实也是一个 sFlow collector ,这里其实也是。如果需要把监控流暴露出去,比如给 ORB,那么需要一个 agent。
总结:
云原生网络 和 SDN 本身在实践上,在可观察性方面都是互有冗余的,很多功能几乎也是可以互相替代的。
内核态和用户态是一个优先考虑的点,如果都是内核态,还是要做一些选择的:比如 NS 里面,NS 外面,主机里面,主机外面等