曹麗娜,朱方娥,郭建方
(石家莊鐵道大學四方學院,河北 石家莊 051132)
目前,局域底層軟件在通信技術、航空航天等技術領域得到了廣泛應用。但與此同時,局域底層軟件的工作運行負載壓力也越來越大,使得局域底層軟件容易出現運行故障等問題。程度較輕的故障可能會造成通信或網絡中斷,為企業工作造成一定影響,嚴重的工作問題可能會給整個公司帶來比較嚴重的經濟損失[1-2]。因此,對局域底層軟件進行故障檢測與維修必不可少。
近年來關于局域底層軟件故障檢測的研究也受到了廣泛關注。目前應用較為廣泛的故障定位方法主要有基于改良程序譜的軟件故障定位方法[3]和基于聚類分析的軟件多故障定位方法[4]。但在實際應用中發現,傳統的故障檢測定位方法雖然能夠實現定位工作,但是在時間效率和準確程度上都略有不足。
“日志數據”是指計算機操作系統或者有些應用軟件在運行時,為了在今后進行系統維護起來比較方便,而將系統或者應用軟件在運行過程中產生的各種數據(比如:用戶名、用戶執行的程序名、日期、時間等)寫入到一個日志文件中,以便今后系統出現故障時可以有據可查。通過將日志數據結合到局域底層軟件故障信息的檢測記錄程序中,有利于提高故障檢測定位的準確性。綜上所述,本文基于日志數據研究了一種新的局域底層軟件運行故障定位方法,并通過實驗驗證了新方法的有效性。
為了實現基于日志數據的局域底層軟件運行故障定位,首先需要對設備的日志數據進行信息數據采集。通過建立一個完整全面的日志數據庫以便對系統程序進行全面清晰的數據管理。
局域底層軟件運行采集數據庫結構如圖1所示。

圖1 局域底層軟件運行采集數據庫結構
觀察圖1可知,本文建立的數據庫可以分別為系統日志、防火墻日志、網絡訪問日志設置一個線程函數運算程序,通過設定自定義的執行規則,實現對各部分程序日志數據的定期數據提取采集[5-6]。同時,本文還根據局域底層軟件使用對象的不同類型,提供了不同的日志數據提取模式,普通的數據提取一般具有讀取與保存功能,對于工作中身份比較重要的用戶還擁有數據編輯、傳遞及抽取等功能權限[7]。
在日志數據提取過后,需要經過數據處理程序對日志數據進行具體的分析審核。由于數據數量的龐大、內容的復雜,日志數據審核程序必須具備高效率、高精準等屬性,滿足數據實時化的處理要求,保證數據的安全性合法性。通過將數據審核系統與網絡服務平臺進行合作,使審核系統具有廣泛的、跨平臺的數據檢索環境,提高數據審核的檢測效率,龐大而全面的搜索范圍也進一步保障了數據信息的安全性[8-9]。
基于日志數據的局域底層軟件運行數據采集流程如圖2所示。

圖2 基于日志數據的局域底層軟件運行數據采集流程
觀察圖2可知,經過審核程序的日志數據會根據分析結果被有條理的分類存儲到日志數據管理數據庫,按照用戶或企業定義的分類規則逐一分類排序[10],同時已錄入的日志數據還會根據格式規則進行格式的統一化,并通過備份程序對整理歸納好的數據進行備份保存,以應對突發狀況。至此,關于軟件程序的日志數據提取收集完畢,為局域底層軟件運行故障的檢測與定位提供了有利數據信息支持。
基于以上日志數據的采集情況,構建日志數據的統計量。通過對日志數據進行分析推測,得到局域底層軟件運行過程中的各種變量之間存在的關系,提取出含有變量信息較多的變量,并針對這些變量的信息進行處理,采用變量成分分析法對每一組變量進行解析統計,構建日志數據信息統計量[11]。
從多個數據庫中提取數據統計量,提取過程示意圖如圖3所示。

