NodeJS Agent インストール
1. モジュールの説明
exem-nodejs-agentは、Node.jsベースのアプリケーションのトランザクション、SQL、Call Tree、例外データを収集してExemONEに送信するモニタリングエージェントです。
2. サポート環境
| 項目 | 内容 |
|---|---|
| OS | Linux Windows |
| Arch | 64bit |
| Runtime | Node.js 12 ~ 20 |
| Platform | On-premise Docker |
| Protocol | TCP 9010 → Receiver |
| Prereq | npmが使用可能な環境(プロジェクト内でnpm install) |
3. インストール方法
3-1. パッケージの解凍
パッケージ(EXEM-NODEJS-AGENT-x.x.x.tar.gz)をサーバーにアップロードした後、解凍します。
tar -zxvf EXEM-NODEJS-AGENT-x.x.x.tar.gz
解凍後のディレクトリ構造は以下の通りです。
exem/nodejs/
├── cfg/
│ └── agent/
│ ├── nodejs.conf # 収集サーバーアドレスなどの基本設定ファイル
│ └── nodejs.home
├── lib/
│ ├── exem-nodejs-agent-x.x.x.tgz
│ ├── EXEM-TRANSACTION-AGENT-x.x.x.tar.gz
│ └── google-protobuf-3.21.2.tgz
├── data/
└── log/
3-2. モジュールのインストール
アプリケーションのプロジェクトディレクトリでnpm installによりエージェントモジュールをインストールします。
cd <プロジェクトパス>
npm install /path/to/exem/nodejs/lib/exem-nodejs-agent-x.x.x.tgz
3-3. 収集サーバーアドレスの設定
exem/nodejs/cfg/agent/nodejs.confファイルのRECEIVER_ADDRにExemONE収集サーバーのアドレスを設定します。
RECEIVER_ADDR=<収集サーバーIP>:<収集サーバーポート>
3-4. エージェントの適用
エージェントのホームパスを環境変数として設定します。
export EXEM_NODEJS_HOME=/path/to/exem/nodejs
一般的なNode.jsアプリケーション
アプリケーションの最初の実行ファイルの最上部にエージェントモジュールの呼び出しコードを追加します。
// エージェントモジュールの呼び出し(最上部に配置する必要があります)
require('exem-nodejs-agent').start();
// 既存のアプリケーションコード
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
}
bootstrap();
その後、アプリケーションを通常通り起動します。
Next.jsアプリケーション
適用先のNext.jsサーバーディレクトリに
exem-nodejs-loader.jsファイルを配置します。package.jsonのscripts.startに-r ./exem-nodejs-loader.jsオプションを追加して、エージェントを先にロードします。
{
"scripts": {
"start": "node -r ./exem-nodejs-loader.js node_modules/.bin/next start"
}
}
注記
-r ./exem-nodejs-loader.jsは、Next.js起動前にエージェントloaderをrequireで先に実行します。devスクリプトには適用しません。