曹麗娜,朱方娥,郭建方
(石家莊鐵道大學(xué)四方學(xué)院,河北 石家莊 051132)
目前,局域底層軟件在通信技術(shù)、航空航天等技術(shù)領(lǐng)域得到了廣泛應(yīng)用。但與此同時,局域底層軟件的工作運行負(fù)載壓力也越來越大,使得局域底層軟件容易出現(xiàn)運行故障等問題。程度較輕的故障可能會造成通信或網(wǎng)絡(luò)中斷,為企業(yè)工作造成一定影響,嚴(yán)重的工作問題可能會給整個公司帶來比較嚴(yán)重的經(jīng)濟(jì)損失[1-2]。因此,對局域底層軟件進(jìn)行故障檢測與維修必不可少。
近年來關(guān)于局域底層軟件故障檢測的研究也受到了廣泛關(guān)注。目前應(yīng)用較為廣泛的故障定位方法主要有基于改良程序譜的軟件故障定位方法[3]和基于聚類分析的軟件多故障定位方法[4]。但在實際應(yīng)用中發(fā)現(xiàn),傳統(tǒng)的故障檢測定位方法雖然能夠?qū)崿F(xiàn)定位工作,但是在時間效率和準(zhǔn)確程度上都略有不足。
“日志數(shù)據(jù)”是指計算機操作系統(tǒng)或者有些應(yīng)用軟件在運行時,為了在今后進(jìn)行系統(tǒng)維護(hù)起來比較方便,而將系統(tǒng)或者應(yīng)用軟件在運行過程中產(chǎn)生的各種數(shù)據(jù)(比如:用戶名、用戶執(zhí)行的程序名、日期、時間等)寫入到一個日志文件中,以便今后系統(tǒng)出現(xiàn)故障時可以有據(jù)可查。通過將日志數(shù)據(jù)結(jié)合到局域底層軟件故障信息的檢測記錄程序中,有利于提高故障檢測定位的準(zhǔn)確性。綜上所述,本文基于日志數(shù)據(jù)研究了一種新的局域底層軟件運行故障定位方法,并通過實驗驗證了新方法的有效性。
為了實現(xiàn)基于日志數(shù)據(jù)的局域底層軟件運行故障定位,首先需要對設(shè)備的日志數(shù)據(jù)進(jìn)行信息數(shù)據(jù)采集。通過建立一個完整全面的日志數(shù)據(jù)庫以便對系統(tǒng)程序進(jìn)行全面清晰的數(shù)據(jù)管理。
局域底層軟件運行采集數(shù)據(jù)庫結(jié)構(gòu)如圖1所示。
圖1 局域底層軟件運行采集數(shù)據(jù)庫結(jié)構(gòu)
觀察圖1可知,本文建立的數(shù)據(jù)庫可以分別為系統(tǒng)日志、防火墻日志、網(wǎng)絡(luò)訪問日志設(shè)置一個線程函數(shù)運算程序,通過設(shè)定自定義的執(zhí)行規(guī)則,實現(xiàn)對各部分程序日志數(shù)據(jù)的定期數(shù)據(jù)提取采集[5-6]。同時,本文還根據(jù)局域底層軟件使用對象的不同類型,提供了不同的日志數(shù)據(jù)提取模式,普通的數(shù)據(jù)提取一般具有讀取與保存功能,對于工作中身份比較重要的用戶還擁有數(shù)據(jù)編輯、傳遞及抽取等功能權(quán)限[7]。
在日志數(shù)據(jù)提取過后,需要經(jīng)過數(shù)據(jù)處理程序?qū)θ罩緮?shù)據(jù)進(jìn)行具體的分析審核。由于數(shù)據(jù)數(shù)量的龐大、內(nèi)容的復(fù)雜,日志數(shù)據(jù)審核程序必須具備高效率、高精準(zhǔn)等屬性,滿足數(shù)據(jù)實時化的處理要求,保證數(shù)據(jù)的安全性合法性。通過將數(shù)據(jù)審核系統(tǒng)與網(wǎng)絡(luò)服務(wù)平臺進(jìn)行合作,使審核系統(tǒng)具有廣泛的、跨平臺的數(shù)據(jù)檢索環(huán)境,提高數(shù)據(jù)審核的檢測效率,龐大而全面的搜索范圍也進(jìn)一步保障了數(shù)據(jù)信息的安全性[8-9]。
基于日志數(shù)據(jù)的局域底層軟件運行數(shù)據(jù)采集流程如圖2所示。
圖2 基于日志數(shù)據(jù)的局域底層軟件運行數(shù)據(jù)采集流程
觀察圖2可知,經(jīng)過審核程序的日志數(shù)據(jù)會根據(jù)分析結(jié)果被有條理的分類存儲到日志數(shù)據(jù)管理數(shù)據(jù)庫,按照用戶或企業(yè)定義的分類規(guī)則逐一分類排序[10],同時已錄入的日志數(shù)據(jù)還會根據(jù)格式規(guī)則進(jìn)行格式的統(tǒng)一化,并通過備份程序?qū)φ須w納好的數(shù)據(jù)進(jìn)行備份保存,以應(yīng)對突發(fā)狀況。至此,關(guān)于軟件程序的日志數(shù)據(jù)提取收集完畢,為局域底層軟件運行故障的檢測與定位提供了有利數(shù)據(jù)信息支持。
基于以上日志數(shù)據(jù)的采集情況,構(gòu)建日志數(shù)據(jù)的統(tǒng)計量。通過對日志數(shù)據(jù)進(jìn)行分析推測,得到局域底層軟件運行過程中的各種變量之間存在的關(guān)系,提取出含有變量信息較多的變量,并針對這些變量的信息進(jìn)行處理,采用變量成分分析法對每一組變量進(jìn)行解析統(tǒng)計,構(gòu)建日志數(shù)據(jù)信息統(tǒng)計量[11]。
從多個數(shù)據(jù)庫中提取數(shù)據(jù)統(tǒng)計量,提取過程示意圖如圖3所示。
圖3 數(shù)據(jù)統(tǒng)計量提取示意圖
構(gòu)建統(tǒng)計量時,首先要對目標(biāo)運算數(shù)據(jù)變量進(jìn)行計算處理,通過對區(qū)域底層軟件運行過程中的日志數(shù)據(jù)變量進(jìn)行分析整理,依據(jù)相應(yīng)的分類規(guī)則歸類到對應(yīng)的數(shù)據(jù)庫,并從中篩選出符合運算要求的數(shù)據(jù)變量,導(dǎo)入到計算程序中對其進(jìn)行變量分析運算。變量分析法的運算過程主要采用的公式如下
(1)
式(1)中,I表示日志數(shù)據(jù)中變量之間的關(guān)聯(lián)度,x表示質(zhì)量變量,y代表運算過程中的運行變量,p代表著局域底層軟件運行中的數(shù)據(jù)變量與數(shù)據(jù)邊緣之間的概率函數(shù)。通過該公式運算能夠得到數(shù)據(jù)變量的關(guān)聯(lián)函數(shù),然后對關(guān)聯(lián)變量進(jìn)行排列運算,過程如式(2)所示
(2)
式(2)中,p(x,Qi)與p(Q,xi)分別表示變量x與邊緣函數(shù)變量Q在對應(yīng)常數(shù)同一常數(shù)i的情況下的相應(yīng)概率,由此對關(guān)聯(lián)函數(shù)I進(jìn)行升序排列,獲得相應(yīng)的日志數(shù)據(jù)排列情況。之后可以通過設(shè)定不同的閾值對數(shù)據(jù)變量進(jìn)行二次篩選,排除無法增權(quán)的函數(shù)變量,然后根據(jù)變量的排列情況構(gòu)建日志數(shù)據(jù)統(tǒng)計量映射矩陣,矩陣運算公式如下:
(3)
式(3)中,t表示軟件運行過程中的投影變量,p仍表示各變量的概率密度函數(shù),I表示各部分經(jīng)過增權(quán)的函數(shù)變量與函數(shù)投影變量之間存在的關(guān)聯(lián)。
關(guān)聯(lián)函數(shù)是按照從小到大的順序排列的因此會形成變量數(shù)據(jù)由小到大的變量矩陣,矩陣中相對應(yīng)的函數(shù)與投影函數(shù)形成一對數(shù)據(jù)統(tǒng)計量。由此,構(gòu)建出基于日志數(shù)據(jù)的局域底層軟件運行數(shù)據(jù)統(tǒng)計量,為基于日志數(shù)據(jù)統(tǒng)計量的軟件運行故障定位系統(tǒng)程序的故障檢測提供數(shù)據(jù)信息基礎(chǔ)。
基于以上局域底層軟件日志數(shù)據(jù)的統(tǒng)計量的構(gòu)建,進(jìn)行基于日志數(shù)據(jù)統(tǒng)計量的軟件運行故障定位檢測。局域底層軟件結(jié)構(gòu)如圖4所示。
圖4 局域底層軟件結(jié)構(gòu)
首先確定日志數(shù)據(jù)統(tǒng)計量與故障定位系統(tǒng)程序的適配性,根據(jù)不同的檢測目標(biāo)或設(shè)備型號,調(diào)整故障定位系統(tǒng)各方面的檢測參數(shù)。故障定位檢測程序采用數(shù)據(jù)統(tǒng)計量模型分析方法,對局域軟件運行低階障礙進(jìn)行分析檢測,獲取障礙的信息特征數(shù)據(jù),并通過相應(yīng)的數(shù)據(jù)轉(zhuǎn)換運算將低階故障特征進(jìn)行投影構(gòu)建出相對應(yīng)的高階障礙特征,根據(jù)高階障礙特征數(shù)據(jù)統(tǒng)計量選取適當(dāng)?shù)墓收蠙z測數(shù)據(jù)信息值域,再通過數(shù)據(jù)元素分析法對值域范圍內(nèi)的數(shù)據(jù)統(tǒng)計量進(jìn)行分析,分層次的對故障信息進(jìn)行檢測。
同時,根據(jù)局域底層軟件的運行周期,對運行過程中各方面的日志數(shù)據(jù)按周期進(jìn)行劃分,并通過數(shù)據(jù)運算程序?qū)χ芷趦?nèi)的日志數(shù)據(jù)進(jìn)行方差矩陣運算。結(jié)合上述運算獲取的故障高階數(shù)據(jù)統(tǒng)計量,形成關(guān)于該周期內(nèi)局域底層軟件運行數(shù)據(jù)變量的線性相關(guān)矩陣,通過對線性矩陣的分析處理,尋找數(shù)據(jù)變量之間的相關(guān)性。故障定位過程如圖5所示。
圖5 基于日志數(shù)據(jù)統(tǒng)計量的軟件運行故障定位過程
由圖5可知,根據(jù)障礙產(chǎn)生的原因與類型,推測線性矩陣中相關(guān)聯(lián)變量之間存在故障的可能性,并通過概率密度函數(shù)計算得到準(zhǔn)確的障礙產(chǎn)生的可能性。由于線性矩陣與軟件運行結(jié)構(gòu)存在相對應(yīng)的關(guān)系,所以可以針對存在明顯異變的數(shù)據(jù)變量或故障問題,能夠通過參數(shù)轉(zhuǎn)換尋找確定障礙存在的軟件位置。
由于局域底層軟件故障檢測識別是基于互聯(lián)網(wǎng)的日志數(shù)據(jù),因而具有一定的開放性和通用性,能夠?qū)Φ拙钟驅(qū)榆浖约跋嚓P(guān)網(wǎng)絡(luò)領(lǐng)域進(jìn)行日志數(shù)據(jù)訓(xùn)練集提取。并通過日志數(shù)據(jù)識別匹配程序,對相關(guān)的日志數(shù)據(jù)進(jìn)行整合,通過對具有一定相似性的日志數(shù)據(jù)進(jìn)行匹配對比,能夠檢測出其中存在缺陷的日志數(shù)據(jù)[12]。日志數(shù)據(jù)統(tǒng)計量經(jīng)過模擬程序能夠構(gòu)建出相應(yīng)的日志數(shù)據(jù)模型,首先對數(shù)據(jù)來源和信息進(jìn)行檢測,篩選過濾掉相似度較低的日志數(shù)據(jù),將符合要求的日數(shù)據(jù)進(jìn)行相關(guān)性處理,之后將數(shù)據(jù)按類型分別進(jìn)行模型構(gòu)建,對局域底層軟件的運行過程進(jìn)行模擬構(gòu)建,這樣能夠更直觀、更清晰地檢測出其運行過程中的故障所在。
上述的基于日志數(shù)據(jù)的局域底層軟件運行過程故障定位檢測方法,能夠根據(jù)用戶系統(tǒng)類型進(jìn)行自定義的檢測標(biāo)準(zhǔn)設(shè)定,實現(xiàn)有針對性的、個性化的軟件故障定位檢測。同時,對于軟件故障的檢測過程與結(jié)果,系統(tǒng)程序會進(jìn)行相應(yīng)的數(shù)據(jù)記錄并保存在系統(tǒng)數(shù)據(jù)庫,方便用戶對故障的產(chǎn)生、檢測與解決進(jìn)行信息回顧查詢和情況反饋。
為驗證上述設(shè)計的基于日志數(shù)據(jù)的局域底層軟件運行故障定位方法的實際應(yīng)用性能,在MATLAB仿真平臺中設(shè)計如下對比實驗。以本研究方法為實驗組,以傳統(tǒng)的基于改良程序譜的軟件故障定位方法和基于聚類分析的軟件多故障定位方法為實驗組,從故障定位時間和故障定位準(zhǔn)確率兩個角度驗證三種方法的實用性。
局域底層軟件網(wǎng)絡(luò)模型如圖6所示。
圖6 局域底層軟件網(wǎng)絡(luò)模型示意圖
在局域軟件網(wǎng)絡(luò)中輸出信號,分析信號的幅值與相位。在實驗開始之前,需要分析節(jié)點的測量結(jié)果,通過采樣操作實現(xiàn)傅里葉變換,并將得到的變換結(jié)果作為計算量輸入。
實驗參數(shù)設(shè)置情況如表1所示。
表1 實驗參數(shù)設(shè)置情況
根據(jù)上述實驗參數(shù),將本文方法與兩種傳統(tǒng)方法進(jìn)行性能對比,得到的實驗結(jié)果如下。
1)故障定位時間實驗對比結(jié)果
首先以故障定位時間為指標(biāo)展開性能測試,結(jié)果如圖7所示。
圖7 故障定位時間實驗對比結(jié)果
根據(jù)圖7所示結(jié)果可知,本文設(shè)計的基于日志數(shù)據(jù)的局域底層軟件運行故障定位方法定位過程花費的時間遠(yuǎn)遠(yuǎn)小于兩種傳統(tǒng)定位方法。產(chǎn)生這一結(jié)果的原因在于本文方法能夠?qū)θ罩緮?shù)據(jù)進(jìn)行有效采集,在分析多種數(shù)據(jù)量,如運行能量、工作功率、工作電壓后,將這些特征量提取融合到一起,利用數(shù)據(jù)分析和數(shù)據(jù)挖掘?qū)崿F(xiàn)故障定位,從而有效縮短了定位時間。
2)故障定位準(zhǔn)確率實驗對比結(jié)果
在此基礎(chǔ)上,以故障定位準(zhǔn)確率為指標(biāo)展開性能測試,結(jié)果如圖8所示。
圖8 故障定位準(zhǔn)確率實驗對比結(jié)果
根據(jù)圖8所示結(jié)果可知,在相同的定位時間內(nèi),相比于兩種傳統(tǒng)的定位方法,本文方法故障定位準(zhǔn)確率更高。產(chǎn)生這一結(jié)果的原因在于本文方法在進(jìn)行故障定位時,引入了參數(shù)修正過程,通過分析權(quán)值調(diào)整增長結(jié)果,分析不同參數(shù)所占權(quán)值,從而更精準(zhǔn)地完成故障定位。
綜上所述,本文設(shè)計的基于日志數(shù)據(jù)的局域底層軟件運行故障定位方法在定位耗時和定位準(zhǔn)確率上都有著傳統(tǒng)定位方法所不具備的優(yōu)勢。由于日志數(shù)據(jù)具有很強的記錄能力,所以通過采集日志數(shù)據(jù)可以獲得相對完備的局域底層軟件的相關(guān)信息。本文將采集的日志數(shù)據(jù)存入到數(shù)據(jù)庫中,在數(shù)據(jù)庫中進(jìn)行提煉操作后,選取有效的特征數(shù)據(jù),形成日志數(shù)據(jù)統(tǒng)計量,再根據(jù)篩選結(jié)果得到相對準(zhǔn)確的故障定位結(jié)果。傳統(tǒng)方法雖然都能夠?qū)崿F(xiàn)故障定位,但是由于采集數(shù)據(jù)量過程耗費時間過長,所以得到的定位結(jié)果不具備實時性。由于局域底層軟件對于故障定位提出了越來越高的要求,因此,本文設(shè)計的故障定位方法具有很大的發(fā)展應(yīng)用空間。
本文針對傳統(tǒng)的軟件運行過程故障檢測方法存在的弊端,結(jié)合了互聯(lián)網(wǎng)日志數(shù)據(jù)技術(shù),提出了一種基于日志數(shù)據(jù)的底層軟件運行故障定位方法。在分析了日志數(shù)據(jù)信息采集優(yōu)勢的基礎(chǔ)上,根據(jù)對日志數(shù)據(jù)的統(tǒng)計量運算和數(shù)據(jù)變量矩陣分析與模型構(gòu)建,對軟件運行故障定位檢測程序進(jìn)行了完善。經(jīng)仿真實驗證明了基于日志數(shù)據(jù)統(tǒng)計量的軟件運行故障定位具有良好的開發(fā)性和適用性,在故障檢測定位的效率上也有所提高,這一方法的研究能夠為軟件運行故障領(lǐng)域的相關(guān)研究提供一定的價值參考。