使用 Log Analyzer 和 Symptom Editor 實現自動化的日誌分析
日誌檔案是故障診斷過程中最重要的資料檔案之一,它記錄了系統執行過程中所發生的重要事件,其特點是簡單、直觀、易於檢視。通常我們只需要文字編輯器就可以找到我們所需要的資訊。但是隨著系統結構的日益複雜,日誌檔案中所記錄的資訊也急劇的膨脹,不同模組和執行緒所記錄的資訊往往交織在一起,給分析工作帶來一定的麻煩。現在越來越多的人使用 Log Analyzer 分析日誌檔案,其中一個重要原因就是它可以幫我們自動處理日誌檔案中龐雜的資料資訊,從中找出比較明顯的症狀,甚至給出解決問題的建議和方法。在這一過程中,Symptom Editor 起了很重要的作用,有了 Symptom Editor 的加入, Log Analyzer 才能獲得不斷增強的分析能力。因此本文將著重介紹 Log Analyzer 和 Symptom Editor 的結合使用。
Log Analyzer 和 Symptom Editor 的關係
《權威支援 使用Log Analyzer進行第1階段問題確定》 一文給大家介紹了 Log Analyzer 概念和主要功能,本文將在這篇文章的基礎上進一步向大家展示 Log Analyzer 在日誌分析方面的強大功能,並且結合 Symptom Editor 實現日誌的自動化分析。
Log Analyzer 是一套具有圖形使用者介面並提供用於瀏覽、分析和關聯多個產品產生的日誌分析工具。 Log Analyzer 對日誌的分析包含兩個方面,首先是對檔案內容的重新組織與展示,包括對資訊的篩選,分類和關聯。比如我們如果只關心日誌檔案中的錯誤資訊,那麼我們就可以將所有的錯誤資訊匯出到一個單獨的報告檔案中;如果我們只關心某一執行緒輸出的資訊,那麼就可以過濾掉其它與之無關的執行緒資訊;或者還可以將多個互相關聯的日誌檔案按照一定的邏輯順序重新組合到一起等等。這些都是 Log Analyzer 的基本功能,不在本文的討論範圍之內。本文所討論的是第二種分析方法,即基於症狀的分析,這裡所說的症狀是指日誌檔案中可以用於確定某一問題的日誌訊息的特徵。比如訊息 ID,訊息來源,訊息內容等。這些特徵被儲存在症狀目錄中。在分析日誌檔案的過程中,一旦發現與這些特徵相符的問題, Log Analyzer 就會將這一問題報告給使用者,並且允許使用者檢視與這一問題相關的更詳細的資訊或者推薦的解決方案。
IBM 還提供了配套的 Symptom Editor 工具幫助使用者建立並維護症狀目錄。如果再次出現問題,症狀目錄會查詢到相應的症狀定義並給出此種症狀的解決建議。症狀目錄中的資訊通常是經驗的積累,需要使用者不斷地對它進行豐富和完善。只有當症狀目錄的內容豐富起來,Log Analyzer 的分析功能才會變得越來越強大。下圖展示了 Log Analyzer 和 Symptom Editor 之間的關係。
圖 1. Log Analyzer 和 Symptom Editor 的關係
當匯入日誌後,Log analyzer 首先通過 Adapter 對日誌檔案進行解析,解析後的日誌訊息變成易於使用的結構化的資料儲存於記憶體中。使用者可以使用現有的症狀目錄對日誌訊息的內容進行分析,如果發現與某一問題相關的症狀,則將其報告給使用者,如果症狀目錄中不存在當前問題的症狀,我們需要手工檢視日誌訊息來診斷問題,一旦找到問題發生的原因,使用者應該將新的症狀新增到症狀目錄中,這樣,如果將來再次出現類似的問題,我們就能夠很快的定位到問題,而不需要花費大量的時間進行重複的分析了。
建立症狀目錄的好處顯而易見,大多數情況,問題的解決都需要花費大量的時間和精力。而通過解決問題所獲得的經驗更是一筆寶貴的財富,將這些財富積累下來,在一定範圍內共享是我們要建立症狀目錄的主要目的。
下面,我們通過一個簡單的例項來展示症狀目錄的建立和使用方法,在下面的這個例子中,我們的應用試圖訪問一個並不存在的 JDBC 資料來源,系統會在日誌檔案中產生一條錯誤資訊。我們將利用 Log Analyzer 分析此日誌檔案,並利用 Symptom Editor 建立一個新的症狀目錄,如果下次類似的問題再次發生,我們就可以利用這個症狀目錄幫我們進行分析了。
首先,開啟 Log Analyzer,通過 File > Import Log > Import from the local system 選單匯入所生成的日誌檔案。本文的日誌檔案是通過本地檔案系統匯入的。找到指定日誌檔案,點選 Add 按鈕將日誌新增到檔案列表中。此時,系統會自動識別日誌檔案的型別並選擇相應的 adapter。最後,點選 Finish 按鈕完成匯入,如圖 2 所示。
圖 2. 匯入日誌檔案
開啟日誌後,可以從 Log View 列表中檢視日誌資訊。如果只想檢視日誌中的錯誤資訊,可以使用 Log View 檢視右上角的 Filters 功能進行過濾,也可以使用 Highlight Events 功能高亮顯示錯誤資訊(圖 3)。
如果想獲得更多資訊,可以右鍵點選 Log View 中的日誌檔案(圖 4),利用 Search Message Text in IBM Support Assistant 或者 Search Message ID in IBM Support Assistant 在 IBM Support Assistant 中查詢關於此條日誌的相關文件或者文章。
圖 3. 利用 Filters 過濾日誌事件
圖 4. 查詢與日誌相關的資訊
Symptom Editor 可以幫助 Log Analyzer 建立症狀目錄。如果沒有可用的症狀目錄或者當前問題在症狀目錄中無法找到,可以在 Log Analyzer 的 Log View 中右鍵點選發生問題的訊息條目,選擇 New Symptom Definition 啟動 Symptom Editor 建立症狀目錄。
圖 5. 建立新的症狀目錄
此時,如果用於分析 WAS 日誌的症狀目錄已經存在,使用者可以選擇在已存在的症狀目錄中添相應的症狀資訊,否則,需要首先建立一個新的症狀目錄,然後向這個症狀目錄中新增症狀定義。在 New Symptom Definition 介面中可以定義症狀的具體特徵:
- Rule list:判斷症狀的規則列表;
- Rule type:定義規則的型別;
- Description:編寫症狀的具體描述資訊;
- Conditions:可以定義每一條症狀規則的具體判斷條件。點選 Conditions 下方的 Add 按鈕可以新增條件。每一個 Condition Group 中可以包含多個 Condition。每一個 Condition 是一條邏輯判斷語句,可以用它判斷日誌中是否包含或者是否等於指定資訊。同樣,Condition Group 之間也可以通過 AND/OR 來進行與、或的判斷;
圖 6. 新增新症狀定義
點選 Next,在 Recommendation 文字框中可以為症狀新增解決建議。在這裡我們提示使用者 JDBC 服務不可用,建議使用者在 WebSphere 應用伺服器的環境中,檢查一下 JDBC 是否存在。點選 Finish 按鈕,新的症狀目錄和症狀定義就建立完成了。在 Symptom Catalog 中可以檢視和修改症狀定義。
圖 7. 新增症狀解決建議
建立完症狀目錄,就可以利用症狀目錄分析日誌,查詢解決建議。返回 Log Analyzer,右鍵左側列表中的 Symptom Catalogs,點選 Import Symptom Catalog,選擇剛才建立的症狀目錄。點選 Finish 按鈕 (如圖)確定匯入。
在 Log View 中右鍵點選需要分析的日誌,選擇 Analyze Selection 分析指定日誌。如果症狀目錄中存在符合條件的症狀,就會在 Log View 下方的 Symptom Analysis Results 中顯示症狀。並可以通過選擇 Symptom Analysis Results 右側的 Recommendations and Actions 標籤,檢視解決建議。
圖 8 匯入症狀目錄
圖 9. 利用 Symptom Editor 分析日誌
以上我們通過實際案例演示瞭如何利用 Log Analyzer 和 Symptom Editor 解析日誌、建立症狀目錄。當問題再次發生時,Log Analyzer 能夠自動發現問題,並且給出預先設定的解決方案和建議,從而幫助使用者快速地定位問題、解決問題。
隨著應用系統規模的不斷增大,會有越來越多的人需要通過自動化的工具分析日誌檔案。使用 Symptom Editor 配合 Log Analyzer 分析日誌檔案,可以幫我們自動處理日誌檔案中龐雜的資料資訊,從中找出比較明顯的症狀,並且給出解決問題的建議和方法。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14789789/viewspace-665974/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 利用Eventlog Analyzer分析日誌
- 自動化測試框架:日誌的分析框架
- 介面自動化之實現日誌記錄封裝封裝
- secureCRT自動記錄log日誌Securecrt
- Monaco Editor 實現一個日誌檢視器
- 使用C++和QT實現Log自定義日誌系統C++QT
- 【python介面自動化】- logging日誌模組Python
- 日誌分析logmnr (Logminer) 使用方法
- Logminer簡單分析日誌的實驗
- LOGMINER日誌分析
- RHEL 6.5 搭建Rsyslog日誌伺服器和Loganalyzer日誌分析工具伺服器
- 使用logminer分析歸檔日誌案例
- 轉載:使用Log Miner分析Oracle日誌Oracle
- changelog 日誌自動生成外掛
- 雲端日誌服務——UPLOG的實現
- python+pytest介面自動化(16)-介面自動化專案中日誌的使用 (使用loguru模組)Python
- 日誌分析工具 Log Parser
- logminer 日誌分析案例
- Logback中使用TurboFilter實現日誌級別等內容的動態修改Filter
- Log4j 2使用Disruptor實現非同步日誌非同步
- 使用Logminer來分析具體的DML操作日誌
- python介面自動化(四十)- logger 日誌 - 下(超詳解)Python
- Qt 實現 Logger 日誌的顯示QT
- mysql binlog日誌自動清理及手動刪除MySql
- tinylog簡化日誌
- .NET 6 使用 LogDashboard 視覺化日誌視覺化
- 支付寶客戶端架構分析:自動化日誌收集及分析客戶端架構
- 使用gulp實現前端自動化前端
- 使用 fastlane 實現自動化打包AST
- Oracle listener log 日誌分析方法Oracle
- logmnr分析線上重做日誌
- 使用go+gin編寫日誌中間,實現自動化收集http訪問資訊,錯誤資訊等,自動化生成日誌檔案GoHTTP
- PHP實現日誌寫入log.txtPHP
- python介面自動化(三十九)- logger 日誌 - 上(超詳解)Python
- [轉] MySQL binlog 日誌自動清理及手動刪除MySql
- EDP .Net開發框架--自動化日誌框架
- Android日誌Log使用Android
- 使用開源API Logic Server實現業務邏輯模型自動化APIServer模型