本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種基于BCC-KNN的云計(jì)算中心智能運(yùn)維方法及系統(tǒng)。
背景技術(shù):
NIST定義云計(jì)算是一個(gè)模型,用于隨時(shí)隨地的按需快速的通過(guò)網(wǎng)絡(luò)訪問(wèn)一個(gè)可配置的計(jì)算資源(網(wǎng)絡(luò)、服務(wù)器、存儲(chǔ)、應(yīng)用程序和服務(wù))共享池。計(jì)算資源只需要很小的管理代價(jià)和與服務(wù)提供商較少的交互便能夠快速的獲取和釋放。云計(jì)算模型由5個(gè)基本特征、3種服務(wù)模型、4種部署模型組成。
基本特征有按需自服務(wù)、資源池化、廣泛的網(wǎng)絡(luò)連接方式、快速的彈性擴(kuò)展、可計(jì)量的服務(wù)。
按需自服務(wù)是指用戶可以自主地根據(jù)需要單向地準(zhǔn)備計(jì)算資源,不需要與服務(wù)提供商進(jìn)行交互。
資源池化是指服務(wù)提供者將計(jì)算資源匯集到資源池中(類型包括存儲(chǔ)、處理、內(nèi)存、帶寬、和虛擬機(jī)等),通過(guò)多租戶模式共享給多個(gè)消費(fèi)者,根據(jù)消費(fèi)者的需求對(duì)不同的物理資源和虛擬資源進(jìn)行動(dòng)態(tài)分配或重分配。以用戶為中心的界面使云基礎(chǔ)架構(gòu)能夠?qū)崿F(xiàn)應(yīng)用對(duì)用戶的透明性,用戶基于自已的需求訪問(wèn)服務(wù)而不用考慮服務(wù)是在哪里提供。
廣泛的網(wǎng)絡(luò)連接方式是指通過(guò)標(biāo)準(zhǔn)化,云計(jì)算提供的資源能夠被各種異構(gòu)的瘦終端或特定的客戶端,比如手機(jī)、平板電腦、工作站所訪問(wèn)。
快速的彈性擴(kuò)展是云計(jì)算的一個(gè)很重要的特征,因?yàn)橘Y源池化和快速?gòu)椥裕脩裟軌颢@取的資源似乎是無(wú)窮無(wú)盡的,并且可以在任何時(shí)候獲取任何數(shù)量的資源。彈性的重要性在于能夠按需分配資源,應(yīng)用程序駐留在可以快速進(jìn)行水平擴(kuò)展的數(shù)據(jù)中心中,即云服務(wù)的規(guī)??煽焖偕炜s,以自動(dòng)適應(yīng)業(yè)務(wù)負(fù)載的動(dòng)態(tài)變化。用戶使用的資源同業(yè)務(wù)的需求相一致,避免了因?yàn)榉?wù)器性能過(guò)載或冗余而導(dǎo)致的服務(wù)質(zhì)量下降或資源浪費(fèi)。值得注意的是,資源的擴(kuò)展必須是細(xì)粒度并且足夠快速才能使計(jì)算資源跟計(jì)算負(fù)載很好的匹配。因?yàn)榉?wù)器的峰值工作量比平均值要高3-10倍,所以傳統(tǒng)的數(shù)據(jù)中心的服務(wù)器利用率大概僅在10%到30%左右。為了保證服務(wù)質(zhì)量,服務(wù)器要按峰值工作量需求來(lái)部署,這就必然導(dǎo)致了非峰值時(shí)間資源的浪費(fèi),而且負(fù)載的波動(dòng)性越強(qiáng)浪費(fèi)的資源就越多。
可計(jì)量的服務(wù)是指云系統(tǒng)利用一種計(jì)量功能來(lái)自動(dòng)調(diào)控和優(yōu)化資源利用,根據(jù)不同的服務(wù)類型按照合適的度量指標(biāo)進(jìn)行計(jì)量、監(jiān)控和報(bào)告資源使用情況,提升服務(wù)提供者和服務(wù)消費(fèi)者的透明度。
然而,現(xiàn)在云計(jì)算中心的規(guī)模過(guò)大,傳統(tǒng)環(huán)境中的低頻異常在云計(jì)算中心就會(huì)因規(guī)?;兂筛哳l異常,并且許多的異常會(huì)重復(fù)出現(xiàn)。因此,若是不能利用有效的方式而是要人為負(fù)責(zé)大量異常的處理,這就會(huì)導(dǎo)致了較高的同種異常人工重復(fù)處理成本,即異常發(fā)生并處理后,當(dāng)再次出現(xiàn)時(shí)人工還要重復(fù)處理過(guò)程。
另外,云應(yīng)用本身在運(yùn)行過(guò)程中會(huì)產(chǎn)生相關(guān)的狀態(tài)數(shù)據(jù),這些數(shù)據(jù)會(huì)指導(dǎo)運(yùn)維人員對(duì)異常進(jìn)行判定,但大量的云應(yīng)用產(chǎn)生的海量的運(yùn)行狀態(tài)數(shù)據(jù)會(huì)導(dǎo)致運(yùn)維人員要花費(fèi)大量的時(shí)間和精力去分析這些數(shù)據(jù)來(lái)定位異常并判定其類型,延長(zhǎng)了異常的修復(fù)時(shí)間。
最后,由于傳統(tǒng)環(huán)境下的維護(hù)管理的手段、系統(tǒng)、模型的設(shè)計(jì)都不是面向云計(jì)算中心的,所以許多的維護(hù)任務(wù)不能用簡(jiǎn)單的步驟一次完成,這就迫使云管理者要投入大量人力資源,導(dǎo)致較高的運(yùn)營(yíng)費(fèi)用。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述技術(shù)問(wèn)題,本發(fā)明的目的是提供一種能快速處理異常情況,且能降低運(yùn)營(yíng)成本的一種基于BCC-KNN的云計(jì)算中心智能運(yùn)維方法及系統(tǒng)。
本發(fā)明所采用的技術(shù)方案是:
一種基于BCC-KNN的云計(jì)算中心智能運(yùn)維方法,包括以下步驟:
A、檢測(cè)所有服務(wù)的運(yùn)行狀態(tài)是否發(fā)生異常,并對(duì)發(fā)生異常的服務(wù)采集其運(yùn)行狀態(tài)數(shù)據(jù);
B、對(duì)采集得到的運(yùn)行狀態(tài)數(shù)據(jù)進(jìn)行處理并將其利用BCC-KNN算法進(jìn)行分類處理;
C、根據(jù)分類后得到的異常類別從方案庫(kù)調(diào)用相應(yīng)的解決方案并執(zhí)行。
作為所述的一種基于BCC-KNN的云計(jì)算中心智能運(yùn)維方法的進(jìn)一步改進(jìn),所述步驟A包括:
A1、對(duì)所有服務(wù)的運(yùn)行狀態(tài)數(shù)據(jù)進(jìn)行循環(huán)檢測(cè),判斷其是否發(fā)生異常,若是,則執(zhí)行步驟A2;否則進(jìn)行執(zhí)行步驟A1;
A2、對(duì)發(fā)生異常的服務(wù)進(jìn)行運(yùn)行狀態(tài)數(shù)據(jù)的采集。
作為所述的一種基于BCC-KNN的云計(jì)算中心智能運(yùn)維方法的進(jìn)一步改進(jìn),所述步驟B包括:
B1、對(duì)采集得到的運(yùn)行狀態(tài)數(shù)據(jù)進(jìn)行篩選處理;
B2、將處理后的運(yùn)行狀態(tài)數(shù)據(jù)轉(zhuǎn)換成符合BCC-KNN算法的數(shù)據(jù)格式;
B3、對(duì)轉(zhuǎn)換格式后的運(yùn)行狀態(tài)數(shù)據(jù)利用BCC-KNN算法進(jìn)行實(shí)時(shí)分類處理,得出服務(wù)對(duì)應(yīng)的異常類別。
作為所述的一種基于BCC-KNN的云計(jì)算中心智能運(yùn)維方法的進(jìn)一步改進(jìn),所述步驟B3包括:
B31、將存儲(chǔ)的實(shí)例集按照異常類別進(jìn)行劃分聚簇;
B32、計(jì)算各聚簇內(nèi)所有實(shí)例的數(shù)據(jù)的均值,得到異常聚簇中心;
B33、對(duì)未分類的運(yùn)行狀態(tài)數(shù)據(jù)與各異常聚簇中心進(jìn)行相似度計(jì)算,將其歸類至與其相似度最高的異常聚簇中心所在的聚簇,并將該聚簇的異常類別作為其對(duì)應(yīng)的異常類別,從而得到該服務(wù)對(duì)應(yīng)的異常類別。
作為所述的一種基于BCC-KNN的云計(jì)算中心智能運(yùn)維方法的進(jìn)一步改進(jìn),所述步驟C包括:
C1、根據(jù)分類后得到的異常類別從方案庫(kù)調(diào)用相應(yīng)的解決方案;
C2、根據(jù)需要調(diào)用的解決方案,生成其自動(dòng)化執(zhí)行腳本,并執(zhí)行。
作為所述的一種基于BCC-KNN的云計(jì)算中心智能運(yùn)維方法的進(jìn)一步改進(jìn),所述步驟C2后還包括:
C3、檢測(cè)腳本執(zhí)行后該異常是否處理成功,若不成功,則發(fā)送警報(bào)通知工作人員進(jìn)行人為處理;
C4、根據(jù)分類后聚簇的運(yùn)行狀態(tài)數(shù)據(jù),對(duì)聚簇的異常聚簇中心進(jìn)行更新。
本發(fā)明所采用的另一技術(shù)方案是:
一種基于BCC-KNN的云計(jì)算中心智能運(yùn)維系統(tǒng),包括:
異常狀態(tài)采集模塊,用于檢測(cè)所有服務(wù)的運(yùn)行狀態(tài)是否發(fā)生異常,并對(duì)發(fā)生異常的服務(wù)采集其運(yùn)行狀態(tài)數(shù)據(jù);
異常檢測(cè)模塊,用于對(duì)采集得到的運(yùn)行狀態(tài)數(shù)據(jù)進(jìn)行處理并將其利用BCC-KNN算法進(jìn)行分類處理;
異常處理模塊,用于根據(jù)分類后得到的異常類別從方案庫(kù)調(diào)用相應(yīng)的解決方案并執(zhí)行。
作為所述的一種基于BCC-KNN的云計(jì)算中心智能運(yùn)維系統(tǒng)的進(jìn)一步改進(jìn),所述異常狀態(tài)采集模塊包括:
運(yùn)行狀態(tài)檢測(cè)模塊,用于對(duì)所有服務(wù)的運(yùn)行狀態(tài)數(shù)據(jù)進(jìn)行循環(huán)檢測(cè),判斷其是否發(fā)生異常,若是,則執(zhí)行數(shù)據(jù)采集模塊;否則進(jìn)行執(zhí)行運(yùn)行狀態(tài)檢測(cè)模塊;
數(shù)據(jù)采集模塊,用于對(duì)發(fā)生異常的服務(wù)進(jìn)行運(yùn)行狀態(tài)數(shù)據(jù)的采集。
作為所述的一種基于BCC-KNN的云計(jì)算中心智能運(yùn)維系統(tǒng)的進(jìn)一步改進(jìn),所述異常檢測(cè)模塊包括:
數(shù)據(jù)處理模塊,用于對(duì)采集得到的運(yùn)行狀態(tài)數(shù)據(jù)進(jìn)行篩選處理;
數(shù)據(jù)轉(zhuǎn)換模塊,用于將處理后的運(yùn)行狀態(tài)數(shù)據(jù)轉(zhuǎn)換成符合BCC-KNN算法的數(shù)據(jù)格式;
數(shù)據(jù)分類模塊,用于對(duì)轉(zhuǎn)換格式后的運(yùn)行狀態(tài)數(shù)據(jù)利用BCC-KNN算法進(jìn)行實(shí)時(shí)分類處理,得出服務(wù)對(duì)應(yīng)的異常類別。
作為所述的一種基于BCC-KNN的云計(jì)算中心智能運(yùn)維系統(tǒng)的進(jìn)一步改進(jìn),所述異常處理模塊包括:
處理方案生成模塊,用于根據(jù)分類后得到的異常類別從方案庫(kù)調(diào)用相應(yīng)的解決方案;
自動(dòng)化執(zhí)行模塊,用于根據(jù)需要調(diào)用的解決方案,生成其自動(dòng)化執(zhí)行腳本,并執(zhí)行。
本發(fā)明的有益效果是:
本發(fā)明一種基于BCC-KNN的云計(jì)算中心智能運(yùn)維方法通過(guò)對(duì)異常情況依次進(jìn)行檢測(cè)、判定和自動(dòng)化解決執(zhí)行的過(guò)程,能對(duì)云服務(wù)發(fā)生的異常情況進(jìn)行智能自主處理,有效減少人為的介入,提高異常處理的速度,實(shí)現(xiàn)提高服務(wù)的可用性和減少工作人員的工作量的目的,大大減少運(yùn)營(yíng)成本。
本發(fā)明的另一個(gè)有益效果是:
本發(fā)明一種基于BCC-KNN的云計(jì)算中心智能運(yùn)維系統(tǒng)通過(guò)異常狀態(tài)采集模塊、異常檢測(cè)模塊和異常處理模塊對(duì)異常情況依次進(jìn)行檢測(cè)、判定和自動(dòng)化解決執(zhí)行的過(guò)程,能對(duì)云服務(wù)發(fā)生的異常情況進(jìn)行智能自主處理,有效減少人為的介入,提高異常處理的速度,實(shí)現(xiàn)提高服務(wù)的可用性和減少工作人員的工作量的目的,大大減少運(yùn)營(yíng)成本。
附圖說(shuō)明
下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式作進(jìn)一步說(shuō)明:
圖1是本發(fā)明一種基于BCC-KNN的云計(jì)算中心智能運(yùn)維方法的步驟流程圖;
圖2是本發(fā)明一種基于BCC-KNN的云計(jì)算中心智能運(yùn)維系統(tǒng)的模塊方框圖。
具體實(shí)施方式
參考圖1,本發(fā)明一種基于BCC-KNN的云計(jì)算中心智能運(yùn)維方法,包括以下步驟:
A、檢測(cè)所有服務(wù)的運(yùn)行狀態(tài)是否發(fā)生異常,并對(duì)發(fā)生異常的服務(wù)采集其運(yùn)行狀態(tài)數(shù)據(jù);
B、對(duì)采集得到的運(yùn)行狀態(tài)數(shù)據(jù)進(jìn)行處理并將其利用BCC-KNN算法進(jìn)行分類處理;
C、根據(jù)分類后得到的異常類別從方案庫(kù)調(diào)用相應(yīng)的解決方案并執(zhí)行。
作為所述的一種基于BCC-KNN的云計(jì)算中心智能運(yùn)維方法的進(jìn)一步改進(jìn),所述步驟A包括:
A1、對(duì)所有服務(wù)的運(yùn)行狀態(tài)數(shù)據(jù)進(jìn)行循環(huán)檢測(cè),判斷其是否發(fā)生異常,若是,則執(zhí)行步驟A2;否則進(jìn)行執(zhí)行步驟A1;
A2、對(duì)發(fā)生異常的服務(wù)進(jìn)行運(yùn)行狀態(tài)數(shù)據(jù)的采集。
其中,對(duì)機(jī)器或服務(wù)進(jìn)行檢測(cè),若發(fā)生異常則采集異常發(fā)生時(shí)的運(yùn)行狀態(tài)數(shù)據(jù)。這里需要預(yù)先對(duì)正常情況數(shù)據(jù)進(jìn)行設(shè)定范圍,超過(guò)則判定為異常,比如對(duì)某項(xiàng)服務(wù)要求是對(duì)一個(gè)請(qǐng)求的響應(yīng)時(shí)間不能超過(guò)3秒,因此編寫(xiě)的檢測(cè)工具就可以是對(duì)訪問(wèn)時(shí)間進(jìn)行計(jì)時(shí),超過(guò)三秒即認(rèn)為該服務(wù)發(fā)生異常,然后對(duì)該服務(wù)進(jìn)行循環(huán)檢測(cè),當(dāng)發(fā)生異常時(shí)(相應(yīng)時(shí)間超3秒)便采集該服務(wù)的運(yùn)行狀態(tài)數(shù)據(jù)。
作為所述的一種基于BCC-KNN的云計(jì)算中心智能運(yùn)維方法的進(jìn)一步改進(jìn),所述步驟B包括:
B1、對(duì)采集得到的運(yùn)行狀態(tài)數(shù)據(jù)進(jìn)行篩選處理;
B2、將處理后的運(yùn)行狀態(tài)數(shù)據(jù)轉(zhuǎn)換成符合BCC-KNN算法的數(shù)據(jù)格式;
B3、對(duì)轉(zhuǎn)換格式后的運(yùn)行狀態(tài)數(shù)據(jù)利用BCC-KNN算法進(jìn)行實(shí)時(shí)分類處理,得出服務(wù)對(duì)應(yīng)的異常類別。
BCC-KNN算法主要有三個(gè)優(yōu)點(diǎn),第一點(diǎn)在于在存在傾斜類分布的情況下仍然具備較好的分類性能,第二點(diǎn)在于改進(jìn)了傳統(tǒng)KNN需要存儲(chǔ)整個(gè)訓(xùn)練集的缺點(diǎn),只需存儲(chǔ)由訓(xùn)練集轉(zhuǎn)換的數(shù)據(jù)結(jié)構(gòu),大副降低存儲(chǔ)代價(jià)并提高分類的實(shí)時(shí)性,第三點(diǎn)在于BCC-KNN支持增量學(xué)習(xí),能隨著異常數(shù)據(jù)的不斷產(chǎn)生自主進(jìn)化,持續(xù)的適應(yīng)新的環(huán)境。
進(jìn)一步,所述對(duì)采集得到的運(yùn)行狀態(tài)數(shù)據(jù)進(jìn)行篩選處理包括處理無(wú)效值、缺失值并去除不完整的數(shù)據(jù)、錯(cuò)誤的數(shù)據(jù)、重復(fù)的數(shù)據(jù)使得注入處理系統(tǒng)的數(shù)據(jù)量降低,加快數(shù)據(jù)的處理速度進(jìn)而提升處理效率。
進(jìn)一步,將處理后的運(yùn)行狀態(tài)數(shù)據(jù)轉(zhuǎn)換成符合BCC-KNN算法的數(shù)據(jù)格式包含將數(shù)據(jù)轉(zhuǎn)換成其它合適的數(shù)值表示方式,或者對(duì)數(shù)據(jù)進(jìn)行歸一化處理,使得每個(gè)屬性的取值范圍不會(huì)相差過(guò)大,并且數(shù)據(jù)的每個(gè)屬性都是可計(jì)算的。
作為所述的一種基于BCC-KNN的云計(jì)算中心智能運(yùn)維方法的進(jìn)一步改進(jìn),所述步驟B3包括:
B31、將存儲(chǔ)的實(shí)例集按照異常類別進(jìn)行劃分聚簇;
B32、計(jì)算各聚簇內(nèi)所有實(shí)例的數(shù)據(jù)的均值,得到異常聚簇中心;
B33、對(duì)未分類的運(yùn)行狀態(tài)數(shù)據(jù)與各異常聚簇中心進(jìn)行相似度計(jì)算,將其歸類至與其相似度最高的異常聚簇中心所在的聚簇,并將該聚簇的異常類別作為其對(duì)應(yīng)的異常類別,從而得到該服務(wù)對(duì)應(yīng)的異常類別。
作為所述的一種基于BCC-KNN的云計(jì)算中心智能運(yùn)維方法的進(jìn)一步改進(jìn),所述步驟C包括:
C1、根據(jù)分類后得到的異常類別從方案庫(kù)調(diào)用相應(yīng)的解決方案;
C2、根據(jù)需要調(diào)用的解決方案,生成其自動(dòng)化執(zhí)行腳本,并執(zhí)行。
進(jìn)一步,解決方案的生成調(diào)用是利用相對(duì)簡(jiǎn)單的異常處理方案組合而成,也就是說(shuō)一個(gè)異常解決方案是由很多個(gè)子方案構(gòu)成,這樣可以增加方案的靈活性和重用性。解決方案需要按照預(yù)先定義好的格式進(jìn)行編寫(xiě),執(zhí)行時(shí)可以根據(jù)機(jī)器的環(huán)境自動(dòng)生成相對(duì)應(yīng)的腳本。
作為所述的一種基于BCC-KNN的云計(jì)算中心智能運(yùn)維方法的進(jìn)一步改進(jìn),所述步驟C2后還包括:
C3、檢測(cè)腳本執(zhí)行后該異常是否處理成功,若不成功,則發(fā)送警報(bào)通知工作人員進(jìn)行人為處理;
C4、根據(jù)分類后聚簇的運(yùn)行狀態(tài)數(shù)據(jù),對(duì)聚簇的異常聚簇中心進(jìn)行更新。
進(jìn)一步,當(dāng)一個(gè)新異常出現(xiàn)時(shí),已存的方案不能很好的進(jìn)行處理導(dǎo)致處理失敗,此時(shí)就需要通知工作人員進(jìn)行人為編寫(xiě)解決方案并放入方案庫(kù),更新異常類別和方案的對(duì)應(yīng)關(guān)系,同時(shí)將新的異常狀態(tài)加入訓(xùn)練集用以提高該類的預(yù)測(cè)準(zhǔn)確率,進(jìn)而當(dāng)該異常狀態(tài)再次出現(xiàn)時(shí)就能夠自主處理而不用人為再次參與。
參考圖2,本發(fā)明一種基于BCC-KNN的云計(jì)算中心智能運(yùn)維系統(tǒng),包括:
異常狀態(tài)采集模塊,用于檢測(cè)所有服務(wù)的運(yùn)行狀態(tài)是否發(fā)生異常,并對(duì)發(fā)生異常的服務(wù)采集其運(yùn)行狀態(tài)數(shù)據(jù);
異常檢測(cè)模塊,用于對(duì)采集得到的運(yùn)行狀態(tài)數(shù)據(jù)進(jìn)行處理并將其利用BCC-KNN算法進(jìn)行分類處理;
異常處理模塊,用于根據(jù)分類后得到的異常類別從方案庫(kù)調(diào)用相應(yīng)的解決方案并執(zhí)行。
作為所述的一種基于BCC-KNN的云計(jì)算中心智能運(yùn)維系統(tǒng)的進(jìn)一步改進(jìn),所述異常狀態(tài)采集模塊包括:
運(yùn)行狀態(tài)檢測(cè)模塊,用于對(duì)所有服務(wù)的運(yùn)行狀態(tài)數(shù)據(jù)進(jìn)行循環(huán)檢測(cè),判斷其是否發(fā)生異常,若是,則執(zhí)行數(shù)據(jù)采集模塊;否則進(jìn)行執(zhí)行運(yùn)行狀態(tài)檢測(cè)模塊;
數(shù)據(jù)采集模塊,用于對(duì)發(fā)生異常的服務(wù)進(jìn)行運(yùn)行狀態(tài)數(shù)據(jù)的采集。
作為所述的一種基于BCC-KNN的云計(jì)算中心智能運(yùn)維系統(tǒng)的進(jìn)一步改進(jìn),所述異常檢測(cè)模塊包括:
數(shù)據(jù)處理模塊,用于對(duì)采集得到的運(yùn)行狀態(tài)數(shù)據(jù)進(jìn)行篩選處理;
數(shù)據(jù)轉(zhuǎn)換模塊,用于將處理后的運(yùn)行狀態(tài)數(shù)據(jù)轉(zhuǎn)換成符合BCC-KNN算法的數(shù)據(jù)格式;
數(shù)據(jù)分類模塊,用于對(duì)轉(zhuǎn)換格式后的運(yùn)行狀態(tài)數(shù)據(jù)利用BCC-KNN算法進(jìn)行實(shí)時(shí)分類處理,得出服務(wù)對(duì)應(yīng)的異常類別。
作為所述的一種基于BCC-KNN的云計(jì)算中心智能運(yùn)維系統(tǒng)的進(jìn)一步改進(jìn),所述異常處理模塊包括:
處理方案生成模塊,用于根據(jù)分類后得到的異常類別從方案庫(kù)調(diào)用相應(yīng)的解決方案;
自動(dòng)化執(zhí)行模塊,用于根據(jù)需要調(diào)用的解決方案,生成其自動(dòng)化執(zhí)行腳本,并執(zhí)行。
其中,本發(fā)明中的BCC-KNN算法核心思想是將訓(xùn)練實(shí)例集轉(zhuǎn)換成異常聚簇中心集。一個(gè)異常類別包含許多的實(shí)例,每個(gè)實(shí)例有自已的具體屬性數(shù)據(jù),我們依據(jù)異常類別將實(shí)例進(jìn)行劃分,即具有相同異常類別的所有實(shí)例屬于同一個(gè)聚簇。
當(dāng)HTTP數(shù)據(jù)集按異常類別劃分后,同一個(gè)劃分內(nèi)的實(shí)例類別相同,因此每個(gè)類別可以看作是一個(gè)聚簇。因?yàn)閭鹘y(tǒng)KNN算法要和每個(gè)全部訓(xùn)練集實(shí)例進(jìn)行相似度運(yùn)算,這就有很大的計(jì)算開(kāi)銷并且要將整個(gè)訓(xùn)練集存儲(chǔ)起來(lái),所以我們?nèi)裟軐澐趾蟮木鄞赜靡粋€(gè)模型表示,那么就能將訓(xùn)練數(shù)據(jù)集轉(zhuǎn)換成了模型,我們采用的模型就是計(jì)算聚簇內(nèi)的所有的實(shí)例的均值,并將這個(gè)均值作為聚簇的中心,這樣每個(gè)聚簇就只需要一條記錄即可表示,存儲(chǔ)量大大降低。有了異常聚簇中心集后,就要對(duì)未分類的實(shí)例進(jìn)行分類,算法將未分類的實(shí)例與轉(zhuǎn)換后的異常聚簇中心進(jìn)行相似度計(jì)算,而不是和整個(gè)訓(xùn)練集計(jì)算相似度,然后將相似度最高的聚簇中心的異常類別作為實(shí)例的類別。具體的說(shuō)就是利用KNN算法的思想,將未分類的實(shí)例與每個(gè)聚簇中心進(jìn)行相似度計(jì)算。若相似度采用歐式距離,那么在和所有的聚簇中心依次計(jì)算距離后,將與其距離最近的聚簇中心所在的異常類別作為該實(shí)例的分類結(jié)果。因?yàn)樗惴ǖ姆诸惒捎孟嗨贫扔?jì)算,并且選取相似度最高的聚簇中心作為實(shí)例的分類結(jié)果,即K的取值為1,這就降低偏斜類分布的影響。
另外,算法將訓(xùn)練集轉(zhuǎn)換成異常聚簇中心,使得算法只需與異常聚簇中心而不是和整個(gè)訓(xùn)練集進(jìn)行相似度計(jì)算,這樣不但使得分類的速度大大加快降低時(shí)間復(fù)雜度,同時(shí)也降低了空間復(fù)雜度,因?yàn)橥瑯又恍枰鎯?chǔ)聚簇中心而不是整個(gè)訓(xùn)練集,使得所有的異常聚簇中心可以全部放入內(nèi)存,有利于聚簇中心的快速更新,此處的重要性在于時(shí)間和空間復(fù)雜度的降低使得算法能夠大幅提高分類的實(shí)時(shí)性。
因?yàn)锽CC-KNN將數(shù)據(jù)集轉(zhuǎn)換為異常聚簇中心集,所以為了實(shí)現(xiàn)增量式學(xué)習(xí)算法要能根據(jù)新產(chǎn)生異常實(shí)例來(lái)調(diào)整異常聚簇中心集,將新知識(shí)與舊知識(shí)結(jié)合,使得異常聚簇中心集能隨著新知識(shí)的加入不斷調(diào)整適應(yīng)新的環(huán)境。同時(shí)為了防止過(guò)期的舊知識(shí)對(duì)新環(huán)境的處理造成影響,還要丟棄過(guò)期的部分聚簇中心值。當(dāng)產(chǎn)生異常實(shí)例時(shí),異常的類別只有新的異常和已經(jīng)發(fā)生異常兩種類型。針對(duì)這兩種類型的異常算法的增量學(xué)習(xí)策略如下:
若異常是已經(jīng)發(fā)生過(guò)的,那么就將該異常實(shí)例劃分到該異常類別對(duì)應(yīng)的聚簇中,然后基于該實(shí)例與聚簇中心重新計(jì)算聚簇中心。
若異常是新的異常,那么此時(shí)就將該異常實(shí)例劃分為一個(gè)新的聚簇,然后將該實(shí)例作為聚簇中心。
存儲(chǔ)了異常聚簇中心集后,異常實(shí)例產(chǎn)生后我們要對(duì)異常聚簇中心進(jìn)行更新,我們用(Anew,Bnew,Cnew,Nnew…,class)向量來(lái)描述新產(chǎn)生的HTTP數(shù)據(jù)和異常的類別正確對(duì)應(yīng),具體為(0.75,0.78,0.79,0.29,0,0.77,負(fù)載過(guò)高),記為(VCTnew,class)。首先我們判定class的值,因class的值“負(fù)載過(guò)高”能在聚簇列別中找到,就說(shuō)明產(chǎn)生的異常實(shí)例是已經(jīng)發(fā)生過(guò)的,那么直接將該異常實(shí)例與其異常類別對(duì)應(yīng)的聚簇中心進(jìn)行平均值計(jì)算。負(fù)載過(guò)高對(duì)應(yīng)的聚簇中心向量CLUcenter進(jìn)行平均值計(jì)算,新中心向量記為NEWCLUcenter,因此計(jì)算公式如下:
若異常實(shí)例所屬的異常類別是第一次出現(xiàn),我們同樣用(VCTnew,class)來(lái)描述,具體的數(shù)據(jù)與異常類別對(duì)應(yīng)為(0.8,0.1,0.1,0,0,0,配置錯(cuò)誤),即其class的值為配置錯(cuò)誤。由于異常聚簇中心集中就沒(méi)有配置錯(cuò)誤類別對(duì)應(yīng)的聚簇條目,因此可知該異常類別是第一次發(fā)生,所以我們要將該異常實(shí)例劃分到一個(gè)新的聚簇中,聚簇對(duì)應(yīng)的類別就是配置錯(cuò)誤,而實(shí)例的聚簇中心NEWCLUcenter就初始化為(VCTnew,class)。
通過(guò)前面的描述,可知算法能夠根據(jù)新產(chǎn)生的異常實(shí)例不斷調(diào)整異常聚簇中心集,但是為了防止舊數(shù)據(jù)對(duì)利用新知識(shí)分類這個(gè)過(guò)程的影響,算法會(huì)丟棄過(guò)期的數(shù)據(jù),算法定義一個(gè)固定時(shí)間段,這也是數(shù)據(jù)的有效期,那么隨著時(shí)間的流逝,超過(guò)有效期的數(shù)據(jù)就會(huì)被丟棄,這樣就使得異常聚簇中心集總是能夠持續(xù)的適應(yīng)最新的環(huán)境。
由于我們的聚簇中心是計(jì)算該異常類別下所有實(shí)例的平均值,因此,為了刪除過(guò)期的數(shù)據(jù),我們給異常聚簇中心集中的每個(gè)數(shù)據(jù)條目一個(gè)時(shí)間戳,然后將時(shí)間戳在有效期內(nèi)的子聚簇中心組合共同來(lái)計(jì)算平均值。簡(jiǎn)單說(shuō)就是聚簇中心由幾個(gè)子中心構(gòu)成,每個(gè)子中心都有自己的時(shí)間戳,隨時(shí)間流逝,過(guò)期的時(shí)間戳標(biāo)識(shí)的子聚簇中心就被刪除,不能再被用作生成聚簇中心。
比如我們把過(guò)期時(shí)間限定為三個(gè)月,以月為單位刪除舊數(shù)據(jù),那么我們可以將每個(gè)月作為一個(gè)子聚類中心,因此就有3個(gè)子聚簇中心,假設(shè)當(dāng)前月為0,上個(gè)月為1,上上個(gè)月為2。實(shí)際的聚簇中心是由三個(gè)子聚簇中心算出的,我們用CLU0sub-center來(lái)表示時(shí)間戳為0的條目,CLU1sub-center來(lái)表示時(shí)間戳為1的條目,CLU2sub-center來(lái)表示時(shí)間戳為2的條目,并假設(shè)我們用(中心屬性Areal,中心屬性Breal,中心屬性Creal…)向量來(lái)表示負(fù)載過(guò)高異常類別的聚簇中心,記為CLUreal-center,而這個(gè)聚簇中心是真正用來(lái)計(jì)算相似度的使用的,那么CLUreal-center計(jì)算公式如下;
當(dāng)時(shí)間進(jìn)入新的月份后,所有新產(chǎn)生的實(shí)例都標(biāo)識(shí)為新月份的時(shí)間戳,子聚簇中心的初始化過(guò)程和新異常類別發(fā)生的過(guò)程相似,即將新月份內(nèi)產(chǎn)生的第一個(gè)該異常類別的實(shí)例作為子聚簇中心,其后的產(chǎn)生的實(shí)例與再與該子聚簇中心重新計(jì)算均值。接下來(lái)要將時(shí)間超過(guò)三個(gè)月的子聚簇中心刪除,以多時(shí)間戳聚簇中心集為例,當(dāng)進(jìn)入新的月份時(shí),每個(gè)時(shí)間戳的值加1,異常聚簇中心集中的所有時(shí)間戳標(biāo)識(shí)大于2的條目應(yīng)被刪除。我們假設(shè)進(jìn)入新月份產(chǎn)生的負(fù)載過(guò)高異常為(0.73,0.782,0.80,0.22,0,0.76,負(fù)載過(guò)高)。
以上是對(duì)本發(fā)明的較佳實(shí)施進(jìn)行了具體說(shuō)明,但本發(fā)明創(chuàng)造并不限于所述實(shí)施例,熟悉本領(lǐng)域的技術(shù)人員在不違背本發(fā)明精神的前提下還可做作出種種的等同變形或替換,這些等同的變形或替換均包含在本申請(qǐng)權(quán)利要求所限定的范圍內(nèi)。