一种虚拟机流量监控方法及系统的制作方法

文档序号:6619802阅读:233来源:国知局
一种虚拟机流量监控方法及系统的制作方法
【专利摘要】本发明公开了一种虚拟机流量监控方法及系统,首先启动包含监控模块的虚拟机;部署数据包捕获模块和数据缓存模块到虚拟机监控器内核中;数据包捕获模块根据过滤机制复制流经TCP/IP协议栈的数据包,并存储到数据缓存模块的缓存中;数据缓存模块将缓存中的数据包转发给监控模块;监控模块对数据包进行统计分析,实现对虚拟机的流量监控。解决服务器虚拟化带来的虚拟机间通信失去监控的问题,并且实现了同一物理服务器上虚拟机间的通信以及虚拟机与服务器外部网络的通信的统一监控。
【专利说明】一种虚拟机流量监控方法及系统

【技术领域】
[0001] 该发明涉及服务器虚拟机化虚拟机流量监控,尤其涉及物理服务器上的虚拟机流 量监控方法和系统。

【背景技术】
[0002] 服务器虚拟化可以提高计算资源的利用率,增强IT资源的管理灵活性,因此,该 技术成为当前数据中心重要技术。然而,服务器虚拟化后,同一台物理服务器上存在多个虚 拟机,这些虚拟机之间的通信无法被部署在物理服务器外的监控系统所感知。
[0003] 现有方法是通过流量重定向策略来实现,包括两大类,一类是将虚拟机流量重定 向到服务器外的网络设备上进行监控处理。另一类是将虚拟机流量通过虚拟机交换机进行 重定向到虚拟机监控器(Virtual Machine Monitor, VMM)上的虚拟机中进行监控。第一类 方法的优势是可以利用现有的监控资源,但需要修改网络协议驱动或增加新的网络硬件设 备。第二类方法比较常见,但依赖虚拟交换机的可配置能力,缺乏性能方面的优化能力,同 时,对于虚拟机与外部的通信流量监控只能交给外部监控设备来处理,缺乏统一监控的管 理能力。


【发明内容】

