如何监控在 Debian GNU/Linux Squeeze 上运行的 Xen 虚拟机上的网络流量使用情况?
我有一些 Xen 虚拟机 (domU) 运行在几台物理机 (dom0) 上。每个 domU 都可以在其中一台物理机上启动或实时迁移。
我想监控和统计每个 domU 上使用的网络流量。即每月、每周、每天、每小时发送和接收的字节数。
我认为这对于使用 Linux 虚拟机的系统管理员来说是一项相当常见的任务,但是,我还没有找到任何简单的方法来完成它。
我期待听到您对此的看法。
答案1
如果您正在使用 iptables,您可以进行类似这样的配置。
答案2
我们编写了一个脚本,每分钟在每个 dom0 上运行一次,从“xm top”获取统计数据并将其推送到 memcache 队列。从那里,Cacti 查询 memcache 队列,并更新图表。
答案3
如果您想要集中收集信息,并且假设客户是可信的(即不是您要收费的客户端计算机),最灵活的方法可能是在客户机上安装 SNMP。然后,您就有数千种基于 SNMP 的监控和收集选项。
如果开销太大,请查看/proc/net/dev
;我想您可以自己解析它并以某种方式将值上传到中央机器。如果在 dom0 上完成,您需要分配持久 vif 名称等。
答案4
您还可以安装 iptables NetFlow 模块,并将 NetFlow 数据导出到 WANGuard 等分析器(它还具有 IP 计费/计费功能)。它将数据存储在数据库中,以便您拥有历史记录,并且可以配置各种漂亮的图表。按 IP 地址、协议等划分的 Top Talkers。