使用ntopng和nprobe的Netflow采集性能

介绍

Ntopng与nProbe结合使用可用于收集NetFlow。这里详细描述了它们在NetFlow收集的使用。

在这篇文章中,我们测量了nProbe和ntpng一起用来收集、分析和转储NetFlow数据时的性能。其目的是提供有用的性能数据,以了解在不损失数据的情况下可以处理NetFlow的最大速率。

在给出实际数字之前,值得简单讨论一下将要使用的最相关的测量单位,即每秒的流量数–简称fps。NetFlow本身是一个旨在输出通信流的协议。它在UDP数据报中携带流,并且每个UDP数据报携带多个流。出于这个原因,当涉及到分析ntpng和nProbe在处理NetFlow时的性能时,自然要选择每单位时间的流数量。事实上,在给出性能数据时,我们将使用fps来量化分析和写入磁盘的流的数量。

了解您的NetFlow实际占多少fps,对于理解我们给出的数字以及了解ntopng和nProbe在您的网络中是否表现得足够好也是非常重要的。通常,几Mbps的NetFlow能够每秒传输数千个流。如果您不知道您的NetFlow所占的每秒流量是多少,您可以认为10 Mbps的NetFlow v9大约可以传输12,000 fps请注意,这只是一个大概的数字,因为流大小取决于v9和IPFIX的流模板。

性能数据

最后,我们来看一下2个接口和4个接口的性能数据:

 无丢弃处理速率/接口整体无丢弃处理速率
2 接口42 Kfps84 Kfps
4 接口25.5 Kfps102 Kfps

表示可变数量接口的性能数据的基本原理是多个接口:

  • 可用于有效平衡多个核心之间的NetFlow。
  • 可用于分隔多个NetFlow源的流量。

然而,为了给出一致的数字,在第一列中也用每个接口的fps来表示结果。还要注意的是,结果也适用于使用接口视图时,当启用nIndex流量转储时,预计处理率的降低在2到3Kfps之间。

举例

为了举一个真实的例子来帮助你理解上面的数字,让我们考虑一个案例,你想以85Mbps的速度收集NetFlow,也就是说,大约100Kfps。根据上表,要以100Kfps的速度收集,我们至少需要3个接口。为了安全起见,让我们建立一个有四个接口的ntpng实例–使用-i view:all的视图将流量聚合在一起。

./ntopng -i tcp://*:5556c -i tcp://*:5557c -i tcp://*:5558c -i tcp://*:5559c -iview:all -F"nindex"

假设NetFlow从2056端口到达,并且ntpng在192.168.2.225主机上运行,我们可以配置nProbe在上述四个接口上收集NetFlow和负载平衡流量,如下所示:

 ./nprobe -i none -n none --collector-port 2056 -b 1 -T "@NTOPNG@" --zmq tcp://192.168.2.225:5556 --zmq tcp://192.168.2.225:5557 --zmq tcp://192.168.2.225:5558 --zmq tcp://192.168.2.225:5559 --zmq-probe-mode --collector-passthrough

结束语

在这篇文章中,我们看到了 ntopng 和 nProbe 用于收集 NetFlow 时的性能数据。我们已经看到了如何量化NetFlow携带的每秒流量(fps),并且还确定了nProbe和ntpng的组合适用于收集100+Kfps的NetFlow。给出的数字对最新的 ntopng 4.3(即将推出 ntopng 5.0 稳定版)和 nProbe 9.5(即将推出 9.6 稳定版)有效,这代表着向高速流量收集迈出了重要一步。事实上,它们的性能超过了以前版本的性能至少15%

你可以在这里阅读更多关于高速流量采集的信息,或者直接参考用户指南