Node.js エージェントの構成

エージェントがアプリケーションのモニターを開始できるようにするには、その前に Node.js アプリケーションにエージェント・データ・コレクターを追加して、アプリケーションを再始動する必要があります。

始める前に

同じバージョン内でエージェント設定を再構成する前に、以下のステップを実行して、以前の構成で作成されたデータ・コレクター・ファイルをクリーンアップします。
  1. install_dir/lx8266/nj/bin ディレクトリーに移動します。
  2. ./uninstall.sh コマンドを実行して、既存のデータ・コレクター・ファイルを削除します。

このタスクについて

Node.js エージェントは単一インスタンス・エージェントです。このエージェントはモニター対象の各 Node.js アプリケーションのサブノードを登録します。サブノードの構造は、以下のとおりです。

NJ:hostname_port:NJA
ヒント: ある Node.js アプリケーションが複数のポート番号を listen する場合、最も低いポート番号が使用されます。
エージェントがアプリケーションのモニターを開始できるようにするには、その前に Node.js アプリケーションにエージェント・データ・コレクターを追加して、アプリケーションを再始動する必要があります。エージェント・データ・コレクターは、Node.js エージェントに転送されるデータを収集します。現在、以下のエージェント・データ・コレクターが用意されています。
  • リソース・データ・コレクター。Node.js アプリケーションからリソース・モニター・データを収集します。
  • 診断データ・コレクター。Node.js アプリケーションから診断データおよびリソース・モニター・データを収集します。
  • メソッド・トレース・データ・コレクター。Node.js アプリケーションからメソッド・トレース、診断データ、およびリソース・モニター・データを収集します。

手順

  1. アプリケーション・サーバーの実行に使用するユーザー ID にエージェントの install_dir ディレクトリーに対するすべての権限が付与されていることを確認してください。
  2. install_dir/bin ディレクトリーに移動し、次のコマンドを実行します。
    ./nodejs-agent.sh config
  3. プロンプトに従って、以下の構成オプションの値を指定します。
    KNJ_NODEJS_RUNTIME_BIN_LOCATION
    Node.js ランタイムの bin フォルダーのディレクトリー。デフォルトのディレクトリーは、/usr/local/bin です。
    KNJ_NPM_RUNTIME_BIN_LOCATION
    npm コマンドの bin フォルダーのディレクトリー。デフォルトのディレクトリーは、/usr/local/bin です。
    KNJ_NPM_LIB_LOCATION
    npm パッケージのグローバル・インストール・ディレクトリーの lib フォルダーのディレクトリー。デフォルトのディレクトリーは、/usr/local/lib です。例えば、npm install -g コマンドを実行して npm パッケージをインストールした場合、パッケージは /nodejs_home/lib/node_modules にインストールされます。この場合、KNJ_NPM_LIB_LOCATION/nodejs_home/lib です。
    CP_PORT
    ソケット・クライアントからのデータに関してエージェントが listen するポート。値 0 は、一時ポートが使用されることを示します。デフォルト値は 63336 です。
    注: システムで既に使用されているポート番号は使用しないでください。ポートが既に使用中かどうかを確認するには、netstat -apn | grep port_number コマンドを実行します。
  4. 以下のコマンドを実行してエージェントを開始します。
    ./nodejs-agent.sh start
  5. Node.js エージェントが正常に開始されていることを確認します。エージェントが正常に開始した場合、KNJ_NPM_LIB_LOCATION/node_modules/ibmapm フォルダーが生成されています。
  6. 所有するオファリングと要件に基づいて、エージェント・データ・コレクターを構成するために Node.js アプリケーションの .js ファイルに次のいずれかの項目を挿入します。
    注: エージェント・データ・コレクター機能を有効にするために Node.js アプリケーションに追加できる項目は 1 つのみです。また、オファリングに含まれていない機能を有効にした場合、不要なオーバーヘッドが生じ、アプリケーションの実行効率が低下する可能性があります。
    • リソース・モニター機能のみを所有している場合は、リソース・データ・コレクターを追加できます。これを追加するには、Node.js アプリケーション・ファイルの先頭に以下の行を挿入します。
      require('KNJ_NPM_LIB_LOCATION/node_modules/ibmapm');
      ご使用の環境の KNJ_NPM_LIB_LOCATION の値が /usr/local/lib の場合、この行は、以 下のとおりです。
      require('/usr/local/lib/node_modules/ibmapm');
    • リソース・レベルのモニター機能に加えて診断機能を保持している場合は、次のいずれかのエージェント・データ・コレクターを追加できます。
      • メソッド・トレース・データ・コレクターを追加するには、Node.js アプリケーション・ファイルの先頭に以下の行を挿入します。
        require('KNJ_NPM_LIB_LOCATION/node_modules/ibmapm/methodtrace.js');
      • 診断データ・コレクターを追加するには、Node.js アプリケーション・ファイルの先頭に以下の行を挿入します。
        require('KNJ_NPM_LIB_LOCATION/node_modules/ibmapm/deepdive.js');
      • リソース・モニター・データ・コレクターを追加するには、Node.js アプリケーション・ファイルの先頭に以下の行を挿入します。
        require('KNJ_NPM_LIB_LOCATION/node_modules/ibmapm');

      最適なパフォーマンスを保証するには、デバッグのためにメソッド・トレース・データ・コレクターのみを追加します。

    注: プラグインのコードは、Cloud APM March, 2017 から変更されています。以前のバージョンからエージェントをアップグレードした場合は、モニター機能が正常に動作するようにするには、アプリケーション内の既存のデータ・コレクターのコードを更新する必要があります。
  7. Node.js アプリケーションを再始動して、エージェント・データ・コレクターを有効にします。

タスクの結果

Node.js エージェントが正常に構成されました。

次のタスク

  • これで、Node.js エージェントのデータが Cloud APM コンソールで表示されることを確認できます。Cloud APM コンソールを開始する方法の説明については、『Cloud APMコンソールの始動』を参照してください。アプリケーション・エディターの使用について詳しくは、『アプリケーションの管理』を参照してください。
    重要: Cloud APM コンソールにアプリケーションを追加するには、アプリケーション・エディターで Node.js を選択します。
  • Node.js エージェント・データ・コレクターの実行時の動作を変更することができます。詳しくは、『Node.js エージェント・データ・コレクターの構成』を参照してください。
  • 診断データ・コレクターを構成して、診断データの収集と表示を有効にすることができます。詳しくは、『エージェント診断データ・コレクターの構成』を参照してください。