PHP エージェントは、PHP 7.4 の Zend Thread Safe(ZTS)をサポートしています。PHP エージェントは ZTS モードと統合されたため、PHP でマルチスレッド アプリケーションをインストゥルメント化するのに役立ちます。これにより、エンドツーエンドのビジネス トランザクション フローと exit コールを、相関関係やエンドツーエンドの可視性を損なうことなく表示できます。

PHP ZTS は現在、Linux(64 ビット)でのみサポートされています。

PHP エージェントのインストールの概要

コントローラ UI の開始ウィザードでは、PHP エージェントの設定およびインストールを手順にそって実行できます。インストーラは、PATH 環境変数で指定された PHP ディレクトリを使用してインストール場所を決定します。PATH 変数で指定されていない PHP インストールをインストゥルメント化する場合は、スクリプトインストーラを手動で設定して呼び出すことができます。

PHP エージェントは Linux OS マシンで実行されます。PHP エージェントは次の動作環境向けに設計されています。

  • 単一のPHPインストールがあります
  • 単一のApacheまたはFPMプールでPHPが動作
  • 標準パッケージが、PHP、Apache、PHP-FPM のインストールに使用されます
  • PHP 設定へのカスタマイズはありません

PHP エージェントは、すべての要件を満たしていない環境でも動作する場合があります。ただし、PHP エージェントとアプリケーションのインストールおよびテストは、十分な注意を払いステージング環境で行ってください。

前提条件

  • PHP ZTS がインストールされていることを確認します。
    AppDynamics PHP エージェントをインストールする前に、サポートされている PHP バージョンを使用していることを確認してください。PHP バージョンは次のコマンドを使用して確認できます。
php -i
CODE
  • PHP エージェントは enable-debug 設定オプションでビルドされた PHP アプリケーション、またはデバッグシンボルでコンパイルされたビルドでは機能しません。アプリケーションがデバッグシンボルでビルドされているかを確認するには、次のコマンドを使用します。
php -i | grep -e "Debug Build"
CODE

適切な応答は次のとおりです。

Debug Build => no
CODE
  • PHP エージェント ディストリビューションは、AppDynamics ダウンロードポータルから取得できます。ご使用のシステムに適したディストリビューション ファイルを取得してください。すべての Linux ディストリビューションで、PHP ZTS Agent 64-bit Linux というディストリビューションを使用します。
  • インストール時には、コントローラ接続設定およびこの PHP ノードの識別情報を指定する必要があります。開始ウィザードでは、手順にそってこの設定を実行できるので、初めて AppDynamics エージェントをインストールする場合は、
    開始ウィザードを使用することをお勧めします。コントローラ接続設定については、「エージェントとコントローラの接続」を参照してください。
  • インストゥルメンテーションを完了するには、Apache サーバを停止して起動する必要があります。必要に応じて、サービスユーザの中断を最低限にするような方法でインストールを実行してください。

特に実稼働環境では、PHP エージェントを他の AppDynamics 以外のアプリケーション パフォーマンス管理(APM)ツールと一緒にインストールしないでください。他のアプリケーション パフォーマンス管理(APM)製品が同じ管理対象の環境にインストールされている場合、PHP エージェントのインストールに失敗することがあります。

ZTS を使用する PHP エージェントのインストール

以下のトピックでは、さまざまなシナリオに対するインストールの詳細を説明しています。

cURL のインストールについては、「AppDynamics ソフトウェアのダウンロード」を参照してください。

PHP ZTS インストール後に追加されるファイル

PHP エージェントをインストールすると、次のファイルが追加されます。

  • コンフィギュレーション ファイル

AppDynamics の場合、PHP 構成ファイルは 2 つあります(php.ini および appdynamics_agent.ini  フラグメント)。AppDynamics 設定は、ご使用の PHP がインストールされているオペレーティングシステムに応じて、どちらかの .ini ファイルにあります。PHP エージェントインストーラは、php.ini f ファイルがあるディレクトリに appdynamics_agent.ini ファイルを追加します。このディレクトリは次のコマンドを使用して検索することができます。

php -i | grep -e "Additional .ini files parsed"
CODE

インストーラが PHP 展開の ini フラグメントが存在するディレクトリを特定できない場合は、必要な AppDynamics ini フラグメントが表示され、それをコピーしてメインの php.ini ファイルに貼り付ける指示が表示されます。構成ファイルが配置される可能性のある場所については、http://php.net/manual/en/configuration.file.php も参照してください。

  • .soファイル

インストーラは、PHP 拡張ディレクトリに appdynamics_agent.so ファイルもインストールします。このディレクトリは次のコマンドを使用して検索することができます。

php -i | grep extension_dir
CODE
  • ログ

各アプリケーションには、エージェントログとプロキシログがあります。デフォルトでは、エージェントログは $<php_agent_install>/logs/agent.log に書き込まれます。ログにはエージェントが処理してプロキシに送信するトランザクションが含まれます。エージェントログの命名におけるデフォルトのパターンは以下のとおりです。

  • agent.log:現在のログ
  • agent.log.1:最新のログ
  • agent.log.2:2 番目に最新のログ
  • agent.log.3:3 番目に最新のログ
  • agent.log.4:4 番目に最新のログ
  • agent.log.5:5 番目に最新のログ

サードパーティライブラリのライセンスは、エージェント インストール フォルダのディレクトリ license(appdynamics-php-zts-agent-linux_x64/license.)にあります。

PHP ノードへのマシンエージェントのインストール

PHP エージェントを実行しているノードに、マシンエージェントをインストールできます。ただし、PHP エージェントノードにマシンエージェントをインストールして、マシンエージェントの controller-info.xml  ファイルに階層およびノードの名前を指定すると、PHP エージェントはコントローラを正しく登録できません。

これを回避するには、次のようにします。

  • マシンエージェントをインストールする前に PHP エージェントをインストールします
  • インストゥルメント化された PHP ノードをホスティングするマシンにマシンエージェントをインストールする場合、マシンエージェントの controller-info.xml ファイルにアプリケーション、階層、またはノードの名前を指定しないでください。これを行うと PHP エージェントが登録に失敗する可能性があります。