传统网络数据分析会在交换机上配置网络数据镜像, 将 Packet 复制后发送到目标机器,实现网络流量镜像的功能。
而在云平台上,目前网络数据采集还没有统一的方案。针对私有云平台,目前有流表数据包复制采集、在 hypervisor 上监听采集、vmware 平台分布式虚交换机配置采集、libpcap 抓包采集等方案。
对于 vmware 平台分布式虚交换机配置采集的方案,性能较好,不占用客户机资源,但其属于商业产品,且只适用于购买 vmware 私有云用户;而在 hypervisor 上监听采集,目前有产品开发,性能较好,但只适用于 OpenStack 私有云;采用 OVS 流表方案,优势是免费,不占用客户机资源,但是配置复杂,且只能用于 OpenStack 私有云。
因此,开发基于 libpcap + GRE 封装转发的应用,或许是云平台目前最优的网络流量镜像方案。其使用简单、开源、适用于各类公有云和私有云。
Netis Packet Agent ( https://github.com/Netis/packet-agent) 基于 libpcap 技术,从业务网卡抓包,进行 GRE 封装后将采集到的数据包发送到另一台远端机器,供分析使用。
Packet-Agent 对 Kubernetes 也提供了支持方案。简单来说,Packet-Agent 封装成容器后,与需要监控的业务容器放在同一个 K8S Pod 中,与其共享网络层并抓包镜像网络流量。
具体方案见项目文档:K8S_traffic_mirror
欢迎大家参与此项目,包括 star, fork, 提交 pull-request, 报告 bug, 提出任何意见或建议,或者将该项目介绍给相关的朋友。衷心感谢。
为感谢大家的支持,抽奖送一台 PS4 主机,抽奖方法如下:
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.