編寫代碼只是交付高品質軟體的第一步。後續仍需經過測試、分析、監控等環節,以確保系統穩定、效能優異且安全可靠。Eclipse Test and Performance Tools Platform (TPTP) 提供了一套完整的測試、效能分析與監控工具,擴展了 Eclipse 平台的功能。本系列教程分為三部分:第一部分示範 Java 應用程式分析;第二部分(本文)講解如何捕獲任意日誌檔案並轉換為通用基礎事件 (CBE) 格式;第三部分將說明應用程式測試管理。
本教程將指導您使用 Eclipse TPTP 的 Generic Log Adapter (GLA) 與 Adapter Configuration Editor,將典型的 Linux 系統服務日誌 (daemon.log) 轉換為結構化的 CBE 事件資料。只要具備基本的正則表達式知識,即可將各種格式的日誌統一轉換,便於後續使用 TPTP 或 IBM Log and Trace Analyzer 等工具進行分析。
下載自解壓縮二進位檔,解壓至 ~/java/jre1.5.0_06/ 並設定 JAVA_HOME 與 PATH。
解壓 eclipse-SDK-3.1.1-linux-gtk.tar.gz 至 ~/java/eclipse/,以 java -jar eclipse/startup.jar 驗證安裝。
解壓 tptp.runtime-TPTP-4.1.0.zip 與 tptp.gla.runtime-TPTP-4.1.0.1.zip 至 Eclipse 目錄,覆蓋提示選擇 All。
依序解壓對應 zip 檔至 Eclipse 目錄,覆蓋提示輸入 y。
解壓 Agent Controller 至 ~/java/tptpd/,修復可能的符號連結錯誤 (libxerces-c.so),設定 LD_LIBRARY_PATH、執行權限與 PATH,執行 SetConfig.sh 接受預設值,最後以 RAStart.sh/RAStop.sh 驗證。
安裝完成後,Eclipse 工具列將出現 TPTP Profile 按鈕,表示環境就緒。
my.adapterdaemon.log 片段),完成後切換至 Generic Log Adapter 透視圖
點選 Configuration 下的 Context Instance,設定:
檢測器負責讀取日誌檔並轉發資料給提取器。關鍵設定:
提取器將輸入流切分為獨立記錄。daemon.log 每行一筆記錄,設定:
^ (行首)、End pattern: $ (行尾)
對比範例:MySQL 慢查詢日誌每筆跨三行,需勾選 Contains line breaks,Start pattern 為 ^# Time:,End pattern 為 ^$。
在 Extractor Result 面板點選 Rerun adapter > Next event,Sensor Result 應顯示前 10-20 行,Extractor Result 應為第一行記錄,Problems 面板應為空。Formatter Result 顯示初始 CBE XML 框架。
解析器分兩階段:先以分隔符切分位置,再以指示符切分名稱/值對。例如分隔符 [: ]+、指示符 =,可將 03/05/06 12:51:06EST Mail name=joe action=login 解析為 6 個位置與 3 個指示。
:[ ]+ (冒號加空白),將每行切為兩個位置:時間戳與剩餘訊息。無指示符。^(\w{3})\s+(\d{1,2})\s+([\d:]+)\s+.*$ 擷取月、日、時間$1 $2 @YEAR $3 @TIMEZONE 產生如 Mar 02 2006 06:27:35 -0700MMM dd yyyy hh:mm:ss Z (SimpleDateFormat 格式)^(.*)$、Substitute: $1^.* db (\w+)\[.*$ 擷取服務名 (popa3d 等)ServiceNamedaemondb.linux-mag.com (完整主機名)Hostname^.*\[(\d+)\].*$ 擷取 PID
完成後儲存並重新執行,Formatter Result 將顯示完整 CBE XML,包含 creationTime、msg、sourceComponentId 等。可選擇性添加 situation 元素 (如 StartSituation) 豐富事件描述。
directory (輸出目錄) 與 fileName (如 emitter.log)。org.eclipse.hyades.logging.adapter.outputters.CBEFileOutputter。my.adapter XML 中補充 <op:SingleFileOutputterType directory="..." fileName="..."/> 節點 (編輯器已知漏洞)。
GenericLogAdapter/bin/gla.sh,設定 GLA_HOME=~/java/GenericLogAdapter。~/java/GenericLogAdapter/bin/gla.sh ~/workspace/My\ Adapter/my.adapter。emitter.log 將出現在指定目錄,內含完整 CBE XML 事件流。若規則式適配器無法滿足複雜日誌格式,可開發靜態適配器 (Java 類) 整合至 GLA,僅需提供檢測器與輸出器,解析邏輯由 Java 代碼實現。Adapter Configuration Editor 與 GLA 提供強大環境,讓現有或舊版應用程式的日誌能以最小成本遷移至 CBE 格式,進而運用現代自主運算工具深入分析系統行為。