Sun Java logo     上一頁      目錄      索引      下一頁     

Sun logo
Sun Java System Message Queue 3 2005Q1 管理指南 

第 10 章
監視訊息伺服器

本章描述可用來監視訊息伺服器的工具,以及如何取得度量資料。本章有下列幾節:

有關特定度量的參照資訊,請參閱第 18 章「度量參照」


監視工具簡介

Message Queue 資訊有三個監視介面:記錄檔、互動式指令,和可以取得度量的用戶端 API。各有下列優點和缺點:

表 10-1 比較不同的工具。

表 10-1 度量監視工具的優點與限制 

標準資訊
監視工具

優點

限制

imqcmd metrics

遠端監視

便於抽查

在指令選項中設定報告間隔時間;可即時變更

易於選取偏好的特定資料

以簡單表格格式呈現的資料

沒有取得所有資料的單一指令

難以有計劃分析資料

未建立歷程記錄

難以查看歷程趨勢

記錄檔

固定取樣

建立歷程記錄

需要配置代理程式特性;必須關閉並重新啟動代理程式才可生效

僅本地監視

資料格式難以讀取或剖析;沒有剖析工具

無法即時變更報告間隔時間;所有度量資料的報告間隔時間皆相同

不提供彈性選取資料

僅代理程式度量;不包括目標和連線服務度量

若間隔時間過短可能會影響效能

用戶端 API

遠端監視

易於選取偏好的特定資料

可以有計劃的分析資料並以任何格式呈現

需要配置代理程式特性;必須關閉並重新啟動代理程式才可生效

您必須寫入您自己的度量監視用戶端

無法即時變更報告間隔時間;所有度量資料的報告間隔時間皆相同

除了表格中顯示的差異性之外,每個工具皆會收集代理程式產生的不同度量資訊子集。如需每個監視工具收集的度量資料的詳細資訊,請參閱第 18 章「度量參照」


配置及使用代理程式記錄功能

Message Queue 記錄程式會取得代理程式程式碼產生的資訊、除錯程式和度量產生器,並將資訊寫入一些輸出通道:標準輸出 (主控台)、記錄檔及 Solaris™ 作業系統上的 syslog (系統記錄) 常駐程式程序。

您可以指定記錄程式收集的資訊類型,以及寫入每個輸出通道的類型。要特別注意的是,您可以指定您要寫入記錄檔的度量資訊。

本節描述代理程式的預設記錄配置,並介紹如何將記錄資訊重新導向至替代輸出通道、如何變更記錄檔自動重建條件,以及如何將度量資料傳送到記錄檔。

預設記錄配置

代理程式會自動配置將記錄輸出儲存到一組自動重建的記錄檔中。這些記錄檔位於以相關代理程式實例名稱辨別的目錄中 (請參閱附錄 A「Message Queue 資料的作業系統特定位置」):

/instances/instanceName/log/

記錄檔為純文字檔案。它們命名如下,從最舊的到最新的:

log.txt
log_1.txt
log_2.txt

log_9.txt

依預設,記錄檔每週自動重建一次;系統保留九個備份檔案。

代理程式支援三種記錄級別:ERRORWARNINGINFO表 10-2 解釋了每個級別的意義。

表 10-2 記錄級別 

級別

說明

ERROR

表示可導致系統故障問題的訊息。

WARNING (警告)

應加以注意但不會導致系統故障的警示。

INFO

度量和其他資訊性訊息的報告。

設定記錄級別可收集此級別以上 (含此級別) 的訊息。預設級別是 INFO,因此依預設,ERRORWARNINGINFO 訊息會全部記錄 。

記錄訊息格式

記錄的訊息包含時間戳記、訊息程式碼和訊息本身。資訊容量因您所設定的記錄級別而有所不同。以下為 INFO 訊息的範例。

[13/Sep/2000:16:13:36 PDT] B1004 Starting the broker service using tcp [ 25374,100] with min threads 50 and max threads of 500

若要變更時區時間戳記,請參閱表 14-10 中描述的有關 imq.log.timezone 特性的資訊。

變更記錄程式配置

表 14-10 中描述了記錄的相關特性。


變更代理程式的記錄程式配置
  1. 設定記錄級別。
  2. 為一個或多個記錄種類設定輸出通道 (檔案、主控台或二者)。
  3. 如果您將輸出記錄至檔案,請為此檔案配置自動重建條件。

您可以透過設定記錄程式特性完成這些步驟。您可以用以下兩種方法之一執行此作業:

在指令行上傳送的選項覆寫在代理程式實例配置檔案中指定的特性。表 10-3 列出了影響記錄的 imqbrokerd 選項。

表 10-3 imqbrokerd 記錄程式選項和對應的特性 

