一種虛擬機流量監(jiān)控方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種虛擬機流量監(jiān)控方法及系統(tǒng),首先啟動包含監(jiān)控模塊的虛擬機;部署數(shù)據包捕獲模塊和數(shù)據緩存模塊到虛擬機監(jiān)控器內核中;數(shù)據包捕獲模塊根據過濾機制復制流經TCP/IP協(xié)議棧的數(shù)據包,并存儲到數(shù)據緩存模塊的緩存中;數(shù)據緩存模塊將緩存中的數(shù)據包轉發(fā)給監(jiān)控模塊;監(jiān)控模塊對數(shù)據包進行統(tǒng)計分析,實現(xiàn)對虛擬機的流量監(jiān)控。解決服務器虛擬化帶來的虛擬機間通信失去監(jiān)控的問題,并且實現(xiàn)了同一物理服務器上虛擬機間的通信以及虛擬機與服務器外部網絡的通信的統(tǒng)一監(jiān)控。
【專利說明】一種虛擬機流量監(jiān)控方法及系統(tǒng)
【技術領域】
[0001] 該發(fā)明涉及服務器虛擬機化虛擬機流量監(jiān)控,尤其涉及物理服務器上的虛擬機流 量監(jiān)控方法和系統(tǒng)。
【背景技術】
[0002] 服務器虛擬化可以提高計算資源的利用率,增強IT資源的管理靈活性,因此,該 技術成為當前數(shù)據中心重要技術。然而,服務器虛擬化后,同一臺物理服務器上存在多個虛 擬機,這些虛擬機之間的通信無法被部署在物理服務器外的監(jiān)控系統(tǒng)所感知。
[0003] 現(xiàn)有方法是通過流量重定向策略來實現(xiàn),包括兩大類,一類是將虛擬機流量重定 向到服務器外的網絡設備上進行監(jiān)控處理。另一類是將虛擬機流量通過虛擬機交換機進行 重定向到虛擬機監(jiān)控器(Virtual Machine Monitor, VMM)上的虛擬機中進行監(jiān)控。第一類 方法的優(yōu)勢是可以利用現(xiàn)有的監(jiān)控資源,但需要修改網絡協(xié)議驅動或增加新的網絡硬件設 備。第二類方法比較常見,但依賴虛擬交換機的可配置能力,缺乏性能方面的優(yōu)化能力,同 時,對于虛擬機與外部的通信流量監(jiān)控只能交給外部監(jiān)控設備來處理,缺乏統(tǒng)一監(jiān)控的管 理能力。
【發(fā)明內容】
[0004] 本發(fā)明的目的在于:利用虛擬機監(jiān)控器的鉤子機制來獲取虛擬機的通信數(shù)據流, 并引入緩存機制和過濾策略,提高監(jiān)控的效率;同時本發(fā)明公開了一套監(jiān)控系統(tǒng),可以實現(xiàn) 對虛擬機間通信和虛擬機與服務器外部通信的統(tǒng)一監(jiān)控。
[0005] 本發(fā)明是這樣實現(xiàn)的:
[0006] 一種虛擬機流量監(jiān)控方法包括以下步驟:
[0007] 步驟一:在虛擬機監(jiān)控器(Virtual Machine Monitor, VMM)上啟動包含監(jiān)控模塊 的虛擬機,通過內核模塊加載接口,將數(shù)據包捕獲模塊和數(shù)據緩存模塊加載到內核中;將監(jiān) 控模塊和數(shù)據緩存模塊建立通信連接;監(jiān)控模塊下發(fā)過濾地址列表到內核;監(jiān)控模塊發(fā)送 啟動命令到內核。具體流程如下:
[0008] ①、啟動包含監(jiān)控模塊的虛擬機后,監(jiān)控模塊也啟動運行;
[0009] ②、監(jiān)控模塊調用內核模塊加載接口,加載數(shù)據包捕獲模塊和數(shù)據緩存模塊到內 核;
[0010] ③、數(shù)據緩存模塊與安全監(jiān)控模塊建立連接;
[0011] ④、安全監(jiān)控模塊向所述數(shù)據緩存模塊發(fā)送地址過濾表;
[0012] ⑤、安全監(jiān)控模塊向所述數(shù)據緩存模塊發(fā)送啟動指令;
[0013] ⑥、數(shù)據緩存模塊設置內核全局變量值為啟動。
[0014] 步驟二:數(shù)據包捕獲模塊監(jiān)聽通過虛擬機監(jiān)控器VMM內核TCP/IP協(xié)議棧中數(shù)據; 根據數(shù)據地址過濾表復制數(shù)據包,并存儲到數(shù)據緩存模塊的緩存中;數(shù)據模塊模塊將數(shù)據 發(fā)送給監(jiān)控模塊。具體流程如下:
[0015] ①、數(shù)據緩存模塊判斷所述內核全局變量值,如果為啟動,則分配一定大小的緩 存7并啟
[0016] 動數(shù)據緩存處理進程;否則不作任何處理;
[0017] ②、數(shù)據包捕獲模塊判斷所述內核全局變量值,如果為啟動,則啟動所述數(shù)據包捕 獲模,
[0018] 否則,不作任何處理;
[0019] ③、數(shù)據包捕獲模塊判斷當前TCP/IP協(xié)議棧數(shù)據包地址是否匹配所述地址過濾 表;匹配則復制數(shù)據包并存儲到所述數(shù)據緩存模塊的緩存中;否則,不作任何處理;
[0020] ④、數(shù)據緩存進程判斷所述緩存內是否為空,不空則讀取緩存數(shù)據并通過所述數(shù) 據緩存模塊與所述安全監(jiān)控模塊建立的連接發(fā)送數(shù)據;空則不做任何處理。
[0021] 步驟三:監(jiān)控模塊提取數(shù)據包的基本信息,統(tǒng)計分析數(shù)據流量,展示統(tǒng)計分析結果 及告警。具體流程如下:
[0022] ①、監(jiān)控模塊調用預處理模塊提取數(shù)據包頭信息,包括源目的MAC、源目的IP、數(shù) 據包
[0023] 大??;
[0024] ②、監(jiān)控模塊統(tǒng)計數(shù)據包所在的會話流量,會話內容,并根據入侵檢測規(guī)則分析入 侵行為;據惡意代碼規(guī)則檢測惡意代碼;
[0025] ③、統(tǒng)計分析模塊根據輸出配置要求,輸出統(tǒng)計分析結果,并在頁面展示;
[0026] ④、統(tǒng)計分析模塊根據告警配置要求,輸出告警結果,并在頁面展示。
[0027] -種虛擬機流量監(jiān)控系統(tǒng),其特征在于,所述系統(tǒng)包括如下模塊:
[0028] ①、監(jiān)控模塊:用于部署數(shù)據包捕獲模塊、數(shù)據緩存模塊;調用預處理模塊和統(tǒng)計 分析模塊;與數(shù)據緩存模塊建立通信連接;接受數(shù)據緩存模塊發(fā)送來的數(shù)據包,下發(fā)過濾 地址表、命令給數(shù)據緩存模塊;管理監(jiān)控配置;預處理模塊:獲取所述數(shù)據包頭信息,包括 源目的MAC、源目的IP、數(shù)據包大??;
[0029] ②、統(tǒng)計分析模塊:用于對所述的預處理模塊的處理結果進行統(tǒng)計分析,包括會話 流量統(tǒng)計,會話內容還原;根據入侵檢測規(guī)則分析入侵行為;根據惡意代碼規(guī)則檢測惡意 代碼;根據輸出配置和告警配置,輸出統(tǒng)計分析結果和告警結果,并在頁面展示;
[0030] ③、數(shù)據包捕獲模塊:用于在虛擬機監(jiān)控器(VMM)內核監(jiān)控TCP/IP協(xié)議棧的數(shù)據 包,并根據所述地址過濾表復制所述數(shù)據包;并存儲到數(shù)據緩存模塊的緩存中;
[0031] ④、數(shù)據緩存模塊:用于建立與所述監(jiān)控模塊的連接;發(fā)送所緩存中的數(shù)據給所 述監(jiān)控模塊;接受所述監(jiān)控模塊發(fā)送的指令和數(shù)據;
[0032] 本發(fā)明相較于現(xiàn)有技術具有的積極效果在于:本發(fā)明專利可以解決服務器虛擬化 帶來的虛擬機間通信失去監(jiān)控的問題,并且實現(xiàn)了同一物理服務器上虛擬機間的通信以及 虛擬機與服務器外部網絡的通信的統(tǒng)一監(jiān)控。另外,本發(fā)明專利通過引入緩存機制,包過濾 機制,離線存儲機制,解決了監(jiān)控功能對虛擬機監(jiān)控器的性能影響問題。
【專利附圖】
【附圖說明】
[0033] 圖1是本發(fā)明公開的一種虛擬機流量的監(jiān)控處理流程。
[0034] 圖2是本發(fā)明公開的一種虛擬機流量的監(jiān)控系統(tǒng)組成。
[0035] 圖3是本發(fā)明公開的一種虛擬機監(jiān)控系統(tǒng)的各模塊連接示意圖。
【具體實施方式】
[0036] 本發(fā)明為虛擬機之間的流量監(jiān)控以及虛擬機和服務器外部網絡之間的流量監(jiān)控 提供了一種統(tǒng)一的監(jiān)控系統(tǒng)。為了更好的說明本發(fā)明中的系統(tǒng)及方法,本發(fā)明給出了一些 具體圖例,這里對這些附圖進行說明。需要說明的是,這里給出的圖例只是本發(fā)明的一種實 例,對于本領域技術人員,可以在根據這些實例獲得其他附圖。下面結合本發(fā)明中的附圖, 對本發(fā)明中的技術方案進行清楚,完整地描述。
[0037] 本發(fā)明公開的一種虛擬機的流量監(jiān)控方法的處理流程如圖1所示:
[0038] 初始化階段:在虛擬機監(jiān)控器上啟動包含監(jiān)控模塊201的虛擬機,數(shù)據包捕獲模 塊205和數(shù)據緩存模塊204部署到內核,監(jiān)控模塊201和數(shù)據緩存模塊204建立連接,監(jiān)控 模塊201下發(fā)過濾地址列表到內核,監(jiān)控模塊201發(fā)送啟動命令到內核,監(jiān)控系統(tǒng)部署完 畢。
[0039] 本發(fā)明中,數(shù)據包捕獲模塊205和數(shù)據緩存模塊204都運行在內核,在運行前先通 過內核編程接口加載到內核中。由于監(jiān)控模塊部署在虛擬機中,而虛擬機運行在用戶態(tài),因 此,需要構建內核和用戶空間的通信連接。建立連接后,監(jiān)控模塊201發(fā)送地址過濾列表給 內核,提供數(shù)據包捕獲模塊205使用。然后,監(jiān)控模塊201內核發(fā)送啟動命令至內核,數(shù)據 捕獲模塊205及數(shù)據緩存模塊204開始工作。
[0040] 數(shù)據捕獲階段:數(shù)據包捕獲模塊205監(jiān)聽TCP/IP協(xié)議棧206數(shù)據,根據地址過濾 表復制數(shù)據包,并存儲到數(shù)據緩存模塊204的緩存中,數(shù)據緩存模204塊將數(shù)據發(fā)送給監(jiān)控 模塊201。
[0041] 本發(fā)明中,數(shù)據包捕獲模塊205檢查每一個流經TCP/IP協(xié)議棧206的數(shù)據包,根 據每個數(shù)據包的MAC值或IP信息,與地址過濾列表中的地址信息進行比對,如果匹配,則相 應的數(shù)據包被復制一份,并存儲到數(shù)據緩存模塊204的緩存中。數(shù)據緩存模塊204中的緩 存是數(shù)據緩存模塊204預先分配的,并且可以根據實際用量動態(tài)進行擴展;數(shù)據緩存模塊 204發(fā)現(xiàn)緩存不空時,通過內核和用戶空間建立的連接將數(shù)據包發(fā)送給虛擬機中的監(jiān)控模 塊 201 ;
[0042] 數(shù)據統(tǒng)計分析階段:監(jiān)控模塊201提取數(shù)據包頭基本信息,統(tǒng)計分析數(shù)據流量,展 示統(tǒng)計分析結果及告警。
[0043] 如圖2所示的本發(fā)明公開了一種虛擬機流量的監(jiān)控系統(tǒng)組織結構,該虛擬機流量 監(jiān)控系統(tǒng)包括以下幾個部分:
[0044] 1、監(jiān)控模塊201:
[0045] 該模塊是實現(xiàn)虛擬機流量監(jiān)控分析的核心模塊,包含預處理模塊202和統(tǒng)計分析 模塊203。該監(jiān)控模塊201實現(xiàn)數(shù)據緩存模塊204和數(shù)據捕獲模塊205的加載和卸載;與 內核的數(shù)據緩存模塊204建立連接,并通過該連接獲取虛擬機的通信流量以及發(fā)送控制命 令。該監(jiān)控模塊201還提供了配置管理功能,包括結果輸出配置,告警配置,離線統(tǒng)計分析 配置。結果輸出配置及告警配置用于頁面展示效果控制。離線統(tǒng)計分析配置用于在空閑時 刻處理離線數(shù)據包,降低監(jiān)控模塊對虛擬化服務器的性能影響。
[0046] 2、預處理模塊2〇2:
[0047] 該模塊主要功能是對收到的數(shù)據包進行基本信息提取,為統(tǒng)計分析模塊203提供 幫助。同時,預處理模塊202還可以根據離線配置,直接將收到的數(shù)據包按一定格式存儲到 外部存儲器中,實現(xiàn)監(jiān)控模塊201離線處理模式,該配置可以在實時監(jiān)控影響到服務器性 能時使用。
[0048] 3、統(tǒng)計分析模塊203 :
[0049] 該模塊主要功能是根據所述預處理模塊202的處理結果,對數(shù)據包進一步的分 析。包括流量統(tǒng)計,內容還原。結合入侵檢測引擎進行檢測分析;結合惡意代碼特征進行惡 意代碼檢測分析;根據顯示配置要求,該統(tǒng)計分析模塊203對統(tǒng)計分析結果進行頁面展示; 根據告警配置要求,該統(tǒng)計分析模塊203以頁面告警形式進行告警。
[0050] 4、數(shù)據緩存模塊204 :
[0051] 該模塊主要功能是存儲來自數(shù)據包捕獲模塊205的數(shù)據,并轉發(fā)給安全虛擬機中 監(jiān)控模塊201。同時,該模塊接受來自所述安全監(jiān)控模塊201的命令;本發(fā)明中,數(shù)據緩存 是數(shù)據緩存模塊204預先分配,但可以根據要求動態(tài)進行調整,從而避免數(shù)據丟包。
[0052] 5、數(shù)據包捕獲模塊205 :
[0053] 該模塊主要功能是監(jiān)聽通過TCP/IP協(xié)議棧的數(shù)據包;并根據地址過濾表復制滿 足過濾條件的數(shù)據包,然后存儲到數(shù)據緩存模塊204的緩存中。本發(fā)明中,基于現(xiàn)有的協(xié)議 棧鉤子(hook)機制來實現(xiàn)。當前,主流基于linux的開源虛擬化軟件,如內核虛擬機(KVM Kernel Virtual Machine),Xen 等,都支持鉤子機制。
[0054] 本發(fā)明中,數(shù)據監(jiān)控模塊201中的預處理模塊202首先對數(shù)據緩存模塊204發(fā)送 的數(shù)據包進行預處理,提取出數(shù)據包基本信息,包括源目的MAC,IP,數(shù)據大小。數(shù)據統(tǒng)計分 析模塊203則根據預處理模塊202的處理結果,結合入侵檢測規(guī)則和惡意代碼規(guī)則進行入 侵檢測、惡意代碼分析處理。然后,統(tǒng)計分析模塊203將處理后的結果按一定的配置要求以 頁面顯示,根據告警配置要求,對滿足告警的統(tǒng)計分析結果顯示告警頁面。
[0055] 與本發(fā)明公開的虛擬機流量監(jiān)控系統(tǒng)相對應,本發(fā)明公開了如圖3所示的一種虛 擬機流量監(jiān)控系統(tǒng)的各個模塊連接示意圖可知:虛擬機監(jiān)控器104上運行著虛擬機A101, 虛擬機B102,虛擬機C103。其中,虛擬機A101、虛擬機C103通過虛擬機監(jiān)控器VMM104的 TCP/IP協(xié)議棧206相互通信,同時,虛擬機A101和虛擬機C103還通過TCP/IP協(xié)議棧206 與外部網絡設備105通信。虛擬機B102中部署有監(jiān)控模塊201。監(jiān)控模塊201包含有預處 理模塊202和統(tǒng)計分析模塊203。數(shù)據緩存模塊204位于虛擬機機監(jiān)控器VMM104中,數(shù)據 包捕獲模塊205位于虛擬機監(jiān)控器VMM104的TCP/IP協(xié)議棧206中。該部署結構下,虛擬 機A101和虛擬機C103間的通信流量可以被虛擬機B102中的監(jiān)控模塊201所監(jiān)控,同時, 虛擬機A101、虛擬機C103與外部網絡設備105間的通信流量也可以被虛擬機B102中的監(jiān) 控模塊201所監(jiān)控。
【權利要求】
1. 一種虛擬機流量監(jiān)控方法,其特征在于包括以下步驟: 步驟一:在虛擬機監(jiān)控器(Virtual Machine Monitor, VMM)上啟動包含監(jiān)控模塊的虛 擬機,通過內核模塊加載接口,將數(shù)據包捕獲模塊和數(shù)據緩存模塊加載到內核中;將虛擬機 監(jiān)控模塊和數(shù)據緩存模塊建立通信連接;監(jiān)控模塊下發(fā)過濾地址列表到內核,監(jiān)控模塊發(fā) 送啟動命令到內核; 步驟二:數(shù)據包捕獲模塊監(jiān)聽TCP/IP協(xié)議棧中數(shù)據;根據地址過濾表復制數(shù)據包,并 存儲到數(shù)據緩存模塊的緩存中;數(shù)據緩存模塊將數(shù)據發(fā)送到監(jiān)控模塊; 步驟三:監(jiān)控模塊提取數(shù)據包的基本信息,統(tǒng)計分析數(shù)據流量,展示統(tǒng)計分析結果及告 警。
2. 根據權利要求1所述的監(jiān)控方法,其特征在于:所述的步驟一中的具體流程如下: ① 、啟動包含監(jiān)控模塊的虛擬機后,監(jiān)控模塊也啟動運行; ② 、監(jiān)控模塊調用內核模塊加載接口,加載數(shù)據包捕獲模塊和數(shù)據緩存模塊到內核; ③ 、數(shù)據緩存模塊與監(jiān)控模塊建立連接; ④ 、監(jiān)控模塊向所述數(shù)據緩存模塊發(fā)送地址過濾表; ⑤ 、監(jiān)控模塊向所述數(shù)據緩存模塊發(fā)送啟動指令; ⑥ 、數(shù)據緩存模塊設置內核全局變量值為啟動。
3. 根據權利要求1所述的監(jiān)控方法,其特征在于:所述的步驟二的具體流程如下: ① 、數(shù)據緩存模塊判斷所述內核全局變量值,如果為啟動,則分配一定大小的緩存,并 啟動數(shù)據緩存處理進程;否則不作任何處理; ② 、數(shù)據包捕獲模塊判斷所述內核全局變量值,如果為啟動,則啟動所述數(shù)據包捕獲 模,否則,不作任何處理; ③ 、數(shù)據包捕獲模塊判斷當前TCP/IP協(xié)議棧數(shù)據包地址是否匹配所述地址過濾表;匹 配則復制數(shù)據包并存儲到所述數(shù)據緩存模塊的緩存中;否則,不作任何處理; ④ 、數(shù)據緩存進程判斷所述緩存內是否為空,不空則讀取緩存數(shù)據并通過所述數(shù)據緩 存模塊與所述監(jiān)控模塊建立的連接發(fā)送數(shù)據;空則不做任何處理。
4. 根據權利要求1所述的監(jiān)控方法,其特征在于:所述的步驟三的具體流程如下: ① 、監(jiān)控模塊接受所述數(shù)據緩存模塊發(fā)送來的數(shù)據;并調用數(shù)據預處理模塊提取數(shù)據 包頭信息,包括源目的MAC、源目的IP、數(shù)據包大??; ② 、監(jiān)控模塊調用統(tǒng)計分析模塊統(tǒng)計數(shù)據包所在的會話流量、會話內容,并根據入侵檢 測規(guī)則分析入侵行為;根據惡意代碼規(guī)則檢測惡意代碼; ③ 、統(tǒng)計分析模塊根據輸出配置要求,輸出統(tǒng)計分析結果,并在頁面展示; ④ 、統(tǒng)計分析模塊根據告警配置要求,輸出告警結果,并在頁面展示。
5. -種虛擬機流量監(jiān)控系統(tǒng),其特征在于,所述系統(tǒng)包括如下模塊: ① 、監(jiān)控模塊:用于部署數(shù)據包捕獲模塊、數(shù)據緩存模塊;調用預處理模塊和統(tǒng)計分析 模塊;與數(shù)據緩存模塊建立通信連接;接受數(shù)據緩存模塊發(fā)送來的數(shù)據包,下發(fā)過濾地址 表、命令給數(shù)據緩存模塊;管理監(jiān)控配置; ② 、預處理模塊:獲取所述數(shù)據包頭信息,包括源目的MAC、源目的IP、數(shù)據包大??; ③ 、統(tǒng)計分析模塊:用于對所述的預處理模塊的處理結果進行統(tǒng)計分析,包括會話流量 統(tǒng)計,會話內容還原;根據入侵檢測規(guī)則分析入侵行為;根據惡意代碼規(guī)則檢測惡意代碼; 根據輸出配置要求和告警配置要求,輸出統(tǒng)計分析結果和告警結果,并在頁面展示; ④ 、數(shù)據包捕獲模塊:用于在虛擬機監(jiān)控器(VMM)內核監(jiān)控TCP/IP協(xié)議棧的數(shù)據包,并 根據所述地址過濾表復制所述數(shù)據包;并存儲到數(shù)據緩存模塊的緩存中; ⑤ 、數(shù)據緩存模塊:用于建立與所述監(jiān)控模塊的連接;發(fā)送所緩存中的數(shù)據給所述監(jiān) 控模塊;接受所述監(jiān)控模塊發(fā)送的指令和數(shù)據。
【文檔編號】G06F9/455GK104063267SQ201410328690
【公開日】2014年9月24日 申請日期:2014年7月11日 優(yōu)先權日:2014年7月11日
【發(fā)明者】孫強強, 馮斌, 趙銘, 丘惠軍, 陳昊, 何子龍, 劉忠魁 申請人:孫強強, 馮斌, 趙銘