• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于知識(shí)庫和HSMM模型的云日志分析方法

      2020-09-26 11:43張崢峰何成萬張進(jìn)
      電腦知識(shí)與技術(shù) 2020年24期
      關(guān)鍵詞:知識(shí)庫

      張崢峰 何成萬 張進(jìn)

      摘要:為了分析云基礎(chǔ)環(huán)境下各個(gè)組件產(chǎn)生的日志數(shù)據(jù),本文提出了一個(gè)基于知識(shí)庫和HSMM(隱半馬爾科夫模型)的云日志分析方法。首先,日志分析系統(tǒng)整合了Flume, Kafka, Spark Streaming;然后,消費(fèi)模塊實(shí)時(shí)獲取云日志,云日志經(jīng)過一系列處理后形成時(shí)間事件序列用于故障預(yù)測,正確的預(yù)測結(jié)果將通過接口寫入知識(shí)庫。此外,獲取的云日志會(huì)寫入elasticsearch中用于日志檢索;最后,通過實(shí)驗(yàn)對系統(tǒng)的實(shí)用性指標(biāo)進(jìn)行了評(píng)估。該云日志分析系統(tǒng)可以聚集多源日志,方便日志檢索,提高預(yù)測的準(zhǔn)確度。

      關(guān)鍵詞:Spark Streaming;云日志;TF-IDF;知識(shí)庫;OpenStack

      中圖分類號(hào):TP311.5 ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A

      文章編號(hào):1009-3044(2020)24-0007-04

      Abstract: In order to analyze the log data generated by various components in the cloud-based environment, this paper proposes a cloud log analysis method based on the knowledge base and HSMM (Hidden Semi-Markov Model). First, the log analysis system integrates Flume, Kafka, and Spark Streaming; then, the consumer module obtains the cloud logs in real-time, and the time event sequence formed by the cloud logs after a series of processing is used for fault prediction. The correct prediction results will be written into the knowledge through the interface. Library. Also, the obtained cloud logs will be written into an elastic search for log retrieval; finally, the usage practices of the system was evaluated through experiments. The cloud log analysis system can aggregate multi-source logs, facilitate log retrieval, and improve the accuracy of prediction.

      Key words: Spark Streaming; cloud log; TF-IDF; database of knowledge; OpenStack

      1引言

      伴隨著云時(shí)代的到來,以O(shè)penStack[1]搭建的云基礎(chǔ)平臺(tái)(IASS)越來越受到人們的重視。OpenStack搭建的云基礎(chǔ)平臺(tái)包含了儀表盤組件Horizon,計(jì)算組件nova,網(wǎng)絡(luò)組件neutron,對象存儲(chǔ)組件swift,塊存儲(chǔ)組件cinder,鏡像組件glance,身份認(rèn)證組件keystone,計(jì)費(fèi)組件ceilometer,編排組件heat。云日志具有多源性特點(diǎn):組件的獨(dú)立性,即使是單機(jī)部署的OpenStack,不同組件運(yùn)行后形成的日志文件也在不同的文件夾下面;業(yè)界熟知的阿里云,亞馬遜云等都是一個(gè)分布式集群,集群中包含了控制節(jié)點(diǎn),計(jì)算節(jié)點(diǎn),網(wǎng)絡(luò)節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)等,節(jié)點(diǎn)部署在集群的不同主機(jī)上,節(jié)點(diǎn)的分散性決定了日志多源性。

      文獻(xiàn)[2]提到了日志對于系統(tǒng)的運(yùn)行維護(hù)和故障診斷都具有很大的幫助。直接閱讀多源日志需要手動(dòng)來回切換日志存儲(chǔ)目錄,不方便查詢。故障預(yù)測作為故障檢測的一種手段,讓運(yùn)維人員能夠盡可能及早發(fā)現(xiàn)故障。日志的多源性會(huì)增加數(shù)據(jù)種類的多樣性,增加系統(tǒng)監(jiān)聽負(fù)擔(dān),給故障預(yù)測的準(zhǔn)確率和實(shí)時(shí)性都提出了挑戰(zhàn)。

      本文提出了一個(gè)基于知識(shí)庫和HSMM模型的云日志分析方法。該方法具有集中分散多源日志、方便查詢?nèi)罩尽⒛軌蛟诓恍薷脑慈罩窘Y(jié)構(gòu)的前提下進(jìn)行故障預(yù)測和提供解決方案等特點(diǎn)。

      2相關(guān)工作

      關(guān)于云環(huán)境下的日志分析,很多學(xué)者對此展開了深入的研究。Shetty[3]等人提出了一種基于機(jī)器學(xué)習(xí)和控制理論模型的數(shù)據(jù)挖掘技術(shù),可以自適應(yīng)地調(diào)整檢測閾值,通過實(shí)時(shí)分析云日志來發(fā)現(xiàn)云環(huán)境中的異常事件,這是一種事后診斷的方法。Wang等人[4]設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)云數(shù)據(jù)中心審計(jì)系統(tǒng) CDCAS(Cloud Data Center Auditing System),用一個(gè)分布式自治代理模型來收集各種多源異構(gòu)日志,基于特征的方法和相關(guān)性分析算法比較審計(jì)日志和預(yù)配置或預(yù)定義的事件模式,從而發(fā)現(xiàn)非法行為。由于是在非法行為已經(jīng)發(fā)生了的情況下通過日志分析來發(fā)現(xiàn)系統(tǒng)異常的方法,是一種事后處理的方法。張之宣等[5]提出了一個(gè)基于HSMM模型的異常預(yù)測方法,能夠?qū)ο到y(tǒng)故障進(jìn)行預(yù)測,但是預(yù)測的準(zhǔn)確率不高,并且故障預(yù)測的結(jié)果是基于二分類的分類方法,其最終預(yù)測結(jié)果只有異?;蛘哒深悾援惓5木唧w內(nèi)容是無法得知的。王智遠(yuǎn)[2]等人提出了一種日志異常的檢測方法,首先基于編輯距離進(jìn)行日志聚類形成模板,然后對模板進(jìn)行TF-IDF分詞處理形成數(shù)值型特征向量,然后使用貝葉斯,邏輯回歸等弱分類器構(gòu)建得分特征向量,最后利用得分特征向量和隨機(jī)森林得到強(qiáng)分類器用于異常檢測。實(shí)驗(yàn)證明了該方法具有很好的分類效果。由于是基于事件已經(jīng)發(fā)生后進(jìn)行的分類處理,所以還是一種事后處理辦法。

      本文提出的是基于知識(shí)庫和HSMM預(yù)測方法,簡稱KDB+HSMM(Knowledge DataBase+HSMM)。隨著時(shí)間推移,知識(shí)庫內(nèi)容的豐富完善,相對原有的HSMM[5]預(yù)測方法而言,能夠提高一點(diǎn)預(yù)測的準(zhǔn)確度,得知異常發(fā)生的具體內(nèi)容。

      3系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

      整個(gè)實(shí)時(shí)系統(tǒng)主要分為三大部分,數(shù)據(jù)采集部分,數(shù)據(jù)分析部分,數(shù)據(jù)前端展示部分,系統(tǒng)的整體架構(gòu)如圖1所示。

      3.1數(shù)據(jù)采集

      Flume是一個(gè)采集工具,主要功能是可以把各種數(shù)據(jù)源通過管道把數(shù)據(jù)下沉到目的地。通過配置數(shù)據(jù)來源和數(shù)據(jù)下沉的目的地,可以完成數(shù)據(jù)從產(chǎn)生的地方遷移到目的地。通過配置監(jiān)聽0penStack各個(gè)組件日志文件,從而將分散的多源日志集中收集起來,便于統(tǒng)一進(jìn)行處理。

      Kafka是基于消息發(fā)布訂閱系統(tǒng),由producer,broker,consumer構(gòu)成,生產(chǎn)者向broker某個(gè)主題發(fā)布消息,消費(fèi)者訂閱該主題,可以從該主題上拉取數(shù)據(jù)。作為大數(shù)據(jù)處理的中間件,起數(shù)據(jù)處理緩沖作用。Kafka作為Flume和Spark Streaming之間橋梁,F(xiàn)lume下沉數(shù)據(jù)到Kafka主題上,Spark Streaming訂閱主題實(shí)時(shí)消費(fèi)數(shù)據(jù)。

      Spark Streaming是偽實(shí)時(shí)處理框架,通過Spark Streaming提供編程模型,設(shè)置多少時(shí)間為一個(gè)批次,由于時(shí)間很短,近似看作是實(shí)時(shí)處理。Streamingcontext是Spark Streaming的程序入口。

      valsparkConf ?= new SparkConf()

      .setAppName(“cloudLogAnalysis”).setMaster[“l(fā)ocal[*]”];

      //配置[?t],作為數(shù)據(jù)的一個(gè)批次。

      valssc = new StreamingContext(sparkConf,Seconds([?t]));

      3.2 數(shù)據(jù)分析

      3.2.1 故障預(yù)測

      故障預(yù)測模塊實(shí)現(xiàn)是基于知識(shí)庫和HSMM預(yù)測方法。假設(shè)故障出現(xiàn)的時(shí)間點(diǎn)time,手動(dòng)配置[?t],預(yù)測前置時(shí)間[?lt],在(time-[?lt-?t])到(time-[?lt])組成事件序列用來預(yù)測發(fā)生的time點(diǎn)的故障,如圖2所示。

      在知識(shí)庫中建立3張核心的表。表TTC(typeId,typeContent),如表1所示;TIK(typeId,knowledge)如表2所示;FST(failSequence,typeId)如表3所示。

      KDB+HSMM預(yù)測的過程,如圖3所示。

      1) OpenStack日志格式統(tǒng)一為<時(shí)間戳><日志等級(jí)><代碼模塊><日志內(nèi)容><源代碼位置>,過濾日志等級(jí)為ERROR的日志數(shù)據(jù)。時(shí)間事件序列重點(diǎn)關(guān)注云日志的兩個(gè)字段,時(shí)間戳(timeStamp)和日志內(nèi)容(message),其他字段清理掉,簡化計(jì)算。時(shí)間戳標(biāo)記事件發(fā)生的先后順序,日志內(nèi)容進(jìn)行事件的分類。

      2)對日志內(nèi)容進(jìn)行常數(shù)歸一處理,降低矩陣維度和減少無意義特征,提高效率和模型精確度。例如nova-compute.log中一條錯(cuò)誤日志內(nèi)容AMQP server on 192.168.143.128:5672 is unreachable: Too many heartbeats missed. Trying again in 1 seconds. Client port: None: ConnectionForced: Too many heartbeats missed,替換常數(shù)后形成的日志內(nèi)容為AMQP server on * is unreachable: Too many heartbeats missed. Trying again in *seconds. Client port: None: ConnectionForced: Too many heartbeats missed,不同的常數(shù)增加了維度,統(tǒng)一用*號(hào)去代替,降低維度。

      3)將經(jīng)過2)常數(shù)歸一處理后的文本信息轉(zhuǎn)為數(shù)值型特征。本文采用是TF-IDF,對日志常數(shù)歸一后的內(nèi)容進(jìn)行分詞。TF-IDF[7](term frequency–inverse document frequency)是一種常見的文本挖掘技術(shù)。TF意思是詞頻(Term Frequency),表示詞語在文檔中出現(xiàn)的詞頻,IDF意思是逆文本頻率指數(shù)(Inverse Document Frequency),是衡量詞重要性指標(biāo)。

      4)經(jīng)過3)分詞后形成數(shù)值型特征進(jìn)行分組聚類處理。日志中記錄了很多相似的錯(cuò)誤事件,可以進(jìn)行聚類處理。日志文本信息豐富,形成的數(shù)值型特征矩陣維度高,聚類計(jì)算量大。而K-means聚類算法能夠并行化處理,聚類速度快,spark機(jī)器學(xué)習(xí)庫里面集成了該算法,方便進(jìn)行內(nèi)存迭代調(diào)優(yōu)。K-means算法[8]初始化中心K是人為選取的,最優(yōu)K值是當(dāng)走HSMM模型預(yù)測路線的預(yù)測準(zhǔn)確率收斂于某一個(gè)值。對事件聚類的過程如圖4所示。

      經(jīng)過聚類處理后,可以知道每個(gè)事件到底屬于哪一個(gè)類,然后根據(jù)每個(gè)事件所標(biāo)記的時(shí)間,就可以展示出時(shí)間事件序列。用上圖4中的a,b,c三個(gè)類進(jìn)行舉例子,假設(shè)標(biāo)記的時(shí)間先后順序?yàn)閇m1,m2,m3,m5,m9,mk],那么經(jīng)過聚類后所展示[m1,m2,m3,m5,m9,mk]時(shí)間事件序列如圖5所示。

      5)基于4)聚類的數(shù)據(jù)結(jié)合標(biāo)記時(shí)間,形成時(shí)間事件序列。

      6)故障預(yù)測。故障預(yù)測的本質(zhì)是實(shí)時(shí)獲取的事件序列是否包含有故障有關(guān)的序列,5)形成的時(shí)間事件序列作為預(yù)測的輸入數(shù)據(jù)。知識(shí)庫預(yù)測原理為FST中進(jìn)行匹配查詢(%failSequence%=R),如果查詢有,會(huì)通過typeId關(guān)聯(lián)到typeContent,返回預(yù)測結(jié)果的具體內(nèi)容。HSMM預(yù)測原理為系統(tǒng)的一種類型的狀態(tài)[si]對應(yīng)一個(gè) HSMM分類模型[λi],將實(shí)時(shí)獲取的時(shí)間事件序列O代入[p(o/λi)],由計(jì)算概率最大的[λi]得到系統(tǒng)狀態(tài)[si]。其預(yù)測示意圖如圖6所示。

      3.2.2 知識(shí)庫完善

      如果組件運(yùn)行出現(xiàn)了問題,首先是根據(jù)typeId從知識(shí)庫表TIK里面去尋找對應(yīng)的解決方案knowledge,如果到知識(shí)庫庫里面找不到解決方案,維護(hù)人員也不知道如何解決的情況下,點(diǎn)擊故障解決模塊中的網(wǎng)上搜尋按鈕。系統(tǒng)會(huì)獲取異常日志errorLogs,調(diào)用自動(dòng)化測試工具selenium[9],將errorLogs作為關(guān)鍵詞在網(wǎng)上檢索解決方案,相對人為手動(dòng)復(fù)制粘貼errorLogs到網(wǎng)上檢索而言,方便快捷。當(dāng)?shù)骄W(wǎng)上順利找到了對應(yīng)的解決方案knowledge,維護(hù)人員將knowledge通過接口添加到TIK中,完善知識(shí)庫,其過程如圖7所示。

      不同的瀏覽器選擇不同的selenium驅(qū)動(dòng),搜索網(wǎng)站的網(wǎng)址,網(wǎng)站的搜索框Xpath,搜索按鈕的Xpath(瀏覽器審查元素,然后復(fù)制元素Xpath獲取),寫入到配置文件中,讓程序讀取,如圖7所示。維護(hù)人員沒有配置的話,遵守約定優(yōu)于配置的原則,默認(rèn)是從百度上搜索解決方案。其實(shí)現(xiàn)的核心代碼如下:

      System.setProperty(瀏覽器selenium驅(qū)動(dòng)地址);

      WebDriver driver=new 瀏覽器驅(qū)動(dòng)

      driver.get(搜索網(wǎng)站網(wǎng)址);

      WebElement input =driver.findElement(By.xpath(搜索框Xpath));

      input.sendKeys(errorLogs);

      WebElement button = driver.findElement(By.xpath(搜索按鈕Xpath));

      button.click();

      3.2.3云日志檢索

      云日志很明顯的一個(gè)特點(diǎn)是數(shù)據(jù)量大,如果用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫存儲(chǔ)可能存在查詢響應(yīng)慢和存儲(chǔ)空間不足等問題。本系統(tǒng)采用的是elasticsearch[6]進(jìn)行日志的存儲(chǔ),可以實(shí)現(xiàn)日志的快速檢索功能。另外,如果還有其他需求的話,可以下載kibana(kibana版本號(hào)和elasticsearch的版本號(hào)要一致),配置kibana.yml中的elasticsearch url,可以對存儲(chǔ)在elasticsearch中的日志進(jìn)行可視化分析。Kibana和本文提到的分析系統(tǒng)是相互獨(dú)立的,輔助分析云日志。

      4實(shí)驗(yàn)結(jié)果及其比較

      單機(jī)部署的OpenStack云基礎(chǔ)環(huán)境,通過創(chuàng)建和刪除云實(shí)例操作,循環(huán)反復(fù)50次后所產(chǎn)生的日志數(shù)據(jù)源進(jìn)行實(shí)驗(yàn)。

      用準(zhǔn)確率(Precision),召回率(Recall),F(xiàn)-measure來衡量故障預(yù)測的結(jié)果。

      張之宣提出的HSMM[5]和本文中KDB+HSMM就預(yù)測結(jié)果(知識(shí)庫預(yù)測結(jié)果趨于穩(wěn)定后)進(jìn)行比較,結(jié)果如表4所示。

      5 結(jié)語

      通過整合Flume,Kafka,Spark Streaming大數(shù)據(jù)分析組件,搭建了一個(gè)實(shí)時(shí)云日志分析系統(tǒng),可以集中多源日志,進(jìn)行日志檢索和異常預(yù)測,提供一套異常解決方案。日志檢索模塊,基于elasticsearch引擎實(shí)現(xiàn),可以水平擴(kuò)展,提升存儲(chǔ)能力。異常預(yù)測模塊是基于KDB+HSMM,較單獨(dú)HSMM[6]而言,能夠提高一點(diǎn)預(yù)測的準(zhǔn)確度,顯示即將發(fā)生異常的具體內(nèi)容。不過,從實(shí)驗(yàn)結(jié)果中可以看出異常預(yù)測的準(zhǔn)確度還是很低,另外HSMM預(yù)測路線的知識(shí)庫豐富需要靠人工操作接口去補(bǔ)充,靈活性存在明顯的不足,還需要進(jìn)一步研究,提高預(yù)測的準(zhǔn)確度和知識(shí)庫豐富的靈活性。

      參考文獻(xiàn):

      [1] 王志健.基于Openstack平臺(tái)的入侵檢測系統(tǒng)的設(shè)計(jì)與開發(fā)[D].蘇州:蘇州大學(xué),2017.

      [2] 王智遠(yuǎn),任崇廣,陳榕,等.基于日志模板的異常檢測技術(shù)[J].智能計(jì)算機(jī)與應(yīng)用,2018,8(5):17-20,24.

      [3] Shetty S . Auditing and Analysis of Network Traffic in Cloud Environment[C]// IEEE Ninth Word Congress Services. IEEE, 2013:235-258.

      [4] Wang X Y,Zhang J,Wang M B,et al.CDCAS:a novel cloud data center security auditing system[C]//2014 IEEE International Conference on Services Computing. 27 June-2 July 2014, Anchorage, AK, USA. IEEE, 2014:605-612.

      [5] 張之宣.云計(jì)算環(huán)境下實(shí)時(shí)日志分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].杭州:浙江大學(xué),2016.

      [6] 梁文楷.基于Elasticsearch全文檢索系統(tǒng)的實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2019(6):116-119.

      [7] 葉雪梅,毛雪岷,夏錦春,等.文本分類TF-IDF算法的改進(jìn)研究[J].計(jì)算機(jī)工程與應(yīng)用,2019,55(2):104-109,161.

      [8] 俞皓芳,孫力帆,付主木.基于改進(jìn)K-means++聚類的多擴(kuò)展目標(biāo)跟蹤算法[J].計(jì)算機(jī)應(yīng)用,2020,40(1):271-277.

      [9] 姜文,劉立康.基于Selenium的Web軟件自動(dòng)化測試[J].計(jì)算機(jī)技術(shù)與發(fā)展,2018,28(9):47-52,58.

      【通聯(lián)編輯:唐一東】

      猜你喜歡
      知識(shí)庫
      漢語近義詞辨析知識(shí)庫構(gòu)建研究
      基于TRIZ與知識(shí)庫的創(chuàng)新模型構(gòu)建及在注塑機(jī)設(shè)計(jì)中的應(yīng)用
      美國高校機(jī)構(gòu)知識(shí)庫開放獲取政策調(diào)查
      杭錦旗地區(qū)辮狀河定量地質(zhì)知識(shí)庫建立及應(yīng)用
      高速公路信息系統(tǒng)維護(hù)知識(shí)庫的建立和應(yīng)用
      基于全方位服務(wù)機(jī)制建設(shè)機(jī)構(gòu)知識(shí)庫研究
      基于Drupal發(fā)布學(xué)者知識(shí)庫關(guān)聯(lián)數(shù)據(jù)的研究
      衛(wèi)星狀態(tài)智能診斷知識(shí)庫設(shè)計(jì)方法
      基于決策技術(shù)和粗糙集理論的診斷知識(shí)庫構(gòu)建研究
      全球開放存取知識(shí)庫發(fā)展現(xiàn)狀分析與啟示
      廊坊市| 新巴尔虎右旗| 陈巴尔虎旗| 福清市| 邹城市| 邓州市| 南和县| 大姚县| 潞城市| 类乌齐县| 安化县| 滕州市| 兴化市| 龙井市| 兖州市| 福海县| 藁城市| 葫芦岛市| 沁源县| 安岳县| 抚州市| 乐亭县| 南岸区| 马山县| 大石桥市| 湟中县| 永和县| 铅山县| 波密县| 耿马| 牙克石市| 光泽县| 二手房| 探索| 曲水县| 喀喇| 景谷| 多伦县| 平阳县| 台北市| 金昌市|