imqbrokerd 選項

說明

-metrics interval

指定寫入記錄程式的度量資訊的間隔時間 (以秒為單位)。

-loglevel level

將記錄級別設定為以下之一:ERRORWARNINGINFO

-silent

關閉對主控台的記錄。

-tty

將所有訊息傳送至主控台。依預設,僅顯示 WARNINGERROR 級別的訊息。

以下各節描述如何變更預設配置以便執行以下作業:

變更輸出通道

依預設,錯誤和警告訊息既可在終端機上顯示,也可記錄至記錄檔 (在 Solaris 上,錯誤訊息還可寫入至系統的 syslog 常駐程式)。

您可以用以下方法變更記錄訊息的輸出通道:

變更記錄檔自動重建條件

有兩個條件用於自動重建記錄檔:時間和容量。預設為使用時間條件,每七天自動重建一次檔案。

如果您同時設定了與時間相關的和與容量相關的特性,則先達到的限制將啟動自動重建。如上所述,代理程式最多可保留九個自動重建檔案。

代理程式執行時,您可以設定或變更記錄檔自動重建特性。若要設定這些特性,請使用 imqcmd update bkr 指令。

將度量資料傳送到記錄檔

本節描述使用代理程式記錄檔報告度量資訊的程序。如需配置記錄程式的一般資訊,請參閱配置及使用代理程式記錄功能


若要使用記錄檔報告度量資訊
  1. 配置代理程式的度量產生功能:
    1. 確定 imq.metrics.enabled=true
    2. 依預設,會開啟用於記錄的度量產生功能。

    3. 設定度量產生的合適秒數間隔時間。
    4. imq.metrics.interval=interval

      您可以在啟動代理程式時,在 config.properties 檔案中或使用
      -metrics interval 指令行選項設定此值。

  2. 確定記錄程式已收集度量資訊:
  3. imq.log.level=INFO

    這是預設值。您可以在啟動代理程式時,在 config.properties 檔案中或使用 -loglevel level 指令行選項設定此值。

  4. 確定已設定記錄程式,將度量資訊寫入記錄檔:
  5. imq.log.file.output=INFO

    這是預設值。您可以在 config.properties 檔案中進行設定。

  6. 啟動代理程式。

下面是代理程式度量輸出到記錄檔的範例:

 

[21/Jul/2004:11:21:18 PDT]

連線:0    JVM 堆疊:8323072 位元組 (7226576 位元組可用) 執行緒: 0 (14-1010)

      輸入:0 個訊息 (0 個位組) 0 個封包 (0 個位元組)

      輸出:0 個訊息 (0 個位組) 0 個封包 (0 個位元組)

 輸入速率:0 個訊息/秒鐘 (0 個位元組/秒鐘) 0 個封包/秒鐘 (0 個位元組/秒鐘)

 輸出速率:0 個訊息/秒鐘 (0 個位元組/秒鐘) 0 個封包/秒鐘 (0 個位元組/秒鐘)

 

如需度量資料的參照資訊,請參閱第 18 章「度量參照」

記錄停用的訊息

您可以啟用代理程式的停用訊息記錄功能來監視實體目標。無論您有沒有使用此停用訊息佇列,都可以記錄這些停用的訊息。

啟用此停用訊息記錄功能後,代理程式會記錄下列類型的事件:

如果停用訊息佇列在使用中,還會記錄下列類型的事件:

依預設,不記錄停用的訊息。若要記錄,請設定代理程式屬性 imq.destination.logDeadMsgs


互動顯示度量

Message Queue 代理程式可以報告下列類型的度量:

imqcmd 指令可以取得整個代理程式、個別連線服務和個別實體目標的度量資訊。若要取得度量資料,通常可使用 imqcmd 子指令 metrics。度量資料會依您指定的間隔時間或次數寫入主控台畫面。

您也可以使用 query 子指令,檢視也包含配置資訊的類似資料。請參閱 imqcmd query,以獲得更多資訊。

imqcmd metrics

imqcmd metrics 的語法和選項個別顯示於表 10-4表 10-5 中。

表 10-4 imqcmd metrics 子指令語法 

子指令語法

提供的度量資料

metrics bkr
    [-b hostName:port]
    [-m metricType]
    [-int interval]
    [-msp numSamples]

顯示預設代理程式或指定主機和連接埠上的代理程式的代理程式度量。

 

metrics svc -n serviceName
    [-b hostName:port]
    [-m metricType]
    [-int interval]
    [-msp numSamples]

顯示預設代理程式或指定主機和連接埠上的代理程式上的指定服務之標準資訊。

 

metrics dst -t destType
    -n destName
    [-b hostName:port]
    [-m metricType]
    [-int interval]
    [-msp numSamples]

