趙 震,張藝童,龍繼元
(西南科技大學計算機科學與技術學院 四川 綿陽 621000)
當前,國內外對于服務器日志監控及可視化分析都有一定研究,服務器產生以及應用程序的日志信息都具有極大的研究價值。服務器的運行狀態以及狀態預測,都可基于日志分析得來。此時,針對日志文件的自動監控系統的設計和實現,就顯得尤為重要。它在發現問題、提高系統穩定性、分析系統性能等方面發揮著巨大的作用[1]。
本系統主要采用BSC(Browser-Server-Client)架構對nginx產生的日志進行采集和監控,采集主要采用定時腳本方式進行,將采集后的數據進行有效的劃詞并存儲在mysql數據庫中,同時,在劃詞方式中,系統支持二次開發引入個性化的處理。解決了業務數據的收集難、存儲和分析困難的問題[2]。
日志監控系統主要采用BSC(Browser-Server-Client)架構進行設計,實現了日志數據的采集、分析、存儲、展示等功能。系統的體系設計如圖1所示。

圖1 體系設計圖
數據庫設計主要分為用戶管理、錯誤日志管理、訪問日志管理、應用程序日志管理四個部分。對于應用程序日志管理模塊,可根據不同的應用程序日志格式進行特定數據表設計,設計方式同錯誤和訪問日志。訪問日志數據表設計如表1所示,用戶管理數據表設計如表2所示。

表1 訪問日志數據表

表2 用戶管理數據表
后臺模塊主要分為用戶管理,內容管理,定時任務管理三大模塊。用戶管理含用戶登錄,用戶注冊等功能。內容管理含服務器日志監控、應用程序日志監控。定時任務兼容linux和windows兩種環境。windows采用bat方式執行腳本,linux采用cron方式執行腳本,從而采集服務器產生的日志數據。
測試環境下,系統采集數據為nginx1.2的error.log和access,log數據,其格式分別如下。
例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:(時間 錯誤級別 錯誤代號 錯誤詳細信息 客戶端地址 服務端地址等)
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
分析展示,采用數據文本和可視化兩種方式進行。部分展示結果如圖2。數據文本展示系統采用劃詞方式進行關鍵信息的出采集;可視化展示,系統以劃詞后的關鍵字為索引,進行分類統計,從而得出不同類型錯誤或訪問信息的比例等,并以多種圖表的方式將其展示出來。

圖2 可視化展示1
本系統主要采用定時讀取、劃詞存儲、關鍵詞分析等方式,實現對日志信息的有效分析和可視化展示。系統運行效果穩定,界面友好,配置方便且易于使用,對于服務器管理以及相關應用程序的監控都具有良好的實際應用價值和參考意義。