Red Hat Training

A Red Hat training course is available for Red Hat JBoss Operations Network

7.6. エージェントのデバッグモードの有効化

JBoss ON サーバーなどの JBoss ON エージェントはロギングに使用 log4j します。エージェントのパフォーマンスまたはサーバーエージェント通信をトラブルシューティングするには、エージェントのデバッグロギングを有効にし、log4j デバッグログを有効にします。
ログファイルは agentRoot/rhq-agent/logs ディレクトリーにあります。

7.6.1. 環境変数の使用

デバッグロギングを有効にする最も簡単な方法は、 RHQ_AGENT_DEBUG エージェントを起動する前の任意の値への環境変数。エージェントを起動すると、ランチャースクリプトとエージェント自体の両方がデバッグメッセージを出力します。
サービスラッパーを使用して JBoss ON エージェントが Microsoft Windows で実行している場合は、設定 RHQ_AGENT_DEBUG サービスをインストールします。
rhq-agent-wrapper.bat install

7.6.2. log4j の優先度の設定

log4j カテゴリーはロギングレベルの 優先順位 をサポートします。つまり、エージェントのさまざまな領域をログレベルごとに設定できます。
注記
は設定しません。 RHQ_AGENT_DEBUG log4j.xml ファイルに優先順位を設定する場合の環境変数。環境変数によりこの log4j.xml 設定が上書きされます。
カテゴリーのデバッグロギングを有効にするには、priority の値を DEBUG以下のように変更します。
  1. エージェント log4j ファイルを開きます。
    # vim agentRoot/rhq-agent/conf/log4j.xml
  2. カテゴリーの priority 要素をリセットします。デフォルトでは、エージェント設定には、送受信サーバーエージェント通信とベース両方のログ記録があります。 org.rhq クラス。オプションで、プラグインクラスローダーと JBoss リモーティング通信に対してロギングを有効にできます。
       <!-- ================ -->
       <!-- Limit categories -->
       <!-- ================ -->
    
       <!-- RHQ -->
       <category name="org.rhq">
          <priority value="INFO"/>
       </category>
    
       <!-- RHQ outgoing command tracing  - set to TRACE to trace commands sent by the agent -->
       <category name="org.rhq.enterprise.communications.command.client.OutgoingCommandTrace">
          <priority value="NONE"/>
          <appender-ref ref="COMMANDTRACE"/>
       </category>
       ...
  3. エージェントを再起動して、新しい設定を読み込みます。
log4j ファイル形式の詳細は Apache log4j ドキュメントを参照してください

7.6.3. Agent debug プロンプトコマンドの使用

デバッグロギングは、エージェントコマンドプロンプト(「エージェントのコマンドプロンプトを開く」)で debug コマンドを使用して有効にできます。
--enable オプションを使用すると、log4j デバッグログが有効になります。
> debug --enable
log4j:WARN No appenders could be found for logger (org.rhq.core.pc.measurement.MeasurementCollectorRunner).
log4j:WARN Please initialize the log4j system properly.
Switched to log file [log4j-debug.xml]. Root log level is [DEBUG]
started>
サーバーエージェント通信層専用のデバッグロギングを有効にするには、--comm オプションを true に設定します。
> debug --comm=true
Agent-server communications tracing has been enabled.
You may set the following, additional configuration settings
to collect more detailed trace data. You can set these
using the setconfig prompt command. Please refer to the
documentation for more information on these settings. The
values you see here are the current settings:
   rhq.trace-command-config=true
   rhq.trace-command-response-results=256
   rhq.trace-command-size-threshold=99999
   rhq.trace-command-response-size-threshold=99999
この debug コマンドは、--threaddump オプションを使用してサーバーおよびシステム管理ハンドラーに対してすべてのエージェントスレッドを確認することもできます。これにより、スレッドが実行されているか、スレッドごとに、エージェントが直面しているかどうかに関わらず、各スレッドの情報を出力します。例:
> debug --threaddump
"DestroyJavaVM" Id=47 RUNNABLE


"RHQ Agent Prompt Input Thread" Id=46 RUNNABLE


"EventManager.sender-2" Id=49 TIMED_WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@17d7c01
        at sun.misc.Unsafe.park(Native Method)
        -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@17d7c01
        at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2081)
        at java.util.concurrent.DelayQueue.take(DelayQueue.java:193)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:688)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:681)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1043)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1103)
 ...