李東昊
摘要:隨著金融信息化建設(shè)的不斷推進,系統(tǒng)規(guī)模與復(fù)雜性不斷增長,系統(tǒng)故障已成為金融業(yè)發(fā)展不可忽視的問題。日志作為唯一系統(tǒng)運行信息的數(shù)據(jù)源,具有重要利用價值。該文綜述了日志異常檢測的主流方法,并針對存在問題提出對未來發(fā)展方向的建議。
關(guān)鍵詞: 金融信息化;系統(tǒng)故障; 日志; 異常檢測
中圖分類號:TP391? ? ? ?文獻標識碼:A
文章編號:1009-3044(2021)12-0056-02
Abstract:With the continuous advancement of financia linformation construction, the scale and complexity of the system are growing, system failure has become a problem that cannot be ignored in the development of the financial industry. As the only data source of system operation information, log has important utilization value. This paper summarizes the mainstream methods of log anomaly detection, and puts forward some suggestions for future development.
Key words:financial information construction; system failure; log; anomaly detection
互聯(lián)網(wǎng)的出現(xiàn)拉近了人與人間的距離。伴隨著信息技術(shù)的發(fā)展,近年來,分布式系統(tǒng)頻繁出現(xiàn)在各個領(lǐng)域的信息化建設(shè)中,正發(fā)揮著極其重要的作用。由廣泛應(yīng)用的分布式系統(tǒng)故障所造成的損失也日益增加。據(jù)統(tǒng)計Microsoft、Facebook、Twitter等互聯(lián)網(wǎng)公司每年因分布式系統(tǒng)宕機造成的經(jīng)濟損失高達過億元[1],信息系統(tǒng)的穩(wěn)定性與安全性成為人們關(guān)注的焦點。系統(tǒng)日志作為系統(tǒng)運行狀態(tài)的直接體現(xiàn),包含著大量的信息,這使得利用日志信息對系統(tǒng)狀態(tài)進行診斷成為可能。早期系統(tǒng)運維人員通過使用關(guān)鍵字檢索、編寫日志規(guī)則,以人工觀察日志信息的方式進行系統(tǒng)巡檢。隨著對功能需求的提升,系統(tǒng)架構(gòu)日益復(fù)雜,分布式系統(tǒng)(如hadoop,spark)每天產(chǎn)生海量的日志信息,傳統(tǒng)的基于經(jīng)驗規(guī)則判斷的日志分析方法受數(shù)據(jù)量大、數(shù)據(jù)類型復(fù)雜的影響已經(jīng)不適用于系統(tǒng)故障檢測。
1研究現(xiàn)狀
目前針對日志的異常檢測可分為三類:基于規(guī)則的異常檢測方法、基于無監(jiān)督的異常檢測方法、基于有監(jiān)督的異常檢測方法。
基于規(guī)則的異常檢測方法,基于統(tǒng)計學(xué)方法通過統(tǒng)計海量日志中的關(guān)鍵字出現(xiàn)頻率,結(jié)合專家經(jīng)驗設(shè)計正則表達式,挖掘潛在檢測規(guī)則并根據(jù)規(guī)則匹配程度進行日志異常檢測。如文獻[2]通過定義系統(tǒng)正常行為規(guī)則,使用正則表達式識別日志異常信息。文獻[3]基于分析日志事件序列信息創(chuàng)建規(guī)則集,能夠有效降低系統(tǒng)誤報率,但是自動化程度低,人工成本大。
基于無監(jiān)督的異常檢測方法,不需要預(yù)先標記的訓(xùn)練數(shù)據(jù),通過判斷待檢測日志序列與正常日志序列的差異檢測異常。主要依賴于機器學(xué)習(xí)中的聚類質(zhì)量,通過日志相似性聚類分析,將從日志數(shù)據(jù)中檢測的離群點標記為異常信息。如文獻[4],作者通過解析原始日志,統(tǒng)計日志中的事件信息,提取日志的事件頻率特征,使用凝聚層次聚類進行異常信息識別。文獻[5],作者在傳統(tǒng)的基于聚類的異常日志檢測方法logcluster上引入滑動窗口的概念,提出了基于滑動窗口聚類的異常日志檢測方法SW-logcluster,滑動窗口豐富了提取的日志事件信息種類,通過實驗表明引入滑動時間窗口能夠有效提升檢測的召回率,豐富了日志特征的多樣性,提升了日志異常檢測的適用性。文獻[6]作者提出了一個完整日志異常檢測框架,基于狀態(tài)比向量和消息數(shù)向量構(gòu)造日志特征向量,使用主成分分析(PCA)檢測日志異常,并將檢測結(jié)果以決策樹的形式進行可視化分析,在HDFS數(shù)據(jù)集中體現(xiàn)了較好的性能。文獻[7]提出了一種基于日志不變量的異常檢查方法,通過挖掘日志信息中的線性關(guān)系,當日志序列符合不變量定義,為正常日志序列,否則識別為異常日志序列。文獻[8]作者提出了一個完整的基于日志異常檢測的系統(tǒng)框架ADELE,該方法是一種通用領(lǐng)域的日志異常檢測方法。通過離群點檢測計算異常值,最后通過經(jīng)驗檢驗,用異常區(qū)分故障,極大地減少了誤檢率。文獻[9]作者提出了一種基于概率后綴樹的日志異常檢測方法,提取日志源代碼集中的可達圖并關(guān)聯(lián)日志語義信息挖掘日志執(zhí)行軌跡序列,最后通過計算異常度檢測異常信息。
基于有監(jiān)督的異常檢測方法,需要使用帶有標簽的數(shù)據(jù)訓(xùn)練模型,通過預(yù)訓(xùn)練的模型進行日志異常檢測。如文獻[10]通過使用決策樹建模帶有標簽的日志信息識別系統(tǒng)故障,與其他分類方法相比具有高可解釋性,已受到網(wǎng)絡(luò)運營商的廣泛關(guān)注。文獻[11]使用日志事件計數(shù)向量訓(xùn)練logistic回歸模型,通過模型計算日志序列的異常概率。文獻[12]將日志事件計數(shù)向量輸入SVM(支持向量機)訓(xùn)練超平面,判斷檢測日志序列與超平面的位置關(guān)系進而判斷是否為異常日志序列。
隨著人們對人工智能領(lǐng)域的深入研究以及深度學(xué)習(xí)的發(fā)展促使一些學(xué)者將神經(jīng)網(wǎng)絡(luò)與日志檢測關(guān)聯(lián)到一起,逐漸出現(xiàn)了一些基于神經(jīng)網(wǎng)絡(luò)的異常日志檢測方法,在實際應(yīng)用中也取得了較好的效果。文獻[13]依據(jù)自然語言處理的技術(shù),將TF-IDF(詞頻-逆文檔頻率)特征引入日志異常檢測中,首次使用LSTM(長短時記憶網(wǎng)絡(luò))挖掘日志序列的長程相關(guān)性,較傳統(tǒng)基于監(jiān)督的日志異常檢查方法檢測質(zhì)量有了顯著提高。文獻[14]提出一種利用長短時記憶網(wǎng)絡(luò)學(xué)習(xí)正常日志模式的無監(jiān)督日志異常檢測方法Deeplog,將正常系統(tǒng)日志建模成自然語言序列輸入神經(jīng)網(wǎng)絡(luò)訓(xùn)練模型并由此檢測異常日志信息。為解決長序列異常日志檢測效率不足的問題,文獻[15]將時間卷積神經(jīng)網(wǎng)絡(luò)引入到異常日志檢測中,使用自適應(yīng)全局平均池化代替全連接層,有效解決了過擬合問題,同時提升了檢測效率。文獻[16]使用日志事件語義信息,通過Bi-LSTM模型提取日志序列上下文信息,有效提高日志異常檢測的準確率。文獻[17]將日志建模成時間序列進行日志異常檢測,在網(wǎng)絡(luò)安全數(shù)據(jù)挖掘競賽數(shù)據(jù)集中準確率達到了99.6%。
文獻[18]作者結(jié)合日志異常檢測的不同方法,發(fā)布了一個高可重用性的開源工具,用戶可以根據(jù)日志特性選取不同方法從而達到最優(yōu)檢測結(jié)果,為日志異常檢測的蓬勃發(fā)展奠定了基礎(chǔ)。
2存在挑戰(zhàn)
日志異常檢測研究從單機系統(tǒng)發(fā)展到今天的分布式系統(tǒng),受日志采集與解析的限制,檢測質(zhì)量仍然存在很大的提升空間。受限于日志信息傳輸、存儲與計算的壓力,傳統(tǒng)的異常檢測方法已經(jīng)不適用于大型分布式系統(tǒng),因此,提高日志質(zhì)量,豐富日志特征,依然是日志異常檢測領(lǐng)域的重要挑戰(zhàn)。
(1)目前人們使用的仍是海量日志信息的小部分信息或單來源的信息,多源日志數(shù)據(jù)(如應(yīng)用、網(wǎng)絡(luò)日志等)仍未被利用,存在信息壁壘的問題
(2)不同故障類型可能引起的日志記錄相同,如何根據(jù)日志信息定位系統(tǒng)故障位置,為用戶提供直觀的檢測結(jié)果,提升異常的可解釋性是目前需要解決的問題。
(3)系統(tǒng)日志是典型的不平衡數(shù)據(jù)集,因此如何考慮數(shù)據(jù)不平衡造成的過擬合問題,提升基于模型的異常檢測方法的魯棒性是應(yīng)用新檢測方法存在的障礙。
日志特征具有局限性。目前研究使用的日志數(shù)據(jù),經(jīng)過預(yù)處理后,變成了由系統(tǒng)事件序列組成的日志模板,在日志轉(zhuǎn)向模板的過程中,日志中的變量信息通過通配符*代替,這樣使得部分參數(shù)信息丟失,從而忽略了一些由系統(tǒng)參數(shù)異常導(dǎo)致的系統(tǒng)異常無法被檢測。如何利用日志中包含的參數(shù)信息與通用信息,結(jié)合當前新技術(shù)挖掘更符合系統(tǒng)故障的多源特征仍是值得關(guān)注的焦點。
3結(jié)束語
目前針對系統(tǒng)日志異常檢測的研究依然是通過數(shù)據(jù)驅(qū)動的,受訓(xùn)練樣本的影響,日志樣本的多樣性決定了檢測的質(zhì)量。因此隨著系統(tǒng)的更新與升級,收集全面大量的日志數(shù)據(jù)并探索行之有效的解析方案,完善日志異常檢測框架流程仍有許多工作。此外,目前研究均在實驗數(shù)據(jù)集下展開,在現(xiàn)實應(yīng)用場景中應(yīng)用較少。為了提升異常檢測的魯棒性,推動學(xué)術(shù)研究成果早日落地,相應(yīng)檢測技術(shù)的可行性仍需在工業(yè)界進行調(diào)研。
參考文獻:
[1] 陸杰,李豐,李煉.分布式系統(tǒng)中的日志分析及應(yīng)用[J].高技術(shù)通訊,2019,29(4):303-320.
[2] Prewett J E. Analyzing cluster log files using logsurfer[C]//Proceedings of the 4th Annual Conference on Linux Clusters. Citeseer, 2003.
[3] Rouillard J P. Real-time Log File Analysis Using the Simple Event Correlator[C]//Conference on Systems Administration. DBLP, 2004.
[4] Q . Lin, H. Zhang, J. Lou, Y. Zhang and X. Chen. Log Clustering Based Problem Identification for Online Service Systems[C]//IEEE/ACM 38th International Conference on Software Engineering Companion. 2016: 102-111.
[5] 馮士龍,臺憲青,馬治杰.改進的基于日志聚類的異常檢測方法[J].計算機工程與設(shè)計,2020,41(4):1087-1092.
[6] Xu W , Huang L , Fox A , et al. Detecting Large-Scale System Problems by Mining Console Logs[C]//AcmSigops Symposium on Operating Systems Principles. 2010:37-46.
[7] Lou J G, Fu Q, Yang S, et al. Mining Invariants from Console Logs for System Problem Detection[C]//USENIX Annual Technical Conference. 2010: 1-14.
[8] Khatuya S, Ganguly N, Basak J, et al. ADELE: Anomaly Detection from Event Log Empiricism[C]// 2018:2114-2122.
[9] Bao L, Li Q, Lu P, et al. Execution anomaly detection in large-scale systems through console log analysis[J]. Journal of Systems and Software, 2018:172-186.
[10] Chen M, Zheng A X, Lloyd J, et al. Failure diagnosis using decision trees[C]// International Conference on Autonomic Computing. IEEE, 2004.
[11] Peter Bodík, Moisés Goldszmidt, Fox A , et al. Fingerprinting the datacenter: Automated classification of performance crises[C]// European Conference on Computer Systems. ACM,2010: 111-124.
[12] Liang Y, Zhang Y, Xiong H, et al. Failure prediction in ibmbluegene/l event logs[C]//Seventh IEEE International Conference on Data Mining (ICDM 2007). IEEE, 2007: 583-588.
[13] Zhang K, Xu J, Min M R, et al. Automated IT system failure prediction: A deep learning approach[C]// 2016 IEEE International Conference on Big Data. IEEE, 2016: 1291-1300.
[14] Du M, Li F, Zheng G, et al. Deeplog: Anomaly detection and diagnosis from system logs through deep learning[C]//Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security. 2017: 1285-1298.
[15] 楊瑞朋,屈丹,朱少衛(wèi),錢葉魁,唐永旺.基于改進時間卷積網(wǎng)絡(luò)的日志序列異常檢測[J].計算機工程,2020,46(08):50-57.
[16] Zhang X, Li Z, Chen J, et al. Robust log-based anomaly detection on unstable log data[C]// the 27th ACM Joint Meeting. ACM,2019: 807-817.
[17] Vinayakumar R, Soman K P, Poornachandran P. Long short-term memory based operation log anomaly detection[C]// International Conference on Advances in Computing. 2017:236-242.
[18] He S, Zhu J, He P, et al. Experience Report: System Log Analysis for Anomaly Detection[C]// 2016 IEEE 27th International Symposium on Software Reliability Engineering. IEEE,2016: 207-218.
【通聯(lián)編輯:代影】