酷徒LOGO

在每个虚拟网络接口上如何实时显示流量?


问题:

我有一个专用的服务器,有几个虚拟网络接口,每个都映射到一个 public IP地址。 如何监视每个用户的实时流量,理想情况下为单个屏幕?

我想要的是这样的东西:


eth0:0 123 packets/s


eth0:1 234 packets/s


eth0:2 345 packets/s



我试过 iptrafiftopjnettop,但是我无法让任何一个通过虚拟接口来对显示进行分组: 它们都显示了整个 eth0

注意,只要在CentOS上可用,我就可以对其它工具开放。


回答 1:

这种设备方法不是解决方案,因为内核不将"虚拟网络设备"视为单独的设备。 从技术上讲,"虚拟网络设备"只是特定ip地址上的标签。 查看 ip addr的输出很明显,即使在检查 ifconfig 输出时,也没有列出实际的"设备"块。 ip-address的手册页也显示它被认为是一个"标签"。 使用 ip addr 设置此类配置需要使用 label 选项。

几乎所有可视化实时通信的命令行工具都依赖于 netlink 协议( 比如。 参见 ip net link ) 或者从 /proc/net/dev 读取接口数据。 这两种情况下都没有列出虚拟设备,不能让这样的实用程序显示你需要的信息。

因此,仅根据基于 ip/分组的基于/分组的信息来可视化数据是可行的,这是惟一可行的。

例如 ntopng 是一种实时可视化套接字连接数据的方法。 它也应该提供灵活性,以便在ip中为多个屏幕进行多次操作。 它仍然是基于web的用户界面,而不是在 命令行 中使用。 对于 rhel/centos,它在单独的ntopng ( http://packages.ntop.org/centos/ ) 存储库中可用,需要 epel

另一种解决方案是将虚拟网络设备设计为一个设备类型,该设备类型被视为真正的网络设备。 比如 使用 veth 设备对和连接到物理设备的桥。 最终 macvlan 设备类型也可以工作,并且可能更容易安装。


回答 2:

Observium是一个优秀的开源工具,我将推荐它的时间和时间。 它不仅适用于大型安装,而且也适用于小型安装。 一旦你有时间收集它,它就会给你semi-real-time和历史。

http://www.observium.org


回答 3:

有关快速概述,你可以使用 dstat -f -n。 你还可以指定要监视( 使用 -N 标志)的单个网络接口。 你可以在这里阅读 dstat。






Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备17041772号-2  |  如果智培  |  酷兔英语  |  帮酷