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以下のように変更します。
- エージェント
log4j
ファイルを開きます。# vim agentRoot/rhq-agent/conf/log4j.xml
- カテゴリーの
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> ...
- エージェントを再起動して、新しい設定を読み込みます。
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) ...