顯示有關指定類型和名稱之實體目標的度量資訊。

表 10-5 imqcmd metrics 子指令選項 

子指令選項

說明

-b hostName:port

指定報告度量資訊之代理程式的主機名稱和連接埠。預設值為 localhost:7676

-int interval

指定顯示度量的間隔時間 (以秒為單位)。預設為 5 秒鐘。

-m metricType

指定要顯示的度量類型:

ttl      顯示流入和流出代理程式、服務或目標的訊息與封包之度量 (預設度量類型)

rts      顯示流入和流出代理程式、連線服務或目標的訊息和封包之流量速率的度量 (每秒)

cxn      顯示連線、虛擬記憶體堆疊和執行緒 (僅代理程式和連線服務)

con      顯示用戶相關的度量 (僅目標)

dsk      顯示磁碟使用度量 (僅目標)。

-msp numSamples

指定顯示在輸出中的範例數目。預設的數目為沒有限制 (無限)。

-n destName

指定報告度量資料之實體目標的名稱 (如果有的話)。沒有預設值。

-n serviceName

指定報告度量的連線服務 (如果有的話)。沒有預設值。

-t destTyp

指定報告度量資料之實體目標 (如果有的話) 的類型 (佇列或主題)。沒有預設值。

使用顯示度量資料的 metrics 子指令

本節描述使用 metrics 子指令報告度量資訊的程序。


若要使用 metrics 子指令
  1. 啟動需要度量資訊的代理程式。
  2. 請參閱以互動方式啟動代理程式

  3. 發出適當的 imqcmd metrics 指令和選項,其內容分別顯示於表 10-4表 10-5

度量輸出:imqcmd metrics

本節包含 imqcmd metrics 子指令的輸出範例。這些範例顯示代理程式範圍、連線服務和實體目標度量。

代理程式範圍度量

若要取得訊息和封裝每隔 10 秒流入和流出代理程式的速率,請使用 metrics bkr 子指令:

imqcmd metrics bkr -m rts -int 10 -u admin

此指令會產生與以下相似的輸出 (請參閱表 18-2 中的資料說明):

 

--------------------------------------------------------

訊息/秒鐘     訊息位元組/秒鐘  Pkts /秒鐘   Pkt 位元組/秒鐘   

輸入  輸出    輸入    輸出    輸入  輸出    輸入    輸出  

--------------------------------------------------------

0     0      27      56      0     0      38      66   

10    0     7365     56      10    10    7457    1132  

0     0      27      56      0     0      38      73   

0     10     27     7402     10    20    1400    8459  

0     0      27      56      0     0      38      73   

 

連線服務度量

若要取得由 jms 連線服務處理之訊息和封包的累積總數,請使用 metrics svc 子指令:

imqcmd metrics svc -n jms -m ttl -u admin

此指令會產生與以下相似的輸出 (請參閱表 18-3 中的資料說明):

 

-------------------------------------------------

  訊息      訊息位元組      Pkts      Pkt 位元組     

輸入  輸出  輸入    輸出   輸入  輸出  輸入   輸出  

-------------------------------------------------

164  100  120704  73600  282  383  135967  102127

657  100  483552  73600  775  876  498815  149948

 

實體目標度量

若要取得有關實體目標的度量資訊,請使用 metrics dst 子指令:

imqcmd metrics dst -t q -n XQueue -m ttl -u admin

此指令會產生與以下相似的輸出 (請參閱表 18-4 中的資料說明):

 

-----------------------------------------------------------------------------

  訊息       訊息位元組           訊息計數        總訊息位元組 (k)         最大

輸入  輸出  輸入     輸出    目前    尖峰   平均    目前   尖峰      平均   訊息 (k)

-----------------------------------------------------------------------------

200  200  147200  147200     0     200    0      0      143      71        0  

300  200  220800  147200    100    200   10     71      143      64        0  

300  300  220800  220800     0     200    0      0      143      59        0  

 

若要取得實體目標的用戶相關資訊,請使用以下 metrics dst 子指令:

imqcmd metrics dst -t q -n SimpleQueue -m con -u admin

此指令會產生與以下相似的輸出 (請參閱表 18-4 中的資料說明):

 

------------------------------------------------------------------

      使用中用戶                 備份用戶                 訊息計數

 目前     尖峰    平均    目前    尖峰     平均     目前    尖峰  平均

------------------------------------------------------------------

   1       1      0        0       0      0       944    1000  525

 

imqcmd query

imqcmd query 的語法和選項顯示於表 10-6 中,並隨附該指令提供的度量資料說明。

表 10-6 imqcmd query 子指令語法

子指令語法

