首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Eclipse TPTP 監控應用程式:將日誌轉換為 CBE 格式的完整指南

     編輯:Java 相關知識

前言

編寫代碼只是交付高品質軟體的第一步。後續仍需經過測試、分析、監控等環節,以確保系統穩定、效能優異且安全可靠。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 等工具進行分析。

前置需求與系統環境

  • 具備軟體開發經驗,熟悉軟體生命週期、測試與分析流程
  • 熟悉命令列軟體安裝、Shell 環境變數設定 (PATH、CLASSPATH)
  • 具備正則表達式閱讀與編寫能力
  • 了解 Eclipse IDE 基本操作
  • 系統需求:支援 JVM 的作業系統 (Solaris、Linux、macOS、Windows),至少 300 MB 磁碟空間,建議 64 MB 以上可用記憶體

核心軟體安裝步驟

1. 安裝 J2RE 1.4/1.5

下載自解壓縮二進位檔,解壓至 ~/java/jre1.5.0_06/ 並設定 JAVA_HOME 與 PATH。

2. 安裝 Eclipse 3.1 SDK

解壓 eclipse-SDK-3.1.1-linux-gtk.tar.gz 至 ~/java/eclipse/,以 java -jar eclipse/startup.jar 驗證安裝。

3. 安裝 TPTP 執行環境與 GLA

解壓 tptp.runtime-TPTP-4.1.0.zip 與 tptp.gla.runtime-TPTP-4.1.0.1.zip 至 Eclipse 目錄,覆蓋提示選擇 All。

4. 安裝相依套件:EMF SDK 2.1、XSD SDK 2.1、UML2 1.1.1

依序解壓對應 zip 檔至 Eclipse 目錄,覆蓋提示輸入 y。

5. 安裝與配置 Agent Controller

解壓 Agent Controller 至 ~/java/tptpd/,修復可能的符號連結錯誤 (libxerces-c.so),設定 LD_LIBRARY_PATH、執行權限與 PATH,執行 SetConfig.sh 接受預設值,最後以 RAStart.sh/RAStop.sh 驗證。

安裝完成後,Eclipse 工具列將出現 TPTP Profile 按鈕,表示環境就緒。

TPTP Profile 按鈕

建立適配器配置檔

1. 建立 Eclipse 專案與適配器檔案

  • File > New > Project > Simple > Project,命名為 "My Adapter"
  • File > New > Other > Generic Log Adapter > Generic Log Adapter File,檔名 my.adapter
  • 選擇日誌範本檔 (如 daemon.log 片段),完成後切換至 Generic Log Adapter 透視圖
選擇日誌範本 Generic Log Adapter 透視圖

2. 配置上下文實例

點選 Configuration 下的 Context Instance,設定:

  • Description: "A context for daemon.log"
  • 勾選 Continuous operation (日誌持續增長)
  • Maximum idle time: 120 ms、Pause interval: 120 ms
  • Timezone GMT offset: -7 (科羅拉多時區)、Log file creation date: 2006 (年份預設值)
上下文實例選項

3. 指定檢測器

檢測器負責讀取日誌檔並轉發資料給提取器。關鍵設定:

  • Sensor type: SingleFileSensor (單一檔案)
  • Maximum blocking: 10 行 (因日誌項目常跨多行)
  • Confidence buffer size: 1024 位元組 (預設)
  • File footer size: 0 (無結束標記)
  • directory 與 fileName 指向實際日誌路徑
檢測器設定

4. 編輯提取器

提取器將輸入流切分為獨立記錄。daemon.log 每行一筆記錄,設定:

  • 取消 Contains line breaks、Replace line breaks
  • Start pattern: ^ (行首)、End pattern: $ (行尾)
  • 不包含分隔符於記錄中
提取器屬性

對比範例:MySQL 慢查詢日誌每筆跨三行,需勾選 Contains line breaks,Start pattern 為 ^# Time:,End pattern 為 ^$。

MySQL 慢查詢提取器 提取結果

5. 測試檢測器與提取器

在 Extractor Result 面板點選 Rerun adapter > Next event,Sensor Result 應顯示前 10-20 行,Extractor Result 應為第一行記錄,Problems 面板應為空。Formatter Result 顯示初始 CBE XML 框架。

上下文組件顯示面板 適配器控制按鈕

建立解析器:將記錄映射為 CBE XML

解析器運作原理

解析器分兩階段:先以分隔符切分位置,再以指示符切分名稱/值對。例如分隔符 [: ]+、指示符 =,可將 03/05/06 12:51:06EST Mail name=joe action=login 解析為 6 個位置與 3 個指示。

針對 daemon.log 設定解析器

  1. 分隔符::[ ]+ (冒號加空白),將每行切為兩個位置:時間戳與剩餘訊息。無指示符。
  2. creationTime (必填):
    • Positions: 1 (第一個位置含時間戳)
    • Match: ^(\w{3})\s+(\d{1,2})\s+([\d:]+)\s+.*$ 擷取月、日、時間
    • Substitute: $1 $2 @YEAR $3 @TIMEZONE 產生如 Mar 02 2006 06:27:35 -0700
    • Time format: MMM dd yyyy hh:mm:ss Z (SimpleDateFormat 格式)
  3. msg (必填):
    • Positions: 2 (第二個位置為訊息本文)
    • Match: ^(.*)$、Substitute: $1
  4. sourceComponentId (必填,含 6 屬性):
    • component: 正則 ^.* db (\w+)\[.*$ 擷取服務名 (popa3d 等)
    • componentIdType: 固定 ServiceName
    • componentType: 固定 daemon
    • location: 預設 db.linux-mag.com (完整主機名)
    • locationType: 固定 Hostname
    • subComponent: 正則 ^.*\[(\d+)\].*$ 擷取 PID
完成的解析器 記錄分割位置 creationTime 設定 msg 設定 可添加的 CBE 元素

完成後儲存並重新執行,Formatter Result 將顯示完整 CBE XML,包含 creationTime、msg、sourceComponentId 等。可選擇性添加 situation 元素 (如 StartSituation) 豐富事件描述。

配置格式化器與輸出器

  • 格式化器:內建無需配置,自動產生符合 CBE 1.0.1 規範的物件。
  • 輸出器:選擇 SingleFileOutputter,添加 property directory (輸出目錄) 與 fileName (如 emitter.log)。
  • 修改上下文實例的 Component Logging Agent Outputter 為 Single File Outputter,Executable 類改為 org.eclipse.hyades.logging.adapter.outputters.CBEFileOutputter。
  • 手動在 my.adapter XML 中補充 <op:SingleFileOutputterType directory="..." fileName="..."/> 節點 (編輯器已知漏洞)。
輸出器配置

執行 GLA 獨立轉換

  1. 編輯 GenericLogAdapter/bin/gla.sh,設定 GLA_HOME=~/java/GenericLogAdapter。
  2. 執行 ~/java/GenericLogAdapter/bin/gla.sh ~/workspace/My\ Adapter/my.adapter。
  3. 輸出檔 emitter.log 將出現在指定目錄,內含完整 CBE XML 事件流。

進階與總結

若規則式適配器無法滿足複雜日誌格式,可開發靜態適配器 (Java 類) 整合至 GLA,僅需提供檢測器與輸出器,解析邏輯由 Java 代碼實現。Adapter Configuration Editor 與 GLA 提供強大環境,讓現有或舊版應用程式的日誌能以最小成本遷移至 CBE 格式,進而運用現代自主運算工具深入分析系統行為。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved