NodeJS Agent 설치하기
exem-nodejs-agent는 Node.js 기반 애플리케이션의 트랜잭션, SQL, Call Tree, 예외 데이터를 수집하여 ExemONE으로 전송하는 모니터링 에이전트입니다.
지원 환경
| 항목 | 지원 버전 |
|---|---|
| Node.js | 12 ~ 20 |
설치
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/
2. 모듈 설치
애플리케이션 프로젝트 디렉토리에서 npm install로 에이전트 모듈을 설치합니다.
cd <프로젝트 경로>
npm install /path/to/exem/nodejs/lib/exem-nodejs-agent-x.x.x.tgz
3. 수집서버 주소 설정
exem/nodejs/cfg/agent/nodejs.conf 파일에서 RECEIVER_ADDR에 ExemONE 수집서버 주소를 설정합니다.
RECEIVER_ADDR=<수집서버 IP>:<수집서버 포트>
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 스크립트에는 적용하지 않습니다.