본문으로 건너뛰기

Node.js 에이전트 설치

와탭 모니터링 서비스를 사용하기 위해서는 회원 가입 후 프로젝트를 생성하고 대상 서버에 에이전트를 설치해야 합니다. 회원 가입에 관한 자세한 내용은 다음 문서를 참조하세요.

다음 동영상 가이드를 참조하세요.

Node.js 모니터링 서비스를 사용하려면 모니터링 대상 애플리케이션에 모니터링 에이전트를 설치해야 합니다. 설치는 npm(Node Package Manager)을 이용하세요.

  • 서비스 중인 Node.js 애플리케이션 디렉터리 경로에 와탭 에이전트 모듈을 설치하세요.

  • 와탭 에이전트의 환경 설정(whatap.conf)을 작성하세요.

  • Node.js 서비스를 다시 실행합니다.

프로젝트 생성하기

에이전트를 설치하기 전에 먼저 프로젝트를 생성하세요.

  1. 와탭 모니터링 서비스로 이동한 다음 로그인하세요.

  2. 프로젝트를 생성하려면 화면 왼쪽 사이드 메뉴에서 전체 프로젝트 > + 프로젝트 버튼을 선택하세요.

  3. 상품 선택 화면에서 프로젝트에 설치할 상품을 선택하세요.

  4. 프로젝트 이름, 데이터 서버 지역, 타임 존 항목을 차례로 설정하세요.

    프로젝트 생성

  5. 알림 언어 설정에서 경고 알림 메시지의 언어를 선택하세요.

  6. 모든 설정을 완료한 다음에는 프로젝트 생성하기 버튼을 선택하세요.

노트
  • 데이터 서버 지역은 리전(클라우드 서비스를 제공하기 위해 설치한 데이터 센터의 묶음)을 의미합니다. 특정 리전을 선택하면 해당 리전에 속한 데이터 센터에 사용자의 데이터를 저장합니다.

  • 타임 존은 알림, 보고서를 생성하는 기준 시간입니다.

  • 여러 개의 프로젝트를 그룹으로 묶어 관리하려면 프로젝트 그룹에서 그룹을 선택하거나 그룹을 추가하세요. 그룹에 대한 자세한 설명은 다음 문서를 참조하세요.

  • 조직을 선택한 상태에서 프로젝트를 추가할 경우 조직 하위 그룹을 필수로 설정해야 합니다.

액세스 키 확인

액세스 키는 와탭 서비스 활성화를 위한 고유 ID입니다.

설치 안내 섹션에서 프로젝트 액세스 키 발급받기 버튼을 선택하세요. 액세스 키를 자동으로 발급받은 후 다음 단계를 진행합니다.

노트

프로젝트를 생성한 다음에는 자동으로 에이전트 설치 페이지로 이동합니다. 에이전트 설치 페이지로 이동하지 않는다면 화면 왼쪽 메뉴에서 관리 > 에이전트 설치를 선택하세요.

에이전트 다운로드

  1. 서비스 중인 Node.js 애플리케이션의 디렉터리 경로로 이동해 에이전트를 설치하세요.

    $ npm install --save whatap
  2. node_modules/whatap 경로의 whatap.conf 파일을 복사해 소스 코드의 루트(root) 경로로 붙여넣기하세요.

  3. 와탭 모니터링 서비스 화면으로 이동하세요.

  4. 생성한 프로젝트를 선택한 다음 설치 안내 섹션의 에이전트 다운로드 내용 중 다음 내용을 복사하세요.

    Example
    license={액세스 키}
    whatap.server.host={수집 서버 IP}
  5. whatap.conf 파일에 붙여넣기 하세요.

호스트(whatap.server.host) 주소는 와탭 proxy를 설치한 서버의 주소입니다. 슬래시('/')를 구분자로 이용해 와탭 서버 중 proxy 서버가 실행 중인 서버의 모든 주소를 입력할 수 있습니다.

Node.js 에이전트 구성 파일

Node.js 모니터링 서비스를 구성하는 각 파일의 역할은 다음과 같습니다.

  • whatap.conf: 에이전트 설정 파일 샘플입니다. 해당 파일을 복사해서 액세스 키를 입력하세요.

  • lib: 에이전트, 트레이서 프로그램입니다.

  • README.md: 에이전트 설치에 관한 안내 문서입니다.

  • package.json: npm 모듈 환경 구성 파일입니다.

  • index.js: main export 선언 파일입니다.

