我在我的网络上有一个工作的sFlow收集器(vFlow,作为GitHub上的开源解决方案,非常棒)。收集器正在运行,成功地从我的网络设备接收sFlow数据,然后将其导出到MySQL数据库。现在我的管道已经开始工作了,是时候了解一下数据了。
坏消息是,我真正需要的是每流网络的吞吐量。对于从主机A到主机B的每一个采样流,我想知道:发送了多少字节?这似乎是一个简单而合理的问题。
但是当我看sFlow给我的统计数据时,没有“BytesPerSecond”、“PacketsPerSecond”或“TotalLoad”stat跳出来。我看过sflow.org上的文档,而且似乎没有一个符合我需要的神奇统计数据。
然而,有以下内容(来自这里):
无符号int sample_pool ::可以抽样的数据包总数
这似乎是抽样流中数据包的总数吗?还是网络设备在所有流中看到的数据包总数?
我还在我的TotalLen数据流数据报中看到了一个“Packet.L3”统计信息。在我的测试流量中,这几乎总是1500字节,我假设这意味着L3数据包头中的1500字节的有效负载。这似乎是准确的。
因此,如果一个sFlow数据报消息报告一个流的信息,该流中的总字节是否为:
从纸面上看,这是合乎逻辑的。
还有一件事我一直在想:我是不是因为需要在我的采样网络设备上启用特定的统计数据而没有获得吞吐量统计信息呢?还是我的收藏家需要打开这个?或者别的什么?
我一直在搜索使用sFlow生成每个流量的基本网络吞吐量统计信息的解决方案。我所做的一切似乎都是商业sFlow产品或白皮书的广告,而这些广告似乎并没有解决这个问题。有人解决过这个问题吗?如有任何建议,敬请谅解!
下面是我的一个sFlow记录的示例:
{
"Header":
{"Version":5,
"IPVersion":1,
"AgentSubID":1,
"SequenceNo":416389,
"SysUpTime":2118000,
"SamplesNo":6,
"IPAddress":"10.10.20.10"
},
"ExtSWData":
{"SrcVlan":0,
"SrcPriority":0,
"DstVlan":0,
"DstPriority":0
},
"Sample":
{"SequenceNo":2488018,
"SourceID":2,
"SamplingRate":64,
"SamplePool":159233152,
"Drops":0,
"Input":7004843,
"Output":4882507,
"RecordsNo":2
},
"Packet":{
"L2":{
"SrcMAC":"52:54:00:38:43:f3",
"DstMAC":"52:54:00:62:32:cc",
"Vlan":0,
"EtherType":2048
},
"L3":{
"Version":4,
"TOS":0,
"TotalLen":1500,
"ID":30758,
"Flags":0,
"FragOff":0,
"TTL":64,
"Protocol":6,
"Checksum":34707,
"Src":"10.10.10.10",
"Dst":"10.10.10.11"
},
"L4":{
"SrcPort":47346,
"DstPort":5201,
"DataOffset":0,
"Reserved":0,
"Flags":128
}
}
}发布于 2019-09-20 18:56:26
在示例中,您可以看到源/目标IP地址、传输协议及其端口--这就是您的流程。
您应该查看数据结构被分解的https://sflow.org/developers/specifications.php (以及其他几乎所有的东西)。
https://networkengineering.stackexchange.com/questions/62597
复制相似问题