![]() | |
Sun Java System Message Queue 3 2005Q1 管理指南 |
第 10 章
監視訊息伺服器本章描述可用來監視訊息伺服器的工具,以及如何取得度量資料。本章有下列幾節:
有關特定度量的參照資訊,請參閱第 18 章「度量參照」。
監視工具簡介Message Queue 資訊有三個監視介面:記錄檔、互動式指令,和可以取得度量的用戶端 API。各有下列優點和缺點:
表 10-1 比較不同的工具。
除了表格中顯示的差異性之外,每個工具皆會收集代理程式產生的不同度量資訊子集。如需每個監視工具收集的度量資料的詳細資訊,請參閱第 18 章「度量參照」。
配置及使用代理程式記錄功能Message Queue 記錄程式會取得代理程式程式碼產生的資訊、除錯程式和度量產生器,並將資訊寫入一些輸出通道:標準輸出 (主控台)、記錄檔及 Solaris 作業系統上的 syslog (系統記錄) 常駐程式程序。
您可以指定記錄程式收集的資訊類型,以及寫入每個輸出通道的類型。要特別注意的是,您可以指定您要寫入記錄檔的度量資訊。
本節描述代理程式的預設記錄配置,並介紹如何將記錄資訊重新導向至替代輸出通道、如何變更記錄檔自動重建條件,以及如何將度量資料傳送到記錄檔。
預設記錄配置
代理程式會自動配置將記錄輸出儲存到一組自動重建的記錄檔中。這些記錄檔位於以相關代理程式實例名稱辨別的目錄中 (請參閱附錄 A「Message Queue 資料的作業系統特定位置」):
…/instances/instanceName/log/
記錄檔為純文字檔案。它們命名如下,從最舊的到最新的:
log.txt
log_1.txt
log_2.txt
…
log_9.txt依預設,記錄檔每週自動重建一次;系統保留九個備份檔案。
代理程式支援三種記錄級別:ERROR、WARNING、INFO。表 10-2 解釋了每個級別的意義。
設定記錄級別可收集此級別以上 (含此級別) 的訊息。預設級別是 INFO,因此依預設,ERROR、WARNING 和 INFO 訊息會全部記錄 。
記錄訊息格式
記錄的訊息包含時間戳記、訊息程式碼和訊息本身。資訊容量因您所設定的記錄級別而有所不同。以下為 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 中描述了記錄的相關特性。
變更代理程式的記錄程式配置您可以透過設定記錄程式特性完成這些步驟。您可以用以下兩種方法之一執行此作業:
在指令行上傳送的選項覆寫在代理程式實例配置檔案中指定的特性。表 10-3 列出了影響記錄的 imqbrokerd 選項。
以下各節描述如何變更預設配置以便執行以下作業:
變更輸出通道
依預設,錯誤和警告訊息既可在終端機上顯示,也可記錄至記錄檔 (在 Solaris 上,錯誤訊息還可寫入至系統的 syslog 常駐程式)。
您可以用以下方法變更記錄訊息的輸出通道:
- 若要使所有記錄種類 (對於給定的級別) 輸出顯示在畫面上,請使用 imqbrokerd 指令的 -tty 選項。
- 若要避免記錄輸出顯示在畫面上,請使用 imqbrokerd 指令的 -silent 選項。
- 使用 imq.log.file.output 特性指定應寫入至記錄檔的記錄資訊的種類。例如,
imq.log.file.output=ERROR
- 使用 imq.log.console.output 特性指定應寫入至主控台的記錄資訊的種類。例如,
imq.log.console.output=INFO
- 在 Solaris 上,使用 imq.log.syslog.output 特性指定應寫入至 Solaris syslog 的記錄資訊的種類。例如,
imq.log.syslog.output=NONE
變更記錄檔自動重建條件
有兩個條件用於自動重建記錄檔:時間和容量。預設為使用時間條件,每七天自動重建一次檔案。
如果您同時設定了與時間相關的和與容量相關的特性,則先達到的限制將啟動自動重建。如上所述,代理程式最多可保留九個自動重建檔案。
代理程式執行時,您可以設定或變更記錄檔自動重建特性。若要設定這些特性,請使用 imqcmd update bkr 指令。
將度量資料傳送到記錄檔
本節描述使用代理程式記錄檔報告度量資訊的程序。如需配置記錄程式的一般資訊,請參閱配置及使用代理程式記錄功能。
若要使用記錄檔報告度量資訊下面是代理程式度量輸出到記錄檔的範例:
如需度量資料的參照資訊,請參閱第 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 子指令
- 啟動需要度量資訊的代理程式。
請參閱以互動方式啟動代理程式。
度量輸出: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用於指定名稱之主題的目標度量
設定基於訊息的監視
本節描述使用基於訊息監視功能,收集度量資訊的程序。程序包括用戶端部署和管理工作。
若要設定基於訊息的監視
- 寫入度量監視用戶端。
請參閱 Message Queue Developer’s Guide for Java Clients,以取得設計用戶端訂閱度量主題目標、使用度量訊息並從這些訊息擷取度量資料的說明。
- 藉由設定 config.properties 檔案中的代理程式特性值,配置代理程式的度量訊息產生者:
- 設定任何您要在度量主題目標上的存取控制。
請參閱以下安全性與存取注意事項中的說明。
- 啟動度量監視用戶端。
用戶訂閱度量主題時,即會自動建立度量主題目標。一旦建立度量主題,代理程式度量訊息產生者會開始傳送度量訊息到度量主題。
安全性與存取注意事項
有兩個限制度量主題目標存取的原因:
由於這些考量,所以建議您限制度量主題目標的存取。
監視用戶端必須遵守與其他用戶端相同的認證和授權控制。只有 Message Queue 使用者儲存庫中的使用者可以連線到代理程式。
您可以藉由存取控制特性檔限制存取特定度量主題目標,藉以提供額外保護,如授權使用者:存取控制特性檔案中所述。
例如,以下 accesscontrol.properties 檔案中的項目會拒絕除了 user1 和 user2 以外的其他任何人存取 mq.metrics.broker 度量主題。
以下項目僅允許使用 user3 監視主題 t1。
topic.mq.metrics.destination.topic.t1.consume.deny.user=*
topic.mq.metrics.destination.topic.t1.consume.allow.user=user3
根據度量資料關聯,您也可以使用加密連線,將度量監視用戶端連線到代理程式。如需使用加密連線的資訊,請參閱使用基於 SSL 的服務。
度量輸出:度量訊息
您使用基於訊息監視的 API 取得的度量資料輸出,為您寫入度量監視用戶端的函數。您僅受限於代理程式中度量產生器提供的資料。如需此資料的完整清單,請參閱度量參照。