[0004] 本发明的目的在于:利用虚拟机监控器的钩子机制来获取虚拟机的通信数据流, 并引入缓存机制和过滤策略,提高监控的效率;同时本发明公开了一套监控系统,可以实现 对虚拟机间通信和虚拟机与服务器外部通信的统一监控。
[0005] 本发明是这样实现的:
[0006] 一种虚拟机流量监控方法包括以下步骤:
[0007] 步骤一:在虚拟机监控器(Virtual Machine Monitor, VMM)上启动包含监控模块 的虚拟机,通过内核模块加载接口,将数据包捕获模块和数据缓存模块加载到内核中;将监 控模块和数据缓存模块建立通信连接;监控模块下发过滤地址列表到内核;监控模块发送 启动命令到内核。具体流程如下:
[0008] ①、启动包含监控模块的虚拟机后,监控模块也启动运行;
[0009] ②、监控模块调用内核模块加载接口,加载数据包捕获模块和数据缓存模块到内 核;
[0010] ③、数据缓存模块与安全监控模块建立连接;
[0011] ④、安全监控模块向所述数据缓存模块发送地址过滤表;
[0012] ⑤、安全监控模块向所述数据缓存模块发送启动指令;
[0013] ⑥、数据缓存模块设置内核全局变量值为启动。
[0014] 步骤二:数据包捕获模块监听通过虚拟机监控器VMM内核TCP/IP协议栈中数据; 根据数据地址过滤表复制数据包,并存储到数据缓存模块的缓存中;数据模块模块将数据 发送给监控模块。具体流程如下:
[0015] ①、数据缓存模块判断所述内核全局变量值,如果为启动,则分配一定大小的缓 存7并启
[0016] 动数据缓存处理进程;否则不作任何处理;
[0017] ②、数据包捕获模块判断所述内核全局变量值,如果为启动,则启动所述数据包捕 获模,
[0018] 否则,不作任何处理;
[0019] ③、数据包捕获模块判断当前TCP/IP协议栈数据包地址是否匹配所述地址过滤 表;匹配则复制数据包并存储到所述数据缓存模块的缓存中;否则,不作任何处理;
[0020] ④、数据缓存进程判断所述缓存内是否为空,不空则读取缓存数据并通过所述数 据缓存模块与所述安全监控模块建立的连接发送数据;空则不做任何处理。
[0021] 步骤三:监控模块提取数据包的基本信息,统计分析数据流量,展示统计分析结果 及告警。具体流程如下:
[0022] ①、监控模块调用预处理模块提取数据包头信息,包括源目的MAC、源目的IP、数 据包
[0023] 大小;
[0024] ②、监控模块统计数据包所在的会话流量,会话内容,并根据入侵检测规则分析入 侵行为;据恶意代码规则检测恶意代码;
[0025] ③、统计分析模块根据输出配置要求,输出统计分析结果,并在页面展示;
[0026] ④、统计分析模块根据告警配置要求,输出告警结果,并在页面展示。
[0027] -种虚拟机流量监控系统,其特征在于,所述系统包括如下模块:
[0028] ①、监控模块:用于部署数据包捕获模块、数据缓存模块;调用预处理模块和统计 分析模块;与数据缓存模块建立通信连接;接受数据缓存模块发送来的数据包,下发过滤 地址表、命令给数据缓存模块;管理监控配置;预处理模块:获取所述数据包头信息,包括 源目的MAC、源目的IP、数据包大小;
[0029] ②、统计分析模块:用于对所述的预处理模块的处理结果进行统计分析,包括会话 流量统计,会话内容还原;根据入侵检测规则分析入侵行为;根据恶意代码规则检测恶意 代码;根据输出配置和告警配置,输出统计分析结果和告警结果,并在页面展示;
[0030] ③、数据包捕获模块:用于在虚拟机监控器(VMM)内核监控TCP/IP协议栈的数据 包,并根据所述地址过滤表复制所述数据包;并存储到数据缓存模块的缓存中;
[0031] ④、数据缓存模块:用于建立与所述监控模块的连接;发送所缓存中的数据给所 述监控模块;接受所述监控模块发送的指令和数据;
[0032] 本发明相较于现有技术具有的积极效果在于:本发明专利可以解决服务器虚拟化 带来的虚拟机间通信失去监控的问题,并且实现了同一物理服务器上虚拟机间的通信以及 虚拟机与服务器外部网络的通信的统一监控。另外,本发明专利通过引入缓存机制,包过滤 机制,离线存储机制,解决了监控功能对虚拟机监控器的性能影响问题。

【专利附图】

【附图说明】
[0033] 图1是本发明公开的一种虚拟机流量的监控处理流程。
[0034] 图2是本发明公开的一种虚拟机流量的监控系统组成。
[0035] 图3是本发明公开的一种虚拟机监控系统的各模块连接示意图。