圖3 數據統計量提取示意圖
構建統計量時,首先要對目標運算數據變量進行計算處理,通過對區域底層軟件運行過程中的日志數據變量進行分析整理,依據相應的分類規則歸類到對應的數據庫,并從中篩選出符合運算要求的數據變量,導入到計算程序中對其進行變量分析運算。變量分析法的運算過程主要采用的公式如下

(1)
式(1)中,I表示日志數據中變量之間的關聯度,x表示質量變量,y代表運算過程中的運行變量,p代表著局域底層軟件運行中的數據變量與數據邊緣之間的概率函數。通過該公式運算能夠得到數據變量的關聯函數,然后對關聯變量進行排列運算,過程如式(2)所示

(2)
式(2)中,p(x,Qi)與p(Q,xi)分別表示變量x與邊緣函數變量Q在對應常數同一常數i的情況下的相應概率,由此對關聯函數I進行升序排列,獲得相應的日志數據排列情況。之后可以通過設定不同的閾值對數據變量進行二次篩選,排除無法增權的函數變量,然后根據變量的排列情況構建日志數據統計量映射矩陣,矩陣運算公式如下:

(3)
式(3)中,t表示軟件運行過程中的投影變量,p仍表示各變量的概率密度函數,I表示各部分經過增權的函數變量與函數投影變量之間存在的關聯。
關聯函數是按照從小到大的順序排列的因此會形成變量數據由小到大的變量矩陣,矩陣中相對應的函數與投影函數形成一對數據統計量。由此,構建出基于日志數據的局域底層軟件運行數據統計量,為基于日志數據統計量的軟件運行故障定位系統程序的故障檢測提供數據信息基礎。
基于以上局域底層軟件日志數據的統計量的構建,進行基于日志數據統計量的軟件運行故障定位檢測。局域底層軟件結構如圖4所示。

圖4 局域底層軟件結構
首先確定日志數據統計量與故障定位系統程序的適配性,根據不同的檢測目標或設備型號,調整故障定位系統各方面的檢測參數。故障定位檢測程序采用數據統計量模型分析方法,對局域軟件運行低階障礙進行分析檢測,獲取障礙的信息特征數據,并通過相應的數據轉換運算將低階故障特征進行投影構建出相對應的高階障礙特征,根據高階障礙特征數據統計量選取適當的故障檢測數據信息值域,再通過數據元素分析法對值域范圍內的數據統計量進行分析,分層次的對故障信息進行檢測。
同時,根據局域底層軟件的運行周期,對運行過程中各方面的日志數據按周期進行劃分,并通過數據運算程序對周期內的日志數據進行方差矩陣運算。結合上述運算獲取的故障高階數據統計量,形成關于該周期內局域底層軟件運行數據變量的線性相關矩陣,通過對線性矩陣的分析處理,尋找數據變量之間的相關性。故障定位過程如圖5所示。

