AppDynamicsプロキシとは、以下のエージェントとコントローラ間の通信を処理するJavaデーモンプロセスです。

  • PHP
  • Python
  • Web サーバ

プロキシは、エージェントによって収集されたデータを格納、ベースライン化、および分析するコントローラに報告します。

このトピックでは、アプリケーションエージェントのコントローラへの接続問題や、データを正しく報告できない問題となる可能性のあるプロキシの問題を調査し、解決するのに役立つ基本的な情報を提示します。特定のエージェントにおけるプロキシの機能については、該当する [Related] ページを参照してください。

プロキシの基本

シングルまたはマルチテナント

Node.jsおよびPHPエージェントの場合、プロキシはエージェントの構成方法に応じてシングルテナント(エージェントごとに1つのプロキシ)またはマルチテナント(複数のエージェントが1つのプロキシを介して通信)にすることができます。このエージェントのデフォルト設定はシングルテナントですが、マルチテナントプロキシが必要または望ましい場合もあります。Apache WebサーバーとPythonエージェントは、マシンに複数のエージェントがある場合、常にマルチテナントプロキシを介して通信します。

自動または手動による起動とシャットダウン

通常、プロキシはアプリケーション エージェントの起動時に自動で起動されますが、場合によっては手動で起動する必要があります。特定のエージェントとアプリケーション環境の両方によって、異なるさまざまなケースがあります。

プロキシの起動後(自動または手動)、プロキシはコントローラに登録してエージェント構成を要求します。エージェントは、メトリックを報告する前にプロキシ経由でコントローラから構成を受信する必要があります。

プロキシが自動で開始された場合、エージェントは自身のクリーンアップ手順の一部としてプロキシをシャットダウンします。プロキシを手動で開始した場合は、手動でシャットダウンする必要があります。

プロキシログ

プロキシが実行中の場合は、プロキシログをチェックして接続の問題を調べることができます。

プロキシログファイルは proxy.<timestamp>.log という名前です。

プロキシが実行していない場合は、通常のJava起動シグネチャのエージェントログを調べて、プロキシが起動したかどうかを確認します。

次のログの場所については、エージェント固有のドキュメンテーションを確認してください。

プロキシが起動しない問題

プロキシが起動しないとエージェントは機能しません。

次のコマンドを実行してプロキシが起動したかを確認します。

ps aux|grep java

プロキシが実行中の場合は、以下の例のように、出力に「java」と「proxy」が表示されます。

/usr/lib/appdynamics-php5/proxy/jre/bin/java -server -Xmx120m -classpath /usr/lib/appdynamics-php5/proxy/conf/logging/*:/usr/lib/appdynamics-php5/proxy/lib/*:/usr/lib/appdynamics-php5/proxy/lib/tp/*:/usr/lib/appdynamics-php5/proxy/* -Djava.library.path=/usr/lib/appdynamics-php5/proxy/lib/tp -Dappdynamics.agent.logs.dir=/usr/lib/appdynamics-php5/logs -Dcomm=/tmp/ad-siJ4rp -DagentType=PHP_APP_AGENT -Dappdynamics.agent.runtime.dir=/usr/lib/appdynamics-php5/proxy com.appdynamics.ee.agent.proxy.kernel.Prox

プロキシが起動しない最も一般的な原因は、権限の不足です。

  • エージェントインストールディレクトリとプロキシ制御サブディレクトリは全員が読み取りおよび実行可能であり、ディレクトリ所有者が書き込み可能である必要があります。

    chmod -R 755 <agent_install_dir>
  • エージェントインストールディレクトリはインストゥルメント化されたアプリケーションのユーザーが所有している必要があります。このユーザーが誰になるかはプラットフォームにより異なります。Apache ユーザ、Python コンテナユーザ、Nginx ユーザ、node.js プロセスなどになります。

    chown -R <appuser>:<appsuser> <agent_install_dir>

プロキシが起動しない場合、これらの権限を設定して再試行してください。

プロキシ接続の問題

プロキシは起動しているがコントローラに接続できない場合は、誤ったコントローラ情報を使用している可能性があります。

プロキシログを調査し、コントローラのドメイン名またはポートにタイプミスがなく、SSL 接続の SSL 設定 が有効になっていることを確認します。間違いがある場合は、構成で Controller/port/SSL 値を編集します。エージェントを手動でインストールした場合、これらの設定は、エージェントダウンロードおよびインストールウィザードの最初のページ、またはエージェント設定(Node.jsのrequireステートメント)に表示されます。

コントローラの設定は正しく、それでもプロキシがコントローラに接続しない場合は、SaaS コントローラに Telnet で接続します。

telnet <your_account>.saas.appdynamics.com 443

Telnet経由でコントローラにアクセスできない場合は、ログでエージェント登録メッセージを確認し、サイトにファイアウォールやその他の障害物が存在するなど、プロキシが接続できない理由を調査します。管理者と協力して問題を解決できるかを確認してください。

Telnet経由でコントローラにアクセスできる場合は、コントローラ側の問題である可能性があります。