一種多節(jié)點web服務異常檢測方法和系統(tǒng)的制作方法
【技術領域】
[0001] 本發(fā)明涉及本信息安全領域,具體是大型企業(yè)web服務異常的檢測。
【背景技術】
[0002] 在今天的IT環(huán)境中,企業(yè)的各種業(yè)務已經(jīng)越來越緊密地與Internet結合在一起, 由服務器、數(shù)據(jù)庫、中間件等組成的應用信息系統(tǒng)也變得越來越復雜,對IT技術人員的要求 變得越來越高,各種突發(fā)故障排除起來也越來越困難。而企業(yè)利潤的增長和獲得直接取決 于業(yè)務能否有效運行,應用的運行質(zhì)量直接關系用戶可以提供的業(yè)務水平。在那些關鍵應 用上對性能監(jiān)控管理,對性能問題進行及時有效的分析和處理,是提高用戶業(yè)務的迫切需 要。
[0003] 在一個業(yè)務系統(tǒng)上線運行后,衡量該系統(tǒng)運行質(zhì)量的尺度必然是考察其完成業(yè)務 的能力、速度和穩(wěn)定性。由于應用的執(zhí)行狀況直接反映了業(yè)務運行的質(zhì)量,所以對應用的監(jiān) 控、分析、優(yōu)化和從應用角度對系統(tǒng)的觀察,是性能管理最重要的方面。
[0004] 各類企業(yè)IT服務往往以web服務的形式提供,,由于當今業(yè)務本身的多變性,業(yè)務 模型是不斷變化的;業(yè)務的發(fā)展也使得軟硬件平臺不斷升級,業(yè)務的擴充和迀移也是經(jīng)常 性的;由于軟件產(chǎn)品的特性,高度產(chǎn)品化而且高度易于客戶化的應用軟件在很多領域遠未 實現(xiàn)。以上種種因素使得今天的企業(yè)內(nèi)的web服務復雜、常常出現(xiàn)異常且難以管理。
[0005] 但是,目前針對web服務的檢測往往采用特征檢測的方法,采用入侵檢測系統(tǒng)只是 在表示入侵模式(簽名)的方式以及在系統(tǒng)的審計中檢查入侵簽名的機制上有所區(qū)別,主要 可以分為基于專家系統(tǒng)、基于狀態(tài)迀移分析和基于模式匹配等幾類。這些方法的主要局限 在于,只是根據(jù)已知的入侵序列和系統(tǒng)缺陷模式來檢測系統(tǒng)中的可疑行為,而不能檢測新 的入侵攻擊行為以及未知的、潛在的系統(tǒng)缺陷。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的目的是為了克服現(xiàn)有技術的缺點,提出一種多節(jié)點web服務異常檢測方 法和系統(tǒng),能夠?qū)崿F(xiàn)對web服務系統(tǒng)進行異常檢測和故障定位分析。
[0007] 本發(fā)明的目的是通過以下技術方案實現(xiàn)的:
[0008] 一種多節(jié)點web服務異常檢測系統(tǒng),包括:元數(shù)據(jù)采集模塊、元數(shù)據(jù)索引模塊、web 服務異常檢測模塊和web服務異常定位模塊,其中:
[0009] A、元數(shù)據(jù)采集模塊對syslog協(xié)議或者日志文本讀取,獲取全網(wǎng)各節(jié)點web服務器 日志元數(shù)據(jù);
[0010] B、元數(shù)據(jù)索引模塊:對不同種類web服務器的異構日志進行格式化,統(tǒng)一數(shù)據(jù)格 式,采用ElasticSearch技術對web元數(shù)據(jù)進行索引;
[0011] C、web服務異常檢測模塊:周期性計算各個web服務器節(jié)點的錯誤日志比率,并構 建錯誤日志比率的基線數(shù)據(jù)模型,當web服務的當前錯誤日志比率與該web服務的錯誤日志 比率基線模型偏離較大時,確定為web服務異常;
[0012] D、web服務異常定位模塊:通過web元數(shù)據(jù)索引檢索異常web服務在故障時間點的 所有日志元數(shù)據(jù),檢索日志嚴重等級最高且重復次數(shù)最多的日志為web服務異常事件內(nèi)容。 [0013]優(yōu)選的,數(shù)據(jù)采集模塊采集web服務器日志的方式為通過syslog協(xié)議采集或通過 讀取web服務器日志文件采集。
[0014]優(yōu)選的,元數(shù)據(jù)索引模塊對不同種類web服務器的異構日志進行格式化的具體步 驟如下:
[0015] 采用W3C擴展日志格式(ExLF),元數(shù)據(jù)采用字節(jié)碼方式,統(tǒng)一的web服務元數(shù)據(jù)格 式設計如下表1:
[0016]
[0018]表1
[0019]優(yōu)選的,在索引web日志元數(shù)據(jù),對元數(shù)據(jù)序列按照時間以增量方式向索引庫添加 數(shù)據(jù),建立索引采用分布式檢索工具ElasticSearch完成。
[0020]優(yōu)選的,web服務的平均錯誤日志比率計算過程為:
[0021 ]先計算某個web服務器節(jié)點的錯誤日志比率:
[0022] er=(服務器響應狀態(tài)status為4XX和5XX的日志個數(shù))/日志總數(shù)
[0023] 設該支撐該web服務(web service)的各個web服務器節(jié)點(web server node)的 錯誤日志比率為:
[0024] {er〇,eri,er2,er,er4,er5,......ern}
[0025] 貝lj,該web服務的平均錯誤日志比率為:
[0026]
[0027]優(yōu)選的,所述系統(tǒng)的web服務異常檢測模塊,實現(xiàn)步驟如下:
[0028] (1)基線構建階段:根據(jù)設定的學習周期(learrutime,默認為24小時)和采樣點時 長(sample_time,默認為5分鐘),建立各個web服務的錯誤日志比率基線,該基線包括各個 web服務平均錯誤日志比率的正常值和波動范圍。設企業(yè)網(wǎng)絡中的web服務的序列為:
[0029] WS= {WS0,WS1,WS2,WS3,WS4,WS5,......WSn}
[0030] 則平均錯誤日志比率基線為:
[0031] BL
[0032] 其中,米樣點個數(shù) 1 = learn_time/sample_time;
[0033] 其中,BL是平均錯誤日志比率基線,是一個矩陣,每一個數(shù)據(jù)點aernl表示web服務η 在采樣點時亥? 1的平均錯誤日志比率,1 earn_t ime為學習周期,samp 1 e_t ime為采樣點時長。 [0034] (2)性能檢測階段:根據(jù)基線建立階段建立的各個web服務系統(tǒng)平均錯誤日志比率 的正常值,判斷當前web服務系統(tǒng)的平均錯誤日志比率是否異常,并根據(jù)當前的平均錯誤日 志比率值,動態(tài)更新基線。
[0035]優(yōu)選的,所述系統(tǒng)的web服務異常定位模塊,其實現(xiàn)步驟如下:
[0036] (1)提取相關web日志元數(shù)據(jù):根據(jù)檢測階段獲得web服務系統(tǒng)《81在某采樣時間段 出現(xiàn)了服務異常,從web日志元數(shù)據(jù)索引中獲得web服務系統(tǒng)界81在該采樣時間段的所有web 日志元數(shù)據(jù);
[0037] (2)檢索重復次數(shù)最多的日志:按照[訪問主機,被訪問主機,授權用戶,服務狀態(tài)] 對元數(shù)據(jù)進行分組,獲得重復次數(shù)最多的分組,即重復次數(shù)最多的日志。
[0038] (3)定位服務異常故障點:從重復次數(shù)最多的日志中提取服務狀態(tài)的錯誤碼即為 服務異常類型,訪問主機、被訪問主機即為服務異常故障點。
[0039]本發(fā)明還提供一種多節(jié)點web服務異常檢測方法,包括如下步驟:
[0040]對syslog協(xié)議或者日志文本讀取,獲取全網(wǎng)各節(jié)點web服務器日志元數(shù)據(jù);
[0041]對不同種類web服務器的異構日志進行格式化,統(tǒng)一數(shù)據(jù)格式,采用 ElasticSearch技術對web元數(shù)據(jù)進行索引;
[0042]周期性計算各個web服務器節(jié)點的錯誤日志比率,并構建錯誤日志比率的基線數(shù) 據(jù)模型,當web服務的當前錯誤日志比率與該web服務的錯誤日志比率基線模型偏離較大 時,確定為web服務異常;
[0043]通過web元數(shù)據(jù)索引檢索異常web服務在故障時間點的所有日志元數(shù)據(jù),檢索日志 嚴重等級最高且重復次數(shù)最多的日志為web服務異常事件內(nèi)容。
【具體實施方式】
[0044] 一種多節(jié)點web服務異常檢測系統(tǒng),包括:元數(shù)據(jù)采集模塊、元數(shù)據(jù)索引模塊、web 服務異常檢測模塊和web服務異常定位模塊,其中:
[0045] A、元數(shù)據(jù)采集模塊對syslog協(xié)議或者日志文本讀取,獲取全網(wǎng)各節(jié)點web服務器 日志元數(shù)據(jù);
[0046] B、元數(shù)據(jù)索引模塊:對不同種類web服務器的異構日志進行格式化,統(tǒng)一數(shù)據(jù)格 式,采用ElasticSearch技術對元數(shù)據(jù)進行索引;
[0047] C、web服務異常檢測模塊:周期性計算各個web服務器節(jié)點的錯誤日志比率,同一 web服務往往由多個web服務器節(jié)點共同完成,計算web服務的平均錯誤日志比率,并構建該 比率的基線數(shù)據(jù)模型,當web服務的當前錯誤日志比率與該web服務的錯誤日志比率基線模 型偏離較大時,確定為web服務異常;
[0048] D、web服務異常定位模塊:通過web元數(shù)據(jù)索引檢索異常web服務在故障時間點的 所有日志元數(shù)據(jù),檢索日志嚴重等級最高且重復次數(shù)最多的日志為web服務異常事件內(nèi)容。 [0049]優(yōu)選的,在數(shù)據(jù)采集模塊,采用兩種方案采集web服務器日志,一是通過syslog協(xié) 議采集,二是通過讀取web服務器日志文件采集。
[0050] 優(yōu)選的,在元數(shù)據(jù)索引模塊,其中對不同種類web服務器的異構日志進行格式化, 具體步驟如下:
[0051] 采用W3C擴展日志格式(ExLF),為了高性能傳輸元數(shù)據(jù),元數(shù)據(jù)采用字節(jié)碼方式。 統(tǒng)一的web服務元數(shù)據(jù)格式設計如下表1:
[0052]
1 兀旌的,仕系引webtUi:、兀數(shù)骷,河兀數(shù)骷;于少時女照Η、」|日」以項Μ力:tVN系引坪偷訓 數(shù)據(jù),建立索引采用分布式檢索工具ElasticSearch完成。
[0054]優(yōu)選的,web服務的平均錯誤日志比率計算過程為:
[0055]先計算某個web服務器節(jié)點的錯誤日志比率:
[0056] er=(服務器響應狀態(tài)status為4XX和5XX的日志個數(shù))/日志總數(shù)
[0057] 設該支撐該web服務(web service)的各個web服務器節(jié)點(web server node)的 錯誤日志比率為:
[0058] [er0,eri,er2,er,er4,er5,......ern}
[0059] 則,該web服務的平均錯誤日志比率為:
[0060]
[0061]優(yōu)選的,所述系統(tǒng)的web服務異常檢測模塊,實現(xiàn)步驟如下:
[0062] (1)基線構建階段:根據(jù)設定的學習周期(learrutime,默認為