Next.js 또는 Nuxt.js와 같은 서버 사이드 렌더링(Server-side Rendering, SSR) 프레임워크에서 애플리케이션 모니터링을 위해 Custom Server 설정이 필요합니다. 일반적인 Node.js 프레임워크(예, Express.js, Nest.js)와는 다른 접근 방식을 요구합니다. 자세한 내용은 다음 문서를 참조하세요.

활용하기

애플리케이션의 진입점(메인 모듈) 파일의 최상단에 다음 코드를 추가하세요. 예를 들어 Express.js 애플리케이션에서는 app.js 또는 server.js 파일이 진입점(메인 모듈)입니다. Nest.js와 같은 프레임워크를 사용하는 경우 main.ts 파일이 될 수 있습니다.

Javascript
var whatap = require('whatap').NodeAgent;

ECMAScript(ES)를 활용한다면 다음 코드를 같이 추가하세요.

ES
import WhatapAgent from 'whatap';
WhatapAgent.NodeAgent;

다음 적용 예시를 참조하세요.

var WhatapAgent = require('whatap').NodeAgent;
import http from 'http';
import setupApp from '../src/app';
let server = null;
const port = normalizePort(process.env.PORT || '3000');
노트

에이전트 실행 코드는 node.js를 시작하고 가장 먼저 실행해야 하므로 처음 import보다 먼저 위치해야 합니다.

설치를 모두 완료했다면 다음 문서를 확인해 문제가 없는지 확인하세요.

환경 별로 whatap.conf 파일을 구분해 사용하기

다음의 경우에 해당한다면 .conf를 제외한 파일명을 설정해 주세요.

  • 환경 별로 프로젝트를 구분한 경우

  • 에이전트 옵션을 다르게 설정할 경우

  • pm2에 의해 클러스터(Cluster) 모드로 기동할 경우

process.env.WHATAP_CONF = 'whatapdev';
process.env.WHATAP_NAME = 'NodeAgent-{ip2}-{ip3}-{cluster}';
var WhatapAgent = require('whatap').NodeAgent;
노트

WHATAP_NAME 옵션으로 설정 가능한 인자는 다음과 같습니다.

  • ipN: ip0, ip1, ip2, ip3

  • cluster: cluster ID

  • pid: process ID

  • hostname: 호스트 이름

에이전트 그룹 단위 기능 활용하기

에이전트 그룹 단위 기능에는 그룹 토폴로지, 통합 토폴로지 등이 있으며, 다음 코드에서 {그룹 식별자} 부분을 에이전트 그룹명으로 대체하여 사용하세요.

process.env.WHATAP_OKIND = '{그룹 식별자}';
var WhatapAgent = require('whatap').NodeAgent;

PaaS 애플리케이션 환경

기본 환경 변수 설정

PaaS 애플리케이션에서 에이전트를 설치하는 경우 모든 설정을 소스(app.js) 파일에서 설정해야 합니다. whatap.conf 파일을 사용할 수 없습니다.

액세스 키(WHATAP_LICENSE)와 수집 서버 IP(WHATAP_SERVER_HOST)를 환경 변수로 설정하세요.

app.js
process.env.WHATAP_LICENSE={액세스 키};
process.env.WHATAP_SERVER_HOST={수집 서버 IP};
var whatap=require('whatap').NodeAgent;
...

환경 변수로 설정 가능한 옵션

whatap.conf 파일을 사용할 수 없기 때문에 소스 파일에 환경 변수로 와탭 에이전트 옵션을 설정해야 합니다.

app.js
process.env.profile_http_header_enabled=false;
process.env.profile_http_parameter_enabled=false;

process.env.profile_basetime=500;

process.env.auto_oname_enabled=false;
process.env.auto_oname_prefix='nodejs';

process.env.mtrace_rate=0;
process.env.mtrace_spec='v1';
process.env.stat_mtrace_enabled=false;
process.env.stat_domain_enabled=false;
노트

Node.js에서 설정할 수 있는 옵션에 대한 자세한 내용은 다음 문서를 참조하세요.

모니터링 시작하기

애플리케이션 서버를 다시 시작하면 에이전트가 정보 수집을 시작합니다.