趙 震,張藝童,龍繼元
(西南科技大學(xué)計算機科學(xué)與技術(shù)學(xué)院 四川 綿陽 621000)
當(dāng)前,國內(nèi)外對于服務(wù)器日志監(jiān)控及可視化分析都有一定研究,服務(wù)器產(chǎn)生以及應(yīng)用程序的日志信息都具有極大的研究價值。服務(wù)器的運行狀態(tài)以及狀態(tài)預(yù)測,都可基于日志分析得來。此時,針對日志文件的自動監(jiān)控系統(tǒng)的設(shè)計和實現(xiàn),就顯得尤為重要。它在發(fā)現(xiàn)問題、提高系統(tǒng)穩(wěn)定性、分析系統(tǒng)性能等方面發(fā)揮著巨大的作用[1]。
本系統(tǒng)主要采用BSC(Browser-Server-Client)架構(gòu)對nginx產(chǎn)生的日志進行采集和監(jiān)控,采集主要采用定時腳本方式進行,將采集后的數(shù)據(jù)進行有效的劃詞并存儲在mysql數(shù)據(jù)庫中,同時,在劃詞方式中,系統(tǒng)支持二次開發(fā)引入個性化的處理。解決了業(yè)務(wù)數(shù)據(jù)的收集難、存儲和分析困難的問題[2]。
日志監(jiān)控系統(tǒng)主要采用BSC(Browser-Server-Client)架構(gòu)進行設(shè)計,實現(xiàn)了日志數(shù)據(jù)的采集、分析、存儲、展示等功能。系統(tǒng)的體系設(shè)計如圖1所示。
圖1 體系設(shè)計圖
數(shù)據(jù)庫設(shè)計主要分為用戶管理、錯誤日志管理、訪問日志管理、應(yīng)用程序日志管理四個部分。對于應(yīng)用程序日志管理模塊,可根據(jù)不同的應(yīng)用程序日志格式進行特定數(shù)據(jù)表設(shè)計,設(shè)計方式同錯誤和訪問日志。訪問日志數(shù)據(jù)表設(shè)計如表1所示,用戶管理數(shù)據(jù)表設(shè)計如表2所示。
表1 訪問日志數(shù)據(jù)表
表2 用戶管理數(shù)據(jù)表
后臺模塊主要分為用戶管理,內(nèi)容管理,定時任務(wù)管理三大模塊。用戶管理含用戶登錄,用戶注冊等功能。內(nèi)容管理含服務(wù)器日志監(jiān)控、應(yīng)用程序日志監(jiān)控。定時任務(wù)兼容linux和windows兩種環(huán)境。windows采用bat方式執(zhí)行腳本,linux采用cron方式執(zhí)行腳本,從而采集服務(wù)器產(chǎn)生的日志數(shù)據(jù)。
測試環(huán)境下,系統(tǒng)采集數(shù)據(jù)為nginx1.2的error.log和access,log數(shù)據(jù),其格式分別如下。
例access.log:(遠程地址--訪問時間 方式 URL 瀏覽器信息)
127.0.0.1 --[06/Mar/2018:19:31:16 +0800] "GET/test.php HTTP/1.1" 200 80530 "-" "Mozilla/5.0(Windows NT WOW64) AppleWebKit/537.36(KHTML,like Gecko) Chrome/64.0.3282.186"
例error.log:(時間 錯誤級別 錯誤代號 錯誤詳細信息 客戶端地址 服務(wù)端地址等)
2018/03/06 19:31:16[error]7728#14144:CreateFile()"D:/phpstorm/projects/favicon.ico" failed (2:The system cannot find the file specified),client:127.0.0.1,server:localhost
分析展示,采用數(shù)據(jù)文本和可視化兩種方式進行。部分展示結(jié)果如圖2。數(shù)據(jù)文本展示系統(tǒng)采用劃詞方式進行關(guān)鍵信息的出采集;可視化展示,系統(tǒng)以劃詞后的關(guān)鍵字為索引,進行分類統(tǒng)計,從而得出不同類型錯誤或訪問信息的比例等,并以多種圖表的方式將其展示出來。
圖2 可視化展示1
本系統(tǒng)主要采用定時讀取、劃詞存儲、關(guān)鍵詞分析等方式,實現(xiàn)對日志信息的有效分析和可視化展示。系統(tǒng)運行效果穩(wěn)定,界面友好,配置方便且易于使用,對于服務(wù)器管理以及相關(guān)應(yīng)用程序的監(jiān)控都具有良好的實際應(yīng)用價值和參考意義。