AppDynamics プロキシとは、以下のエージェントとコントローラ間の通信を処理する Java デーモンプロセスです。
プロキシは、エージェントによって収集されたデータを格納、ベースライン化、および分析するコントローラに報告します。
このページでは、アプリケーション エージェントのコントローラへの接続や、データの正しい報告ができなくなる可能性のあるプロキシの問題を調査し、解決するために使用できる情報について説明します。特定のエージェントにおけるプロキシの機能については、該当する [Related] ページを参照してください。
プロキシの基本
シングルまたはマルチテナント
PHP エージェントの場合、プロキシはエージェントの構成方法に応じてシングルテナント(エージェントごとに 1 つのプロキシ)またはマルチテナント(複数のエージェントが 1 つのプロキシを介して通信)にすることができます。これらのエージェントのデフォルト設定はシングルテナントですが、マルチテナントプロキシが必要または望ましい場合もあります。Apache WebサーバーとPythonエージェントは、マシンに複数のエージェントがある場合、常にマルチテナントプロキシを介して通信します。
自動または手動による起動とシャットダウン
通常、プロキシはアプリケーション エージェントの起動時に自動で起動されますが、場合によっては手動で起動する必要があります。特定のエージェントとアプリケーション環境の両方によって、異なるさまざまなケースがあります。
プロキシの起動後(自動または手動)、プロキシはコントローラに登録してエージェント構成を要求します。エージェントは、メトリックを報告する前にプロキシ経由でコントローラから構成を受信する必要があります。
プロキシが自動で開始された場合、エージェントは自身のクリーンアップ手順の一部としてプロキシをシャットダウンします。プロキシを手動で開始した場合は、手動でシャットダウンする必要があります。
プロキシログ
プロキシが実行中の場合は、プロキシログをチェックして接続の問題を調べることができます。
プロキシログファイルは proxy.<timestamp>.log
という名前です。
プロキシが実行していない場合は、通常のJava起動シグネチャのエージェントログを調べて、プロキシが起動したかどうかを確認します。
次のログの場所については、エージェント固有のドキュメンテーションを確認してください。
- PHP:デフォルトは
<php_agent_install_dir>/logs
です。「PHPエージェントのインストール」を参照してください。 - Python:デフォルトは
/tmp/appd/logs
です。「Pythonエージェントのデバッグとログ」を参照してください。 - Web サーバ:
<webserver_agent_install>/logs/proxy_$date.lo
プロキシが起動しない問題
プロキシが起動しないとエージェントは機能しません。
次のコマンドを実行してプロキシが起動したかを確認します。
プロキシが実行中の場合は、以下の例のように、出力に「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
CODE
プロキシが起動しない最も一般的な原因は、権限の不足です。
エージェントインストールディレクトリとプロキシ制御サブディレクトリは全員が読み取りおよび実行可能であり、ディレクトリ所有者が書き込み可能である必要があります。
chmod -R 755 <agent_install_dir>
CODE
エージェントインストールディレクトリはインストゥルメント化されたアプリケーションのユーザーが所有している必要があります。このユーザーが誰になるかはプラットフォームにより異なります。Apache ユーザ、Python コンテナユーザ、Nginx ユーザなどになります。
chown -R <appuser>:<appsuser> <agent_install_dir>
CODE
プロキシが起動しない場合、これらの権限を設定して再試行してください。
プロキシ接続の問題
プロキシは起動しているがコントローラに接続できない場合は、誤ったコントローラ情報を使用している可能性があります。
プロキシログを調査し、コントローラのドメイン名またはポートにタイプミスがなく、SSL 接続の SSL 設定 が有効になっていることを確認します。間違いがある場合は、構成で Controller/port/SSL 値を編集します。エージェントを手動でインストールした場合、これらの設定は、エージェントダウンロードおよびインストールウィザードの最初のページ、またはエージェント設定に表示されます。
コントローラの設定が正しいにもかかわらずプロキシがコントローラに接続しない場合は、SaaS コントローラに Telnet で接続します。
telnet <your_account>.saas.appdynamics.com 443
CODE
Telnet 経由でコントローラにアクセスできない場合は、ログでエージェント登録メッセージを確認し、サイトにファイアウォールやその他の障害物が存在するなど、プロキシが接続できない理由を調査します。管理者と協力して問題を解決できるかを確認してください。
Telnet 経由でコントローラにアクセスできる場合は、コントローラ側の問題である可能性があります。