このページでは、エージェントのインストールとオペレーションのトラブルシューティング方法について説明します。特に、エージェントログファイルで情報を見つけ、解釈する方法を説明します。

Java エージェントの起動問題の解決

アプリケーションの起動時に Java エージェントがまず行うことは、コントローラへの登録です。一度登録されると、エージェントは Settings > AppDynamics Agents リストに表示されます。

数分以内にリストにエージェントが表示されない場合は、次の点を確認します。 

  1. アプリケーションサーバーを再起動したことを確認。
  2. javaagent 引数が JVM の起動スクリプトに追加されていることを確認。
  3. controller-info.xml ファイルでエージェントとコントローラ間の通信プロパティとエージェント識別プロパティを構成している、またはご使用の JVM の起動スクリプトのシステムプロパティとして構成していることを確認。「Javaエージェント構成プロパティ」を参照してください。
  4. agent.log ファイルについては、<agent_home>/ver<version_number>/logs/<node_name> のエージェント ログ ディレクトリをチェック。
  5. エージェントがコントローラと互換性があることを確認する。「エージェントとコントローラテナントの互換性」および「コントローラの問題のトラブルシューティング」を参照してください。

Java エージェントログファイルの場所

エージェントログファイルは <agent_home>/ver<version_number>/logs/<node_name> フォルダにあります。

このagent.logファイルは、トラブルシューティングに役立つ推奨ファイルです。このログから次の問題を知ることができます。

Javaエージェントの起動に関連するエラーメッセージは次のフォーマットを使用します。

ERROR com.singularity.JavaAgent - Could Not Start Java Agent
CODE

不完全なエージェント構成問題の解決

次の表は、不完全なエージェント構成に関する一般的なエラーメッセージをまとめたものです。

エラーメッセージ

解決策

エージェントに接続できません - com.singularity.XMLConfigManager のエラー -
不完全なエージェント ID データ、無効なコントローラポート値

controller-info.xmlにおけるコントローラポートの値が欠けていることを示しています。コントローラポートとホストの値を追加して解決します。

  • オンプレミスコントローラのインストールの場合、HTTP に 8090、HTTPS に 8181 を使用。 
  • コントローラSaaSサービスの場合、デフォルトのHTTPSポート443を使用。

原因:com.singularity.ee.agent.configuration.a:
エージェントコントローラの基本構成を解決できませんでした

通常、Controller-info.xmlファイルにおける不正確な構成が理由で起こります。

エージェントの通信(コントローラホストとポート)とエージェントID(アプリケーション、ティア、ノード名)の情報が正しく構成されていることを確認してください。

他の方法として、システムプロパティ(-Dオプション)または環境変数を使用して設定を構成することもできます。

コントローラポートのブロック解除

次の表は、ネットワーク上でコントローラポートがブロックされている時に表示されるよくあるエラーメッセージをまとめたものです。

エラーメッセージ

解決策

ERROR com.singularity.CONFIG.ConfigurationChannel - Fatal transport error: Connection refused
WARN com.singularity.CONFIG.ConfigurationChannel - Could not connect to the controller/invalid response from controller,
cannot get initialization information, controller host \x.x.x.x\, port 8090, exception Fatal transport error: Connection refused

アプリケーションエージェントを構成したマシンからコントローラへのネットワーク接続を確認してください。

ネットワーク上でポートがブロックされているかを確認するには、次のコマンドを使用します。

  • netstat -an (Windows の場合)
  • nmap(Linux の場合)。

デフォルトのポート:

  • オンプレミスコントローラのインストールの場合、HTTP に 8090、HTTPS に 8181 を使用。 
  • コントローラ SaaS サービスの場合、デフォルトの HTTPS ポート 443 を使用。

ファイル権限問題の修正

次の表は、ファイルの権限が正しくない時に表示されるよくあるエラーメッセージをまとめたものです。

エラーメッセージ

解決策

ERROR com.singularity.JavaAgent - Could Not Start Java Agent com.singularity.ee.agent.appagent.kernel.spi.c: Could not start services"

通常、ログファイルの権限が正しくないことが理由で発生します。解決するには、以下を実行します。

サーバーを実行しているユーザーが、そのエージェントディレクトリの読み込みおよび書き込み権限を持っているかどうか確認してください。

そのユーザーが chmod a-r と同等の権限を持っている場合、その権限を chmod a+r "<agent_home>" に変更します。

最大の非同期ハンドオフコールグラフのサンプルエラー

次のエラーは、非同期でのハンドオフ数が制限を超過していることを示しています。

"WARN AsyncHandOffIdentificationInterceptor - Reached maximum limit 500 of async handoff call graph samples. No more samples will be taken" Error

これは、トランザクションが非同期トランザクションとして誤認されている場合に発生する可能性があります。AppDynamics 3.6 以降では、app-agent-config.xml のエージェント構成により除外されていない限り、すべての Runnable、Callable、および Thread がデフォルトでインストゥルメント化されています。

一部の環境では、このためクラスのインストゥルメント化が過剰に行われたり、Clojure を使用する Groovy アプリケーションなど、非同期アクティビティに誤認される Runnable インターフェイスを実装するフレームワークに共通クラスが発生したりすることがあります。 

デバッグをするには、非同期アクティビティとして誤認されている非同期アクティビティのコールグラフを確認します。目的のものが見つかったら、実際は非同期アクティビティでないパッケージを排除します。詳細については、「Java エージェントのスレッドの関連付けの構成」を参照してください。

URL への接続中に致命的な転送エラーが発生しました

Java エージェントには、デフォルトで有効になっているネットワークの可視性が付属しています。このエラーは、ホストでネットワークの可視性エージェントプロセスが実行されていない場合に表示されます。

[AD Thread Pool-Global0] 27 Apr 2022 07:35:28,539 ERROR NetVizAgentRequest - Fatal transport error while connecting to URL http://127.0.0.1:3892/api/agentinfo?timestamp=0&agentType=APP_AGENT&agentVersion=1.11.4: org.apache.http.conn.HttpHostConnectException: Connect to 127.0.0.1:3892 [/127.0.0.1] failed: Connection refused (Connection refused) 

ご使用の環境でネットワークの可視性が必要ない場合は、このエラーを無視してかまいません。