このページでは、Windows マシンで Node.js エージェントを Java プロキシモードで実行する方法について説明します。
プロキシポート
WindowsのNode.js環境によっては、Node.jsのrequireステートメントに3つのポートを設定する必要があります。これらのポート設定は以下のとおりです。
proxyCommPort
:デフォルトは 10101
proxyRequestPort
:デフォルトは 10102
proxyReportingPort
:デフォルトは 10103
3 つのポートはすべて、1024 〜 65535 の範囲に含まれる必要があります。
Windows環境の自動起動
デフォルトの動作では、エージェントは Java プロキシを自動起動します(proxyAutolaunchDisabled
は false
)。
エージェントの自動起動を許可し、マシンごとに 1 つの Node.js プロセスがある場合、エージェントは利用可能なデフォルトのポート値を自動的に使用します。この場合、これらの設定を行う必要はありません。
デフォルトのポートが使用できない場合は、require
ステートメントでこれらの設定を require ステートメントで利用可能なポートに構成します。
1台のマシンに複数のNode.jsプロセスがあり、それぞれが独自のプロキシに報告している場合、各プロセスには独自のポートが必要です。この場合、各プロセスの require
ステートメントで 3 つのポートすべてに固有の設定を構成します。
Windows環境の手動起動
一部の環境では同じマシンで複数のNode.jsプロセスが存在し、すべてが単一のプロキシに報告されます。これらの環境では、手動でプロキシを起動し(proxyAutolaunchDisabled
は true
)、3 つのポート設定を構成する必要があります。
require
ステートメントの proxyCommPort
設定と runProxy.cmd
の commPort
オプションは同じ値である必要があります。エージェントとプロキシには同じポートを使用する必要があります。
proxyRequestPort
と proxyReportingPort
は 2 つの未使用の TCP ポートです。プロキシを実行するユーザには、Windows でこれらのポートにバインドする権限があります。
1 台のマシンにおけるそれぞれのアプリケーション、ティア、ノードの組み合わせでは、異なる要求ポートと報告ポートを使用する必要があります。同じアプリケーションティアノードとして報告する2つのプロセスは、同じ要求および報告ポートを使用する場合があります。各アプリケーション/ティア/ノードの組み合わせごとに、これらのポートを require
ステートメントに設定します。
WindowsでrunProxyを手動で実行する
デフォルトでは、プロキシコンポーネントはエージェントを起動すると自動で開始します。プロキシを手動で起動するようにエージェントを構成している場合は、次のコマンドを使用します。
インストゥルメントされたサーバでトラフィックを実行する前に、runProxy.cmd
を実行し、以下の構文を使用してプロキシを開始します。-d
オプションを選択する場合は、-j
オプションの前に指定する必要があります。
Usage: runProxy.cmd [-d <proxyDir>] -j <jreDir> [logDir] [commPort]
Options:
-d <proxyDir> the directory where the proxy is installed; optional, defaults to the directory containing the runProxy.cmd script
-j <jreDir> the directory where the JRE is installed; required
logDir the directory the proxy should log to; optional, defaults to <proxyDir>\logs
[commPort] port used for the proxy control channel on Windows; defaults to 10101; if specified it must match the proxyCommPort setting in the require statement
CODE
次の例では、コマンドがエージェントによりインストゥルメントされた Node.js アプリケーションの root から実行されることを前提としています。
.\node_modules\appdynamics\node_modules\appdynamics-proxy\proxy\runProxy.cmd
-j .\node_modules\appdynamics\node_modules\appdynamics-jre\jre /var/log/proxy
.\node_modules\appdynamics\node_modules\appdynamics-proxy\proxy\logs
10101
CODE
WindowsタスクスケジューラでrunProxyコマンドを手動で実行する
WindowsタスクスケジューラでrunProxyコマンドをスケジュールできます。
- タスクスケジューラを開きます。
- Create Basic Task をクリックします。
- [General] タブで、タスクの名前を入力します。
- [Run whether user is logged on or not] を選択します。
- [Run with highest privileges] を確認します。
- [Triggers] タブで、新しいトリガーを追加します。コンピューターの起動時にトリガーを設定してください。
- [Actions] タブで、新しいアクションを作成します。アクションを [Start a program] に設定します。
- Program/script フィールドに、
<app_root>/node_modules/appdynamics-proxy/proxy/runProxy.cmd
と入力します。 - Add arguments フィールドに、
-d <app_root>/node_modules/appdynamics-proxy -j <app_root>/node_modules/appdynamics-jre/jre %TEMP% 10101
と入力します。 - Start in フィールドに、
<app_root>/node_modules/appdynamics-proxy/proxy
と入力します。 - [OK] をクリックしてウィザードを終了します。
- システムを再起動し、タスクマネージャでJavaプロセスを確認します。