提供的度量資料

query bkr
    [-b hostName:port]

目前儲存於代理程式記憶體與永久性儲存之訊息數目和訊息位元組的資訊 (請參閱顯示代理程式資訊)

 

query svc -n serviceName
    [-b hostName:port]

目前已配置執行緒的數目和指定連線服務之連線數目的資訊 (請參閱顯示連線服務資訊)

 

query dst -t destType
    -n destName
    [-b hostName:port]

目前產生者、使用中和備份用戶,與用於指定目標中記憶體和永久性儲存中儲存的訊息和訊息位元組的資訊 (請參閱顯示實體目標資訊)


備註

因為 imqcmd query 提供有限的度量資料,所以未在第 18 章「度量參照」的表格中列出此工具。



撰寫應用程式來監視代理程式

Message Queue 提供度量監視功能,此功能可讓代理程式將度量資料寫入 JMS 訊息,接著並根據包含於訊息中的度量資訊類型,將其傳送到其中一個度量主題目標。

您可以藉由寫入訂閱度量主題目標、使用目標中的訊息並處理訊息中度量資訊的用戶端應用程式,來存取此度量資訊。

總共有 5 個度量主題目標。表 10-7 中顯示了這些目標的名稱,和傳送到每個目標的度量訊息類型。

表 10-7 度量主題目標

主題名稱

度量訊息的類型

mq.metrics.broker

代理程式度量

mq.metrics.jvm

Java 虛擬機器度量

mq.metrics.destination_list

目標及其類型的清單

mq.metrics.destination.queue.
monitoredDestinationName

用於指定名稱之佇列的目標度量

mq.metrics.destination.topic.
monitoredDestinationName

用於指定名稱之主題的目標度量

設定基於訊息的監視

本節描述使用基於訊息監視功能,收集度量資訊的程序。程序包括用戶端部署和管理工作。


若要設定基於訊息的監視
  1. 寫入度量監視用戶端。
  2. 請參閱 Message Queue Developer’s Guide for Java Clients,以取得設計用戶端訂閱度量主題目標、使用度量訊息並從這些訊息擷取度量資料的說明。

  3. 藉由設定 config.properties 檔案中的代理程式特性值,配置代理程式的度量訊息產生者:
    1. 啟用度量訊息產生。
    2. 設定 imq.metrics.topic.enabled=true

      預設為 true

    3. 設定產生度量訊息的間隔時間 (以秒為單位)。
    4. 設定 imq.metrics.topic.interval=interval

      預設為 60 秒鐘。

    5. 指定度量訊息是否為永久性訊息 (即它們是否為在代理程式發生故障後倖存)。
    6. 設定 imq.metrics.topic.persist

      預設為 false

    7. 指定度量訊息刪除前,保留在其個別目標中的時間長短。
    8. 設定 imq.metrics.topic.timetolive

      預設值為 300 秒。

  4. 設定任何您要在度量主題目標上的存取控制。
  5. 請參閱以下安全性與存取注意事項中的說明。

  6. 啟動度量監視用戶端。
  7. 用戶訂閱度量主題時,即會自動建立度量主題目標。一旦建立度量主題,代理程式度量訊息產生者會開始傳送度量訊息到度量主題。

安全性與存取注意事項

有兩個限制度量主題目標存取的原因:

由於這些考量,所以建議您限制度量主題目標的存取。

監視用戶端必須遵守與其他用戶端相同的認證和授權控制。只有 Message Queue 使用者儲存庫中的使用者可以連線到代理程式。

您可以藉由存取控制特性檔限制存取特定度量主題目標,藉以提供額外保護,如授權使用者:存取控制特性檔案中所述。

例如,以下 accesscontrol.properties 檔案中的項目會拒絕除了 user1 和 user2 以外的其他任何人存取 mq.metrics.broker 度量主題。

topic.mq.metrics.broker.consume.deny.user=*

topic.mq.metrics.broker.consume.allow.user=user1,user2

以下項目僅允許使用 user3 監視主題 t1。

topic.mq.metrics.destination.topic.t1.consume.deny.user=*

topic.mq.metrics.destination.topic.t1.consume.allow.user=user3

根據度量資料關聯,您也可以使用加密連線,將度量監視用戶端連線到代理程式。如需使用加密連線的資訊,請參閱使用基於 SSL 的服務

度量輸出:度量訊息

您使用基於訊息監視的 API 取得的度量資料輸出,為您寫入度量監視用戶端的函數。您僅受限於代理程式中度量產生器提供的資料。如需此資料的完整清單,請參閱度量參照



上一頁      目錄      索引      下一頁     


文件號碼 819-2220。   Copyright 2005 Sun Microsystems, Inc. 版權所有。