Download PDF
Download page Node.js設定参考資料.
Node.js設定参考資料
このページでは、Node.js エージェントの構成に使用できる設定について説明します。
いくつかの設定に環境変数を使用することもできます。設定を適用するには、モニタリング対象アプリケーションの Node.js エージェントの require
ステートメントにそれらを追加します。
Node.js エージェントはバージョン 21.9 以降、プロキシをサポートしなくなりました。
一般設定
次の表は、アプリケーションコードに挿入する require ステートメントにある設定の完全なリストです。これらのすべての設定が必要なわけではありません。
プロパティ名 | 説明 |
---|---|
controllerHostName | コントローラの IP アドレスまたはホスト名。SaaS の場合は、AppDynamics からの Welcome メールにこの URL が記載。オンプレミスの場合は、コントローラのインストール時にこれらを設定。 |
controllerPort | エージェントがコントローラに接続するポート。オンプレミスコントローラの場合は 8090、SaaS コントローラの場合は 443。 |
controllerSslEnabled | SSL 経由でコントローラに接続する場合はこのプロパティを true に設定。 |
accountName | このエージェントがレポートするコントローラのアカウント名。 |
accountAccessKey | コントローラのアカウントアクセスキー。 |
applicationName | AppDynamicsコンソールの中のアプリケーション全体を示す名前。 |
tierName | フローマップで Node.js アプリケーションまたはサービスを示す名前。 |
nodeName | このエージェントにより監視されるNode.jsプロセスを示す名前。「Node Names」を参照してください。 |
noNodeNameSuffix | オプション。エージェントが -0、-1、-2 などのサフィックスをノード名に追加しないようにする場合は、true に設定。「Node Names」を参照してください。 |
proxyHost 、 proxyPort | プロキシサーバ経由でコントローラにデータをルーティングする場合は、これらのオプションを設定。proxyHost はプロキシサーバのホスト名または IP アドレス、proxyPort は、使用しているプロキシサーバーの HTTP または HTTPS ポートです。ホストを設定した場合、ポートも設定する必要があります。 |
proxyUser 、 proxyPasswordFile | プロキシサーバにログイン情報が必要な場合は、プロキシのユーザ名とパスワードファイルを構成。 |
proxy | Java プロキシバージョンの Node.js エージェントを使用する場合は、このプロパティを true に設定。 |
alwaysAddEumMetadataInHttpHeaders | リクエストがクロスオリジンであってもビジネストランザクションのメタデータを XHR ヘッダーと cookie に書き込むように Node.js エージェントを構成する場合は、このプロパティを true に設定します。「アプリケーションエージェントのノードプロパティ参照資料」の同等の設定 always-add-eum-metadata-in-http-headers に関する説明を参照してください。 |
btEntryPointDelayDisabled | true | false:オプション。デフォルトは false です。このプロパティを true に設定すると、ビジネストランザクションの起動を高速化できますが、分散トランザクションでのドリルダウンに悪影響を与える可能性があります。 |
debug | エージェントのデバッグレベルのログを有効にするには、このプロパティを true に設定。デフォルトは false。 |
logging | エージェントのログ記録に関連する場所、レベル、およびその他の設定。詳細については、Node.jsエージェントログを参照してください。 |
maxProcessSnapshotsPerPeriod | オンプレミスの場合、HTTPのデフォルトは8090、HTTPSのデフォルトは8181です。デフォルトは 2。processSnapshotCountResetPeriodSeconds の秒数で許可される自動プロセススナップショットの数。 |
processSnapshotCountResetPeriodSeconds | (省略可)デフォルトは 60 です。自動プロセス スナップショット カウントが 0 にリセットされる頻度(秒単位)。 |
autoSnapshotDurationSeconds | (省略可)デフォルトは 10 です。自動トリガーされるプロセススナップショットの長さ(秒単位)。 |
proxyAutolaunchDisabled | true | false:オプション。デフォルトは false です。このエージェントのプロキシを手動で起動する必要がある場合は、このプロパティを true に設定。詳細については、Node.jsのプロキシを手動で起動を参照してください。 |
proxyCtrlDir | エージェントがAppDynamicsノードを起動するために使用するドメイン制御ソケットを含むディレクトリ用のディレクトリパス。オプション。エージェントが設定。マルチテナントプロキシを設定する場合に、手動で設定する。詳細については、Node.js エージェント間でのプロキシの共有を参照してください。 |
rootTmpDir | エージェントのファイルを保存するディレクトリのルート用ディレクトリパス。オプション。デフォルトは |
tmpDir | 監視対象ノード用ルートディレクトリのサブディレクトリのディレクトリパス。オプション。デフォルトは、インストゥルメント化されたノードのコントローラ情報のハッシュ。 |
reuseNode | ノード名を再利用できるようにするには、このプロパティを true に設定します。このプロパティは、寿命が短いノードが多数ある環境のモニタリングに役立ちます。デフォルトは false。 注:Node.js プロセスの SIGTERM(15)シャットダウンは、 |
reuseNodePrefix | このプロパティを、reuseNode が true に設定されているときにノード名のプレフィックスとなる文字列に設定。コントローラはこのプレフィックスを使用して、ノード名を動的に生成します。 |
certificateFile | .pem SSL 証明書を含むディレクトリのディレクトリパス。 |
uniqueHostId | 一意のホスト ID は、ホストを識別する任意の値に設定できます。値を指定しない場合、エージェントによってホスト ID が生成されます。この設定は、プロキシなしバージョンの Node.js エージェントにのみ使用可能です。 |
分析の設定
デフォルトのトランザクションデータを分析エージェントに送信するように Node.js エージェントを構成できます。
分析のホストとポートの設定を次の形式で追加する場合、ホストとポート番号を指定します。分析エージェントは、Node.js エージェントと同じか、または異なるホストおよびポート番号について報告できます。
analytics: {
host: <analyticsHostName>,
port: <analyticsPortNumber>,
ssl: <true / false>
}
分析の設定では、サポートされているデータ型で変数の値を指定してください。
変数 | サポートされているデータ型 |
---|---|
host | 文字列 |
port | 番号 |
ssl | ブール型 |
分析データ制限を設定するには、「Node.js、PHP、および Python アプリケーション用のトランザクション分析の設定」を参照してください。
Windows 設定
Windows で、Node.js エージェントは追加のポートを 3 つ要求します。
proxyCommPort
:デフォルトは10101
proxyRequestPort
:デフォルトは10102
proxyReportingPort
:デフォルトは10103
詳細については、Windows での Node.js エージェントの実行を参照してください。
機密データのフィルタ
アプリケーションにコントローラに表示すべきではない機密データが含まれている場合は、Node.js エージェントの require ステートメントに次のデータフィルタを適用できます。
機密データフィルタを追加する
機密データフィルタを有効にすると、コントローラは一致する環境変数またはシステムプロパティの値に対してアスタリスクを表示します。
dataFilters: [{
"appliesTo": "http-headers",
"matchPattern": "host"
}],
環境変数フィルタ
デフォルトでは、Node.js エージェントは、大文字と小文字を区別しない部分文字列「password|key
」を含む環境変数/システムプロパティを使用して機密データフィルタを有効にします。
dataFilters: [{
"appliesTo": "env-vars",
"matchPattern": "password|key"
}],
機密 URL フィルタ
機密 URL フィルタを使用して、Transaction Snapshot詳細の URL から機密情報を難読化するようにエージェントを構成できます。
urlFilters: [{
"delimiter": "/",
"segment": "1",
"matchPattern": "a",
"paramPattern": "bar"
}],
機密 URL フィルタは、1 つのセグメントで matchPattern
をチェックします追加のセグメントを確認するには、追加の JSON 配列を追加します。
フィルタは、/aa/bb/cc
→ ***/bb/cc
の形式で要求を処理します。
matchpattern/parampattern
は標準の正規表現です。
プロパティ名 | 説明 |
---|---|
urlFilters | セグメントにルールを追加する場合は、オブジェクトをさらに追加できる配列。 |
delimiter | 必要な文字を URL セグメントエンドポイントとして指定します。エージェントは各区切り文字インスタンスでURLを接続してセグメントを作成します。 |
segment | 少なくとも 1 つの数字を昇順で指定する必要があります(3,5 や 2,6 など)。ワイルドカード(* )は使用できません。 |
URL セグメントフィルタ
matchpattern
正規表現を使用して、Node.js エージェントは指定されたセグメントをフィルタ処理するかどうかを決定します。
複数のルールがある場合は、一般的なルールの前に具体的なルールをリストします。配列にリストされているルールは、順序に基づいて評価されます。
ルール A:
{
'delimiter': '/',
'matchPattern': '[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}\/.{50,}',
'segment': '3,5'
}
ルール B:
{
'delimiter': '/',
'matchPattern': '[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}',
'segment': '3'
}
この例では、最初のルール A は 3 番目と 5 番目のセグメントをマスクするため、ルール B の前にルール A をリストする必要があります。
ルール B がルール A の前にリストされて評価された場合、3 番目のセグメントはマスクされますが、5 番目のセグメントはマスクされず、機密情報が漏洩する可能性があります。
URL パラメータフィルタ
paramPattern 正規表現を使用して、Node.js エージェントは指定されたクエリパラメータをフィルタ処理するかどうかを決定します。
すべての URL パラメータをマスクする必要がある場合は、さらに指示を配列に追加できます。
{ "delimiter": "/", "matchPattern": "", "segment": "99", "paramPattern": ".+"}
Node.js エージェントは、すべての URL パラメータをフィルタで除外します。
機密メッセージフィルタ
機密メッセージフィルタを使用して、エージェントがログメッセージから収集したテキストメッセージ、または例外からの詳細メッセージに含まれる機密情報を難読化するようにエージェントを構成できます。
messageFilters: [{
"messageType":
"throwable",
"matchPattern":
"Error.*MySQL.",
"redactionRegex": "SQL"
}]
環境変数
requireステートメントで必要な設定を指定していない場合、エージェントは以下の環境設定の値を使用します(すでにその変数が設定済みの場合)。両方が設定されている場合、require
ステートメントの値が環境変数より優先されます。
環境変数 | へのマップ |
---|---|
APPDYNAMICS_CONTROLLER_HOST_NAME | controllerHostName |
APPDYNAMICS_CONTROLLER_PORT | controllerPort |
APPDYNAMICS_CONTROLLER_SSL_ENABLED | controllerSslEnabled |
APPDYNAMICS_AGENT_ACCOUNT_NAME | accountName |
APPDYNAMICS_LOGGER_OUTPUT_TYPE | ユーザーは、値を console に設定することで、stdout にログをストリーミングできます。 |
| エージェントのログレベルを設定できます。 可能な値は |
APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY | accountAccessKey |
APPDYNAMICS_AGENT_APPLICATION_NAME | applicationName |
APPDYNAMICS_AGENT_TIER_NAME | tierName |
APPDYNAMICS_AGENT_NODE_NAME | nodeName |
APPDYNAMICS_AGENT_UNIQUE_HOST_ID | - |
APPDYNAMICS_ANALYTICS_HOST_NAME | host (Analytics 設定内) |
APPDYNAMICS_ANALYTICS_PORT | port (Analytics 設定内) |
APPDYNAMICS_ANALYTICS_SSL_ENABLED | ssl (Analytics 設定内) |
UNIQUE_HOST_ID |
一意のホスト ID は、ホストを識別する任意の値に設定できます。値を指定しない場合、エージェントによってホスト ID が生成されます。 この環境変数はデフォルトで使用できます(Java プロキシモードでは使用できません)。 |