圖5 基于日志數據統計量的軟件運行故障定位過程
由圖5可知,根據障礙產生的原因與類型,推測線性矩陣中相關聯變量之間存在故障的可能性,并通過概率密度函數計算得到準確的障礙產生的可能性。由于線性矩陣與軟件運行結構存在相對應的關系,所以可以針對存在明顯異變的數據變量或故障問題,能夠通過參數轉換尋找確定障礙存在的軟件位置。
由于局域底層軟件故障檢測識別是基于互聯網的日志數據,因而具有一定的開放性和通用性,能夠對底局域層軟件以及相關網絡領域進行日志數據訓練集提取。并通過日志數據識別匹配程序,對相關的日志數據進行整合,通過對具有一定相似性的日志數據進行匹配對比,能夠檢測出其中存在缺陷的日志數據[12]。日志數據統計量經過模擬程序能夠構建出相應的日志數據模型,首先對數據來源和信息進行檢測,篩選過濾掉相似度較低的日志數據,將符合要求的日數據進行相關性處理,之后將數據按類型分別進行模型構建,對局域底層軟件的運行過程進行模擬構建,這樣能夠更直觀、更清晰地檢測出其運行過程中的故障所在。
上述的基于日志數據的局域底層軟件運行過程故障定位檢測方法,能夠根據用戶系統類型進行自定義的檢測標準設定,實現有針對性的、個性化的軟件故障定位檢測。同時,對于軟件故障的檢測過程與結果,系統程序會進行相應的數據記錄并保存在系統數據庫,方便用戶對故障的產生、檢測與解決進行信息回顧查詢和情況反饋。
為驗證上述設計的基于日志數據的局域底層軟件運行故障定位方法的實際應用性能,在MATLAB仿真平臺中設計如下對比實驗。以本研究方法為實驗組,以傳統的基于改良程序譜的軟件故障定位方法和基于聚類分析的軟件多故障定位方法為實驗組,從故障定位時間和故障定位準確率兩個角度驗證三種方法的實用性。
局域底層軟件網絡模型如圖6所示。

圖6 局域底層軟件網絡模型示意圖
在局域軟件網絡中輸出信號,分析信號的幅值與相位。在實驗開始之前,需要分析節點的測量結果,通過采樣操作實現傅里葉變換,并將得到的變換結果作為計算量輸入。
實驗參數設置情況如表1所示。

表1 實驗參數設置情況
根據上述實驗參數,將本文方法與兩種傳統方法進行性能對比,得到的實驗結果如下。
1)故障定位時間實驗對比結果
首先以故障定位時間為指標展開性能測試,結果如圖7所示。

圖7 故障定位時間實驗對比結果
根據圖7所示結果可知,本文設計的基于日志數據的局域底層軟件運行故障定位方法定位過程花費的時間遠遠小于兩種傳統定位方法。產生這一結果的原因在于本文方法能夠對日志數據進行有效采集,在分析多種數據量,如運行能量、工作功率、工作電壓后,將這些特征量提取融合到一起,利用數據分析和數據挖掘實現故障定位,從而有效縮短了定位時間。
2)故障定位準確率實驗對比結果
在此基礎上,以故障定位準確率為指標展開性能測試,結果如圖8所示。

圖8 故障定位準確率實驗對比結果
根據圖8所示結果可知,在相同的定位時間內,相比于兩種傳統的定位方法,本文方法故障定位準確率更高。產生這一結果的原因在于本文方法在進行故障定位時,引入了參數修正過程,通過分析權值調整增長結果,分析不同參數所占權值,從而更精準地完成故障定位。
綜上所述,本文設計的基于日志數據的局域底層軟件運行故障定位方法在定位耗時和定位準確率上都有著傳統定位方法所不具備的優勢。由于日志數據具有很強的記錄能力,所以通過采集日志數據可以獲得相對完備的局域底層軟件的相關信息。本文將采集的日志數據存入到數據庫中,在數據庫中進行提煉操作后,選取有效的特征數據,形成日志數據統計量,再根據篩選結果得到相對準確的故障定位結果。傳統方法雖然都能夠實現故障定位,但是由于采集數據量過程耗費時間過長,所以得到的定位結果不具備實時性。由于局域底層軟件對于故障定位提出了越來越高的要求,因此,本文設計的故障定位方法具有很大的發展應用空間。
本文針對傳統的軟件運行過程故障檢測方法存在的弊端,結合了互聯網日志數據技術,提出了一種基于日志數據的底層軟件運行故障定位方法。在分析了日志數據信息采集優勢的基礎上,根據對日志數據的統計量運算和數據變量矩陣分析與模型構建,對軟件運行故障定位檢測程序進行了完善。經仿真實驗證明了基于日志數據統計量的軟件運行故障定位具有良好的開發性和適用性,在故障檢測定位的效率上也有所提高,這一方法的研究能夠為軟件運行故障領域的相關研究提供一定的價值參考。