魏江濤,馮建峰,姜美雷,鮑存軍
(中國(guó)衛(wèi)星海上測(cè)控部,江蘇 江陰 214431)
計(jì)算機(jī)在運(yùn)行過程中,可能會(huì)產(chǎn)生硬件故障、操作系統(tǒng)故障、數(shù)據(jù)庫故障、中間件故障和應(yīng)用軟件故障。大部分故障信息都會(huì)及時(shí)記錄到系統(tǒng)日志文件和應(yīng)用軟件日志文件中。系統(tǒng)管理員、數(shù)據(jù)庫管理員等維護(hù)人員需要經(jīng)常查看這些日志文件,綜合分析,找出故障原因,采取相應(yīng)措施,保證系統(tǒng)正常運(yùn)行。
從日志的產(chǎn)生來源上可以將日志分為操作系統(tǒng)日志、數(shù)據(jù)庫系統(tǒng)日志、網(wǎng)絡(luò)應(yīng)用服務(wù)日志、應(yīng)用軟件日志等。操作系統(tǒng)日志又稱為主機(jī)日志,由操作系統(tǒng)自動(dòng)生成,與操作系統(tǒng)行為密切相關(guān)。它記錄了系統(tǒng)發(fā)生的各種事件,此類日志文件一般是純文本的文件,通常存放在“var/log”目錄下。應(yīng)用軟件日志由其運(yùn)行在服務(wù)器或終端微機(jī)的應(yīng)用數(shù)據(jù)處理軟件產(chǎn)生,記錄軟件運(yùn)行的狀態(tài)信息和異常信息,系統(tǒng)運(yùn)維人員可以通過這些日志解決應(yīng)用軟件某些方面的錯(cuò)誤,查看應(yīng)用軟件進(jìn)程的歷史運(yùn)行信息,排查軟件運(yùn)行過程中出現(xiàn)的問題。因此,對(duì)日志信息的檢查和分析是保障系統(tǒng)正常運(yùn)行的重要一環(huán)。
awk是Linux系統(tǒng)中一款功能強(qiáng)大的文本分析工具,相對(duì)于grep查找和sed文本編輯,awk在數(shù)據(jù)分析、生成報(bào)告等方面尤為強(qiáng)大,在Linux系統(tǒng)日志處理工作中,發(fā)揮重要的作用。通常,awk以文件的一行為處理單位,每接收文件的一行,然后在這些行上執(zhí)行相應(yīng)的命令來進(jìn)行文本處理。簡(jiǎn)單來說awk就是把文件逐行讀入,以空格為默認(rèn)分隔符將每行切片,切開的部分再進(jìn)行分析處理。awk擁有自己的程序設(shè)計(jì)語言,它允許創(chuàng)建簡(jiǎn)短的程序,通過這些程序可以讀取輸入文件、數(shù)據(jù)排序、處理數(shù)據(jù)、執(zhí)行計(jì)算以及生成報(bào)表等,對(duì)于處理文本格式的日志文件,awk更加輕便高效。
另外,在Linux Shell中重定向和管道是Shell的一種高級(jí)特性,這種特性允許用戶人為改變程序獲取輸入和輸出位置。重定向分為輸出重定向和輸入重定向。Shell程序在默認(rèn)的情況下將輸出結(jié)果輸出到標(biāo)準(zhǔn)輸出(stdout),通常來說,標(biāo)準(zhǔn)的輸出即為顯示器,而通過輸出重定向后可以把Shell程序的輸出轉(zhuǎn)移到其他地方。例如如下的命令則將awk的輸出結(jié)果重定向到home文件夾的awk_out文件中。
awk ‘{ print 1}’ file> /home/awk_out
管道將重定向還可以通過“|”將一條命令的輸出連接另一條命令的輸入。例如:
awk ‘{ print 0}’ file |grep ‘WARN’
awk命令首先列出file文件的每一行,管道“|”接收到這些輸出后,并把它們發(fā)送到grep命令作為其輸入,最后grep在這行輸入中查找包含字符串“WARN”的行,將其在標(biāo)準(zhǔn)輸出中顯示。通過合理的使用管道和重定向可以很好地提高文本分析效率。
船載中心計(jì)算機(jī)系統(tǒng)作為測(cè)量船數(shù)據(jù)處理和傳輸?shù)纳窠?jīng)中樞發(fā)揮非常重要的作用。系統(tǒng)由多臺(tái)服務(wù)器和多臺(tái)操控終端組成,操作系統(tǒng)均部署國(guó)產(chǎn)的麒麟操作系統(tǒng)。
系統(tǒng)組成結(jié)構(gòu)如圖1所示,服務(wù)器部署在后臺(tái)遠(yuǎn)端,主要有數(shù)據(jù)處理服務(wù)器(SJCL)、匯集分發(fā)服務(wù)器(HJFF)、軌道計(jì)算服務(wù)器(GDJS)、數(shù)據(jù)庫服務(wù)器(SJK)、仿真服務(wù)器(FZ)、數(shù)據(jù)顯示服務(wù)器(ZHXS)、電文服務(wù)器(DW)等,這些重要的服務(wù)器同時(shí)進(jìn)行工作,相互熱備份,總共約十幾臺(tái)服務(wù)器;操控終端微機(jī)部署在前端用于軟件操控和數(shù)據(jù)監(jiān)視顯示,總共有近四十臺(tái)。船載中心計(jì)算機(jī)系統(tǒng)的服務(wù)器和操控終端微機(jī)均安裝麒麟操作系統(tǒng),每臺(tái)終端微機(jī)和服務(wù)器在運(yùn)行過程中,由操作系統(tǒng)記錄系統(tǒng)日志,操作系統(tǒng)日志文件由操作系統(tǒng)本身的syslogd服務(wù)來維護(hù),記錄系統(tǒng)運(yùn)行的重要信息及硬件故障信息,主要是存儲(chǔ)在/var/log/messages和/var/log/dmesg文件中,系統(tǒng)日志大多數(shù)是以一定格式的文本形式存放,系統(tǒng)運(yùn)維人員通過系統(tǒng)日志文件可以了解系統(tǒng)的運(yùn)行狀況。
圖1 船載中心計(jì)算機(jī)系統(tǒng)組成結(jié)構(gòu)圖
船載中心計(jì)算機(jī)系統(tǒng)除了服務(wù)器和終端微機(jī)外還有另外一個(gè)重要組成部分——測(cè)控實(shí)時(shí)數(shù)據(jù)處理軟件(以下簡(jiǎn)稱測(cè)控軟件),它承擔(dān)著航天器重要數(shù)據(jù)的處理工作。
目前隨著中心計(jì)算機(jī)系統(tǒng)硬件結(jié)構(gòu)的改變,測(cè)控軟件也在不斷地變化。由以前運(yùn)行在單臺(tái)微機(jī)完成所有的數(shù)據(jù)處理工作逐漸向?qū)芋w系結(jié)構(gòu)發(fā)展,測(cè)控軟件也分成了兩部分:
一部分是運(yùn)行在后臺(tái)服務(wù)器上的測(cè)控業(yè)務(wù)層數(shù)據(jù)處理軟件,主要有實(shí)時(shí)數(shù)據(jù)處理軟件、軌道計(jì)算軟件、數(shù)據(jù)匯集分發(fā)軟件等等,這些測(cè)控業(yè)務(wù)層軟件安裝在不同的后臺(tái)服務(wù)器上完成各自的數(shù)據(jù)計(jì)算處理功能,這些測(cè)控業(yè)務(wù)層數(shù)據(jù)處理軟件部署在后臺(tái)遠(yuǎn)端服務(wù)器上,沒有軟件監(jiān)視界面;
另一部分是運(yùn)行在前端終端微機(jī)上的操控終端應(yīng)用軟件,操作人員通過操控終端應(yīng)用軟件來啟動(dòng)后臺(tái)服務(wù)器的測(cè)控業(yè)務(wù)層數(shù)據(jù)處理軟件,前端操控終端應(yīng)用軟件通過網(wǎng)絡(luò)和后端服務(wù)器上的測(cè)控業(yè)務(wù)層數(shù)據(jù)處理軟件進(jìn)行數(shù)據(jù)交互。
后臺(tái)測(cè)控業(yè)務(wù)層數(shù)據(jù)處理軟件有很多配置項(xiàng)用于完成不同的數(shù)據(jù)處理。以運(yùn)行在實(shí)時(shí)數(shù)據(jù)處理服務(wù)器上的實(shí)時(shí)數(shù)據(jù)處理軟件為例,實(shí)時(shí)數(shù)據(jù)處理軟件有近20個(gè)配置項(xiàng),主要有數(shù)據(jù)支持 (TSBS)、設(shè)備協(xié)議轉(zhuǎn)換 (DAPC)、數(shù)據(jù)存儲(chǔ) (DADS),設(shè)備數(shù)字引導(dǎo)計(jì)算 (TRLF)、設(shè)備數(shù)據(jù)處理 (TRTSI)、慣導(dǎo)船姿船位處理 (TRPP)、遙測(cè)數(shù)據(jù)處理 (TMST)、導(dǎo)航數(shù)據(jù)處理 (NVDA)等等。每一個(gè)配置項(xiàng)在運(yùn)行過程中都會(huì)記錄一個(gè)獨(dú)立的日志文件(*.log),存放在數(shù)據(jù)處理服務(wù)器的/var/log/amtcass相應(yīng)目錄下,這樣實(shí)時(shí)數(shù)據(jù)處理服務(wù)器就有TSBS.log、DAPC.log、TRLF.log、TRPP.log、TMST.log、TRTSI.log等近20個(gè)日志文件,記錄各個(gè)配置項(xiàng)運(yùn)行信息和出錯(cuò)信息。
同樣,運(yùn)行在其他服務(wù)器上的數(shù)據(jù)處理軟件也類似,如匯集分發(fā)服務(wù)器、軌道計(jì)算服務(wù)器等,也有相應(yīng)的獨(dú)立的多個(gè)軟件配置項(xiàng)日志文件,這些日志文件中包含了重要的軟件運(yùn)行過程信息,這些信息對(duì)分析軟件運(yùn)行情況非常重要。針對(duì)目前船載中心機(jī)計(jì)算機(jī)系統(tǒng)的現(xiàn)狀,系統(tǒng)運(yùn)維人員在進(jìn)行日志分析方面主要面臨以下幾個(gè)問題:
1) 日志文件存儲(chǔ)比較分散,每臺(tái)操控終端及服務(wù)器的日志存儲(chǔ)在本機(jī),系統(tǒng)運(yùn)維人員逐臺(tái)分析系統(tǒng)日志和測(cè)控軟件日志需耗費(fèi)大量時(shí)間,分析效率不高。
2) 服務(wù)器測(cè)控軟件日志在軟件出現(xiàn)異常時(shí)需要快速查看分析,服務(wù)器部署在后臺(tái)遠(yuǎn)端,測(cè)控軟件日志存儲(chǔ)在各自的數(shù)據(jù)處理服務(wù)器,存儲(chǔ)比較分散,系統(tǒng)運(yùn)維人員在前臺(tái)操控終端微機(jī)操作,因此很難及時(shí)查看到后臺(tái)服務(wù)器的測(cè)控軟件日志信息,這對(duì)問題排查和及時(shí)應(yīng)急處置帶來一定的困難。
3) 船載中心機(jī)系統(tǒng)的終端微機(jī)和服務(wù)器眾多,系統(tǒng)日志文件多,操作系統(tǒng)記錄的日志信息量大,逐臺(tái)檢查工作量大,在分析系統(tǒng)日志時(shí)沒有集中收集,系統(tǒng)運(yùn)維人員面臨海量的日志文件分析,容易遺漏和忽略一些重要的系統(tǒng)日志信息和故障信息。
4) 測(cè)控軟件日志和操作系統(tǒng)記錄的日志文件多,系統(tǒng)運(yùn)維人員在人工進(jìn)行日志清理維護(hù)時(shí)工作量大,耗費(fèi)大量時(shí)間精力,時(shí)效性不高。
為解決上述問題,有必要對(duì)日志文件分析模式進(jìn)行改進(jìn),通過日志自動(dòng)分析軟件實(shí)現(xiàn)對(duì)日志自動(dòng)分析、故障及時(shí)上報(bào)、文件定期清理,從而降低人為工作量,提高船載中心計(jì)算機(jī)系統(tǒng)故障排查的效率和準(zhǔn)確率,提升系統(tǒng)運(yùn)行的整體安全性和穩(wěn)定性。
船載中心計(jì)算機(jī)系統(tǒng)的日志分為系統(tǒng)日志和測(cè)控軟件日志。
系統(tǒng)日志記錄要素如表1所示,主要有日期、系統(tǒng)時(shí)間和日志描述,記錄日志發(fā)生的日期和系統(tǒng)時(shí)間和系統(tǒng)運(yùn)行過程中發(fā)生的重要事件信息。
表1 麒麟操作系統(tǒng)記錄的系統(tǒng)日志要素
測(cè)控軟件日志記錄要素主要有記錄日期、系統(tǒng)時(shí)間、測(cè)控軟件配置項(xiàng)名稱、時(shí)統(tǒng)時(shí)間、日志類型、日志描述等。
測(cè)控軟件的設(shè)備數(shù)據(jù)處理配置項(xiàng) (TRTSI)如表2所示。
表2 測(cè)控軟件記錄的日志要素
其中,測(cè)控軟件日志中記錄的日期和系統(tǒng)時(shí)間和系統(tǒng)日志中的內(nèi)容相同,時(shí)統(tǒng)時(shí)間為日志發(fā)生時(shí)準(zhǔn)確的北京時(shí)刻,日志類型主要來標(biāo)識(shí)日志的類別,主要有以下幾種:
ERROR:測(cè)控軟件配置項(xiàng)運(yùn)行錯(cuò)誤信息,該類信息是測(cè)控軟件日志分析重點(diǎn)關(guān)注的信息;
WARN:測(cè)控軟件配置項(xiàng)運(yùn)行的警告信息;
INFO:一般信息;
DEBUG:測(cè)控軟件配置項(xiàng)調(diào)試信息;
日志描述為日志發(fā)生時(shí)的具體內(nèi)容說明。
2.1.1 日志信息的集中收集方法
日志信息收集是日志自動(dòng)化分析的關(guān)鍵,由于日志信息都存儲(chǔ)在遠(yuǎn)端服務(wù)器和操控終端微機(jī)上,具體的日志信息收集如圖2所示,分為采集層、傳輸層和分析層,下面具體闡述日志采集的實(shí)現(xiàn)方法。
圖2 日志信息采集流程圖
日志信息的采集主要利用awk采集腳本來完成,將采集腳本存放于各臺(tái)服務(wù)器和操控終端微機(jī)上,awk采集一般的方法為:
awk '{pattern+action}' {filenames}
其中:pattern表示awk在數(shù)據(jù)中查找內(nèi)容的正則表達(dá)式,而action是在找到匹配內(nèi)容時(shí)所執(zhí)行的一系列命令。在系統(tǒng)日志信息和測(cè)控軟件日志信息中根據(jù)action指令篩選出基于指定規(guī)則的日志記錄信息。
日志傳輸層負(fù)責(zé)將采集收集到的日志信息傳輸?shù)饺罩痉治鼋K端微機(jī)上,由于日志分析終端微機(jī)在遠(yuǎn)端,日志自動(dòng)分析軟件要獲取到各臺(tái)服務(wù)器和操控終端微機(jī)的日志信息采集結(jié)果,需要利用Qt遠(yuǎn)程調(diào)用awk采集腳本,同時(shí)利用管道和重定向功能將采集結(jié)果傳輸?shù)饺罩痉治鼋K端微機(jī),具體實(shí)現(xiàn)步驟如下:
1)日志分析終端微機(jī)通過SSH服務(wù)免密碼方式訪問服務(wù)器和操控終端微機(jī)。
SSH作為L(zhǎng)inux系統(tǒng)的重要服務(wù),它是Linux遠(yuǎn)程連接重要的方式,通過SSH服務(wù)可以實(shí)現(xiàn)客戶端和服務(wù)端安全連接,通過使用ssh-keygen-trsa命令生成訪問服務(wù)器的公鑰和私鑰,將生成的私鑰保留,公鑰分發(fā)到遠(yuǎn)端服務(wù)器和操控終端微機(jī)上,這樣日志分析終端微機(jī)就可以免密碼訪問遠(yuǎn)端服務(wù)器和操控終端微機(jī)。
2)通過SSH服務(wù)運(yùn)行存放在遠(yuǎn)端服務(wù)器和操控終端微機(jī)上的awk采集腳本命令。
通過SSH服務(wù)可以運(yùn)行遠(yuǎn)程的awk采集腳本命令,相應(yīng)運(yùn)行的命令格式為:
ssh -l name remoteserver‘command’
其中,remoteserver為遠(yuǎn)程服務(wù)器的IP地址,command為存儲(chǔ)在遠(yuǎn)程服務(wù)器上的awk腳本命令。例如:執(zhí)行遠(yuǎn)程服務(wù)器192.168.1.100腳本的ssh調(diào)用命令格式如下:
ssh -l root 192.168.1.100‘a(chǎn)wk.sh’
3)日志采集結(jié)果輸出重定向。
眾所周知,Shell腳本命令的執(zhí)行結(jié)果在默認(rèn)的情況下將輸出結(jié)果輸出到標(biāo)準(zhǔn)輸出(stdout),通常來說,標(biāo)準(zhǔn)的輸出為本機(jī)顯示器,對(duì)于SSH服務(wù)運(yùn)行遠(yuǎn)程的服務(wù)器上的awk命令也不例外。
在Linux系統(tǒng)中,通過輸出重定向可以改變輸出結(jié)果的位置,通過輸出重定向后可以把a(bǔ)wk命令的輸出轉(zhuǎn)移到另一個(gè)地方去。因此對(duì)SSH服務(wù)運(yùn)行遠(yuǎn)程awk命令的格式進(jìn)行輕微改動(dòng),修改如下:
ssh -l root 192.168.1.100‘a(chǎn)wk.sh’>tmpLogFile
將awk命令的執(zhí)行結(jié)果重定向到tmpLogFile中,tmpLogFile為日志自動(dòng)分析終端中存儲(chǔ)執(zhí)行結(jié)果的文件,然后日志自動(dòng)分析軟件就可以對(duì)tmpLogFile中內(nèi)容進(jìn)行解析顯示。
4)通過QProcess類產(chǎn)生新進(jìn)程調(diào)用awk采集腳本。
日志自動(dòng)分析軟件采用Qt進(jìn)行研發(fā),通過QProcess類對(duì)每一個(gè)awk采集腳本命令都獨(dú)立創(chuàng)建一個(gè)進(jìn)程,相互獨(dú)立運(yùn)行,互不影響,執(zhí)行效率比較高。這種方式可以多任務(wù)并行運(yùn)行而不會(huì)阻塞相應(yīng)進(jìn)程執(zhí)行。
通過QProcess類執(zhí)行遠(yuǎn)程調(diào)用命令過程如下:
QStringprogram=”ssh -l root 192.168.1.100 ‘a(chǎn)wk.sh’>tmpLogFile”;
QStringList arguments;//創(chuàng)建輸入?yún)?shù)存儲(chǔ)列表
arguments< QProcess* myProcess=new QProcess(); myProcess->start(program,arguments); //執(zhí)行遠(yuǎn)程調(diào)用命令 通過以上步驟就實(shí)現(xiàn)對(duì)日志信息的采集和傳輸,實(shí)現(xiàn)了日志自動(dòng)分析軟件獲取遠(yuǎn)端服務(wù)器上日志信息采集結(jié)果。 2.1.2 日志的篩選和重復(fù)日志的處理方法 日志分析層負(fù)責(zé)日志文件的解析、分類和顯示,按照日志文件內(nèi)容和日志類型對(duì)日志進(jìn)行分類顯示,方便系統(tǒng)運(yùn)維人員使用。 在日志自動(dòng)分析時(shí),按照不同的日志類型進(jìn)行日志信息篩選,利用awk命令和grep命令進(jìn)行過濾篩選。測(cè)控軟件日志自動(dòng)分析時(shí)主要關(guān)注ERROR和WARN日志類型的信息,因此日志自動(dòng)分析軟件在分析測(cè)控軟件日志時(shí),會(huì)按照日志類型分類顯示,對(duì)ERROR類型的日志突出顯示,方便系統(tǒng)運(yùn)維人員分析使用。 測(cè)控軟件在運(yùn)行過程中需要實(shí)時(shí)記錄故障信息及運(yùn)行狀態(tài)信息,因此測(cè)控軟件日志可能會(huì)出現(xiàn)海量的重復(fù)錯(cuò)誤日志記錄信息,以設(shè)備數(shù)字引導(dǎo)計(jì)算配置項(xiàng) (TRLF)為例,TRLF.log日志記錄的重復(fù)日志信息如圖3所示。 圖3 測(cè)控軟件TRLF配置項(xiàng)日志重復(fù)信息 從圖3中可以看出,在1秒鐘內(nèi)軟件日志記錄了幾十條重復(fù)的日志記錄,而這些海量的重復(fù)的日志信息出現(xiàn)會(huì)將其他的有用的錯(cuò)誤日志信息湮沒。 針對(duì)這一情況,需要對(duì)這些海量的重復(fù)的日志信息進(jìn)行特殊處理,建立過濾條件,通過正則表達(dá)式對(duì)重復(fù)行日志信息進(jìn)行過濾篩選,只顯示部分行的錯(cuò)誤日志記錄。 在測(cè)控軟件重復(fù)日志自動(dòng)分析過程中通過建立模式比較規(guī)則庫對(duì)重復(fù)的軟件日志記錄進(jìn)行篩選。這種篩選的方法提取信息速度較快,對(duì)于重復(fù)日志的處理,效率比較高,具體的篩選過程如下: 第1步:建立模式比較規(guī)則庫,將重復(fù)日志描述的部分建立模式比較規(guī)則庫; 第2步:讀取日志文件的日志記錄,逐行讀取,利用awk將日志記錄分隔出日志描述部分,和模式比較規(guī)則庫中規(guī)則進(jìn)行比較,若存在,則轉(zhuǎn)入第1步,否則轉(zhuǎn)入下一步; 第3步:將該行日志記錄進(jìn)行解析、分類、顯示輸出,完成重復(fù)第2步。 這樣通過模式比較規(guī)則庫將海量相同的日志信息進(jìn)行過濾,只保留有用的日志信息記錄輸出。 2.1.3 增量日志數(shù)據(jù)的采集方法 系統(tǒng)日志和測(cè)控軟件日志在每一次分析時(shí),都應(yīng)該從上一次檢查結(jié)束的地方開始,避免重復(fù)分析,浪費(fèi)時(shí)間,浪費(fèi)系統(tǒng)資源,避免事件重復(fù)報(bào)告,為了解決這個(gè)問題,日志的采集時(shí)記錄了上次采集的結(jié)束位置,采用增量日志數(shù)據(jù)采集的方法,重新采集新生成的日志數(shù)據(jù),提高日志自動(dòng)分析的效率。 日志自動(dòng)分析軟件主要由主線程顯示類MainWindow、系統(tǒng)配置類ConfigDlgClass、測(cè)控軟件日志分析類CKSoftlogClass、系統(tǒng)日志分析類CSyslogClass、日志清理類組成ClearLogClass組成,類之間的關(guān)系如圖4所示。 圖4 日志自動(dòng)分析軟件類圖 主線程顯示類MainWindow主要完成軟件日志和系統(tǒng)日志的顯示、完成軟件初始化工作、系統(tǒng)配置類ConfigDlgClass完成軟件初始狀態(tài)的設(shè)置,主要設(shè)置軟件初始啟動(dòng)時(shí)掃描測(cè)控軟件日志和系統(tǒng)日志的時(shí)間區(qū)間,軟件在設(shè)計(jì)時(shí)提供了三個(gè)時(shí)間段區(qū)間,分別是“前1小時(shí)”、“前4小時(shí)”、“前1天”,默認(rèn)為“前1小時(shí)”;測(cè)控軟件日志類CKSoftlogClass主要負(fù)責(zé)測(cè)控軟件日志的獲取,通過awk腳本采集測(cè)控軟件日志信息,并對(duì)日志采集的日志數(shù)據(jù)進(jìn)行分析,分析結(jié)果送主線程顯示類顯示;系統(tǒng)日志類CSyslogClass主要負(fù)責(zé)系統(tǒng)日志的獲取,同樣通過awk腳本采集系統(tǒng)日志信息,并對(duì)系統(tǒng)日志數(shù)據(jù)進(jìn)行分析,分析結(jié)果送主線程顯示類顯示;日志清理類ClearLogClass主要完成主要服務(wù)器的日志清理,通過遠(yuǎn)程操作,清除服務(wù)器的測(cè)控軟件日志,提高系統(tǒng)運(yùn)維人員的維護(hù)效率。 日志自動(dòng)分析軟件在麒麟操作系統(tǒng)下研發(fā)采用Qt4.8.5版本。日志自動(dòng)分析軟件開發(fā)完成后,部署在一臺(tái)終端微機(jī),在實(shí)際的應(yīng)用環(huán)境中進(jìn)行軟件測(cè)試,通過測(cè)試比較輸出結(jié)果和預(yù)期輸出結(jié)果,從而判斷軟件功能能否達(dá)到預(yù)期設(shè)計(jì)要求。 日志自動(dòng)分析軟件在初始啟動(dòng)時(shí)設(shè)置日志分析的時(shí)段,之后日志再次采集分析時(shí)采用增量的方法進(jìn)行日志分析。以SJCL1為例,如圖5所示,左邊樹形控件列舉出需要分析的服務(wù)器和操控終端微機(jī),雙擊樹形控件某服務(wù)器或操控終端微機(jī)后,日志自動(dòng)分析軟件獲取測(cè)控軟件日志信息和系統(tǒng)日志信息,之后對(duì)日志進(jìn)行分析,給出分析出結(jié)果。在圖5中列出SJCL1服務(wù)器測(cè)控軟件各配置項(xiàng)的日志分析情況,按照日志類型錯(cuò)誤(ERROR)、警告(WARN)、全部(ALL)進(jìn)行分類,對(duì)于ERROR類型的日志進(jìn)行突出顯示。系統(tǒng)運(yùn)維人員可以點(diǎn)擊某個(gè)配置項(xiàng)的日志類型,查看具體的日志類型的詳細(xì)內(nèi)容,圖5中下半部分為設(shè)備數(shù)據(jù)處理配置項(xiàng)(TRTSI)的錯(cuò)誤(ERROR)日志詳細(xì)信息。系統(tǒng)運(yùn)維人員非常方便的查看錯(cuò)誤的具體內(nèi)容信息,為快速分析定位故障提供了強(qiáng)有力的支持。 圖5 測(cè)控軟件日志自動(dòng)分析結(jié)果 日志自動(dòng)分析軟件在分析某臺(tái)服務(wù)器測(cè)控軟件日志的同時(shí),也分析了系統(tǒng)日志文件,并列出分析結(jié)果,如圖6所示,逐行列出了近時(shí)間段內(nèi)系統(tǒng)日志的詳細(xì)信息。系統(tǒng)運(yùn)維人員及時(shí)了解系統(tǒng)的詳細(xì)日志信息,在系統(tǒng)日志查看時(shí),還提供了對(duì)分析結(jié)果再次過濾分析的功能,通過過濾條件分析關(guān)注的系統(tǒng)日志信息。 圖6 服務(wù)器的系統(tǒng)日志信息 日志清理功能為方便系統(tǒng)運(yùn)維人員進(jìn)行日志清理而設(shè)計(jì),如圖7所示,系統(tǒng)運(yùn)維人員可以通過工具欄選項(xiàng)“日志清理”選擇需要清理的服務(wù)器,在不需要人員手動(dòng)逐臺(tái)清理眾多的測(cè)控軟件日志文件和系統(tǒng)日志,日志自動(dòng)分析軟件可以很方便的清理日志文件,對(duì)服務(wù)器測(cè)控軟件各個(gè)配置項(xiàng)日志文件進(jìn)行批量清理,提升運(yùn)維人員的工作效率。 圖7 日志清理服務(wù)器選擇 通過日志自動(dòng)分析軟件,可以有效地實(shí)現(xiàn)日志集中化的采集、處理、分析,極大的方便系統(tǒng)運(yùn)維人員對(duì)日志的分析需求,有效防止信息疏漏,提高人員分析問題的效率和準(zhǔn)確率。同時(shí)測(cè)控軟件日志的自動(dòng)分析在故障快速定位作用非常明顯,在船載中心計(jì)算機(jī)系統(tǒng)軟件及硬件出現(xiàn)異常的情況下,可快速的查看日志文件對(duì)異常情況進(jìn)行排查定位,極大的提升了崗位人員應(yīng)急處置的能力。 日志自動(dòng)分析軟件也具有可拓展性,可以部署到其他系統(tǒng)的Linux服務(wù)器,利用該自動(dòng)分析方法對(duì)其他系統(tǒng)的服務(wù)器日志進(jìn)行集中分析顯示,減少人工出錯(cuò)概率,具有較好應(yīng)用價(jià)值。2.2 日志自動(dòng)分析軟件設(shè)計(jì)
3 軟件測(cè)試
4 結(jié)束語