【具体实施方式】
[0036] 本发明为虚拟机之间的流量监控以及虚拟机和服务器外部网络之间的流量监控 提供了一种统一的监控系统。为了更好的说明本发明中的系统及方法,本发明给出了一些 具体图例,这里对这些附图进行说明。需要说明的是,这里给出的图例只是本发明的一种实 例,对于本领域技术人员,可以在根据这些实例获得其他附图。下面结合本发明中的附图, 对本发明中的技术方案进行清楚,完整地描述。
[0037] 本发明公开的一种虚拟机的流量监控方法的处理流程如图1所示:
[0038] 初始化阶段:在虚拟机监控器上启动包含监控模块201的虚拟机,数据包捕获模 块205和数据缓存模块204部署到内核,监控模块201和数据缓存模块204建立连接,监控 模块201下发过滤地址列表到内核,监控模块201发送启动命令到内核,监控系统部署完 毕。
[0039] 本发明中,数据包捕获模块205和数据缓存模块204都运行在内核,在运行前先通 过内核编程接口加载到内核中。由于监控模块部署在虚拟机中,而虚拟机运行在用户态,因 此,需要构建内核和用户空间的通信连接。建立连接后,监控模块201发送地址过滤列表给 内核,提供数据包捕获模块205使用。然后,监控模块201内核发送启动命令至内核,数据 捕获模块205及数据缓存模块204开始工作。
[0040] 数据捕获阶段:数据包捕获模块205监听TCP/IP协议栈206数据,根据地址过滤 表复制数据包,并存储到数据缓存模块204的缓存中,数据缓存模204块将数据发送给监控 模块201。
[0041] 本发明中,数据包捕获模块205检查每一个流经TCP/IP协议栈206的数据包,根 据每个数据包的MAC值或IP信息,与地址过滤列表中的地址信息进行比对,如果匹配,则相 应的数据包被复制一份,并存储到数据缓存模块204的缓存中。数据缓存模块204中的缓 存是数据缓存模块204预先分配的,并且可以根据实际用量动态进行扩展;数据缓存模块 204发现缓存不空时,通过内核和用户空间建立的连接将数据包发送给虚拟机中的监控模 块 201 ;
[0042] 数据统计分析阶段:监控模块201提取数据包头基本信息,统计分析数据流量,展 示统计分析结果及告警。
[0043] 如图2所示的本发明公开了一种虚拟机流量的监控系统组织结构,该虚拟机流量 监控系统包括以下几个部分:
[0044] 1、监控模块201:
[0045] 该模块是实现虚拟机流量监控分析的核心模块,包含预处理模块202和统计分析 模块203。该监控模块201实现数据缓存模块204和数据捕获模块205的加载和卸载;与 内核的数据缓存模块204建立连接,并通过该连接获取虚拟机的通信流量以及发送控制命 令。该监控模块201还提供了配置管理功能,包括结果输出配置,告警配置,离线统计分析 配置。结果输出配置及告警配置用于页面展示效果控制。离线统计分析配置用于在空闲时 刻处理离线数据包,降低监控模块对虚拟化服务器的性能影响。
[0046] 2、预处理模块2〇2:
[0047] 该模块主要功能是对收到的数据包进行基本信息提取,为统计分析模块203提供 帮助。同时,预处理模块202还可以根据离线配置,直接将收到的数据包按一定格式存储到 外部存储器中,实现监控模块201离线处理模式,该配置可以在实时监控影响到服务器性 能时使用。
[0048] 3、统计分析模块203 :
[0049] 该模块主要功能是根据所述预处理模块202的处理结果,对数据包进一步的分 析。包括流量统计,内容还原。结合入侵检测引擎进行检测分析;结合恶意代码特征进行恶 意代码检测分析;根据显示配置要求,该统计分析模块203对统计分析结果进行页面展示; 根据告警配置要求,该统计分析模块203以页面告警形式进行告警。
[0050] 4、数据缓存模块204 :
[0051] 该模块主要功能是存储来自数据包捕获模块205的数据,并转发给安全虚拟机中 监控模块201。同时,该模块接受来自所述安全监控模块201的命令;本发明中,数据缓存 是数据缓存模块204预先分配,但可以根据要求动态进行调整,从而避免数据丢包。
[0052] 5、数据包捕获模块205 :
[0053] 该模块主要功能是监听通过TCP/IP协议栈的数据包;并根据地址过滤表复制满 足过滤条件的数据包,然后存储到数据缓存模块204的缓存中。本发明中,基于现有的协议 栈钩子(hook)机制来实现。当前,主流基于linux的开源虚拟化软件,如内核虚拟机(KVM Kernel Virtual Machine),Xen 等,都支持钩子机制。
[0054] 本发明中,数据监控模块201中的预处理模块202首先对数据缓存模块204发送 的数据包进行预处理,提取出数据包基本信息,包括源目的MAC,IP,数据大小。数据统计分 析模块203则根据预处理模块202的处理结果,结合入侵检测规则和恶意代码规则进行入 侵检测、恶意代码分析处理。然后,统计分析模块203将处理后的结果按一定的配置要求以 页面显示,根据告警配置要求,对满足告警的统计分析结果显示告警页面。
[0055] 与本发明公开的虚拟机流量监控系统相对应,本发明公开了如图3所示的一种虚 拟机流量监控系统的各个模块连接示意图可知:虚拟机监控器104上运行着虚拟机A101, 虚拟机B102,虚拟机C103。其中,虚拟机A101、虚拟机C103通过虚拟机监控器VMM104的 TCP/IP协议栈206相互通信,同时,虚拟机A101和虚拟机C103还通过TCP/IP协议栈206 与外部网络设备105通信。虚拟机B102中部署有监控模块201。监控模块201包含有预处 理模块202和统计分析模块203。数据缓存模块204位于虚拟机机监控器VMM104中,数据 包捕获模块205位于虚拟机监控器VMM104的TCP/IP协议栈206中。该部署结构下,虚拟 机A101和虚拟机C103间的通信流量可以被虚拟机B102中的监控模块201所监控,同时, 虚拟机A101、虚拟机C103与外部网络设备105间的通信流量也可以被虚拟机B102中的监 控模块201所监控。
【权利要求】
1. 一种虚拟机流量监控方法,其特征在于包括以下步骤: 步骤一:在虚拟机监控器(Virtual Machine Monitor, VMM)上启动包含监控模块的虚 拟机,通过内核模块加载接口,将数据包捕获模块和数据缓存模块加载到内核中;将虚拟机 监控模块和数据缓存模块建立通信连接;监控模块下发过滤地址列表到内核,监控模块发 送启动命令到内核; 步骤二:数据包捕获模块监听TCP/IP协议栈中数据;根据地址过滤表复制数据包,并 存储到数据缓存模块的缓存中;数据缓存模块将数据发送到监控模块; 步骤三:监控模块提取数据包的基本信息,统计分析数据流量,展示统计分析结果及告 警。
2. 根据权利要求1所述的监控方法,其特征在于:所述的步骤一中的具体流程如下: ① 、启动包含监控模块的虚拟机后,监控模块也启动运行; ② 、监控模块调用内核模块加载接口,加载数据包捕获模块和数据缓存模块到内核; ③ 、数据缓存模块与监控模块建立连接; ④ 、监控模块向所述数据缓存模块发送地址过滤表; ⑤ 、监控模块向所述数据缓存模块发送启动指令; ⑥ 、数据缓存模块设置内核全局变量值为启动。
3. 根据权利要求1所述的监控方法,其特征在于:所述的步骤二的具体流程如下: ① 、数据缓存模块判断所述内核全局变量值,如果为启动,则分配一定大小的缓存,并 启动数据缓存处理进程;否则不作任何处理; ② 、数据包捕获模块判断所述内核全局变量值,如果为启动,则启动所述数据包捕获 模,否则,不作任何处理; ③ 、数据包捕获模块判断当前TCP/IP协议栈数据包地址是否匹配所述地址过滤表;匹 配则复制数据包并存储到所述数据缓存模块的缓存中;否则,不作任何处理; ④ 、数据缓存进程判断所述缓存内是否为空,不空则读取缓存数据并通过所述数据缓 存模块与所述监控模块建立的连接发送数据;空则不做任何处理。
4. 根据权利要求1所述的监控方法,其特征在于:所述的步骤三的具体流程如下: ① 、监控模块接受所述数据缓存模块发送来的数据;并调用数据预处理模块提取数据 包头信息,包括源目的MAC、源目的IP、数据包大小; ② 、监控模块调用统计分析模块统计数据包所在的会话流量、会话内容,并根据入侵检 测规则分析入侵行为;根据恶意代码规则检测恶意代码; ③ 、统计分析模块根据输出配置要求,输出统计分析结果,并在页面展示; ④ 、统计分析模块根据告警配置要求,输出告警结果,并在页面展示。
5. -种虚拟机流量监控系统,其特征在于,所述系统包括如下模块: ① 、监控模块:用于部署数据包捕获模块、数据缓存模块;调用预处理模块和统计分析 模块;与数据缓存模块建立通信连接;接受数据缓存模块发送来的数据包,下发过滤地址 表、命令给数据缓存模块;管理监控配置; ② 、预处理模块:获取所述数据包头信息,包括源目的MAC、源目的IP、数据包大小; ③ 、统计分析模块:用于对所述的预处理模块的处理结果进行统计分析,包括会话流量 统计,会话内容还原;根据入侵检测规则分析入侵行为;根据恶意代码规则检测恶意代码; 根据输出配置要求和告警配置要求,输出统计分析结果和告警结果,并在页面展示; ④ 、数据包捕获模块:用于在虚拟机监控器(VMM)内核监控TCP/IP协议栈的数据包,并 根据所述地址过滤表复制所述数据包;并存储到数据缓存模块的缓存中; ⑤ 、数据缓存模块:用于建立与所述监控模块的连接;发送所缓存中的数据给所述监 控模块;接受所述监控模块发送的指令和数据。
【文档编号】G06F9/455GK104063267SQ201410328690
【公开日】2014年9月24日 申请日期:2014年7月11日 优先权日:2014年7月11日
【发明者】孙强强, 冯斌, 赵铭, 丘惠军, 陈昊, 何子龙, 刘忠魁 申请人:孙强强, 冯斌, 赵铭
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1