PHP エージェントが起動すると、PHP エージェントとコントローラ間の通信を処理する Java プロキシが自動で起動します。 

プロキシの自動起動はほとんどの状況で機能します。しかし、このスクリプトの自動起動を抑制し、手動で実行することも可能です。これは次の場合に有効です。

  • PHP CLIエントリポイントをインストゥルメント化する予定の場合。PHP CLIエントリポイントには、プロキシの手動起動および起動時のノードの即時作成が必要。
  • 同じマシン上で同じプロキシに報告する複数のApacheまたはFPMプールがある場合。

これを行うには、まず手動でプロキシを起動するようにエージェントを構成する必要があります。その後にプロキシを手動で起動する必要があります。 

エージェントを手動で起動するように構成

PHPエージェントの構成は、手動起動を反映するように変更する必要があります。

エージェントを手動で起動するように構成するには

  1. PHP構成ファイルを編集用に開きます。このファイルはセットアップにより、php.ini または appdynamics_agent.ini です。
  2. agent.auto_launch_proxy 設定を 0 に設定します。
  3. agent.proxy_script を、使用する runproxy のパスに設定します。スクリプトのファイルは、PHPエージェントのルートの相対パスです。必要であれば絶対パスを指定することができます。
  4. agent.proxy_ctrl_dirエージェントとプロキシ間の初期制御通信に使用するディレクトリに設定します。このディレクトリには、エージェントがAppDynamicsノードの起動に使用するドメイン制御ソケットが含まれます。このディレクトリは、エージェントがノードの構成を取得する場所です。アプリケーションユーザは proxy_ctrl_dir の読み取り権限が必要です。

PHP エージェントをインストールすると、インストーラは runproxy スクリプトと appdynamics_agent.ini ファイルを上書きしますが、php.ini ファイルは上書きしません。再インストールする場合は、サーバを再起動する前に appdynamics_agent.ini ファイルの agent.auto_launch_proxy 設定をリセットする必要があります。

プロキシの実行

インストゥルメント化されたサーバでトラフィックを実行する前に、runProxy スクリプトを実行してプロキシを起動します。

次に、runProxy スクリプトのオプションをすべて示します。プロキシ制御ディレクトリは必須です。 

Usage: runProxy options -- proxyCommunicationDir logDirectory [jvmOption=jvmOptionValue [ jvmOption=jvmOptionValue [...] ]

Options:
  -r <dir>, --proxy-runtime-dir=<dir>     #Specifies proxy runtime directory
  -d <dir>, --proxy-dir=<dir>             #Specifies root proxy directory
  -j <dir>, --jre-dir=<dir>               #Specifies root JRE directory
  -v, --verbose                           #Enable verbose output
  -h,--help                               #Show this 

jvmOption
 -Dappdynamics.controller.hostName=<hostName>	         #Set the host name or IP address of the AppDynamics Controller                                                                                                                                    
 -Dappdynamics.controller.port=<port>                    #Set the HTTP(S) port of the AppDynamics Controller
 -Dappdynamics.agent.applicationName=<applicationName>   #Set the name of the logical business application
 -Dappdynamics.agent.tierName=<tierName>          		 #Set the name of the logical tier
 -Dappdynamics.agent.nodeName=<nodeName>                 #Set the name of the instrumented node
 -Dappdynamics.agent.accountName=<accountName>           #Set the account name used to authenticate with the Controller
 -Dappdynamics.agent.accountAccessKey=<accessKey>        #Set the account access key used to authenticate with the Controller
 -Dappdynamics.controller.ssl.enabled=<true>             #Set if the agent should use SSL (HTTPS) to connect to the Controller
 -Dappdynamics.agent.uniqueHostId=<uniqueHostId>         #Set a unique host ID for the App agents
JS

次に例を示します。

./proxy/runProxy -d ./proxy -r /tmp/appd/my_app/my_tier/my_node /tmp/proxy.communication /tmp/agentLogs


./proxy/runProxy /tmp/proxy.communication /tmp/agentLogs -Dappdynamics.controller.hostName=controller.appd.com -Dappdynamics.controller.port=8090 -Dappdynamics.agent.uniqueHostId=myUniqueHost 

./proxy/runProxy -d ./proxy /tmp/proxy.communication /tmp/agentLogs -Dappdynamics.agent.accountName=myAccount -Dappdynamics.agent.accountAccessKey=mYaCcEsSkEy

./proxy/runProxy -r /tmp/appd/app1/tier1/node1 /tmp/proxy.communication /tmp/agentLogs -Dappdynamics.agent.applicationName=my_app -Dappdynamics.agent.tierName=my_tier -Dappdynamics.agent.nodeName=my_node

エージェントが最初にトラフィックを検出したときに、ノードが作成されます。

プロキシを手動で開始するように選択した場合は、サーバを再起動するたびに runProxy スクリプトを実行する必要があります。