본문으로 건너뛰기

RUM Agent 설치

1. 모듈 설명

Real User Monitoring(RUM)은 모니터링 대상 서버에 에이전트를 직접 설치하지 않고, 모니터링하려는 HTML 파일의 head 태그에 JavaScript를 삽입하여 사용자 경험 데이터를 모니터링합니다.

2. 지원 환경

항목내용
PlatformBrowser JavaScript (SDK)
ProtocolHTTPS → 수집 서버 (브라우저에서 직접 전송)
TargetChrome 103 이상
Edge 103 이상
Firefox 114 이상
Safari 16 이상
Opera 89 이상
Prereq수집 서버 HTTPS 지원 (Receiver v3.0.504.15.7 이상) 또는 HTTPS 프록시 구성
신뢰 인증서 적용
CORS(Cross-Origin Resource Sharing) 설정
세션 리플레이 크로스 도메인 허용

3. 사전 설정

3-1. exemone-receiver RUM 데이터 수집 설정

데이터 수집을 위한 포트 및 브라우저에 전송할 JS 파일 경로(receiver:rum:helper:path)를 설정해야 합니다. 기본으로 설정되어 있으나, RUM 패치 시 xm_js_helper.js 파일을 교체해야 합니다.

  • Docker 설치 환경 파일 위치: $EXEMONE_HOME/containers/exemone-receiver/configs/receiver.yaml
  • Binary 설치 환경 파일 위치: $EXEMONE_HOME/services/exemone-receiver/configs/receiver.yaml
receiver:
grpc-port: 9009
intermax-port: 9010
http-port: 9008 #포트 설정
rum: #mx_js_helper.js 파일 위치 설정
helper:
path: /home/exemone/helper/xm_js_helper.js

Docker 설치 환경일 경우 docker-compose.yml 파일에 helper 경로와 포트가 정의되어 있어야 합니다.

3-2. HTTPS 세션 모니터링 설정

HTTPS 세션 데이터를 모니터링하려면 다음 절차를 진행하세요.

  1. 인증서 발급: 엑셈원 접속 IP를 대상으로 server.crtserver.key 인증서를 발급하여 준비합니다.

  2. 인증서 저장: $EXEMONE_HOME/containers/exemone-receiver/certs 경로에 certs 폴더를 생성한 후, 발급받은 인증서를 저장합니다.

  3. exemone-receiver에 인증서 설정: receiver.yaml 파일에 인증서 정보를 설정합니다.

    • Docker 설치 환경 파일 위치: $EXEMONE_HOME/containers/exemone-receiver/configs/receiver.yaml
    • Binary 설치 환경 파일 위치: $EXEMONE_HOME/services/exemone-receiver/configs/receiver.yaml
    receiver:
    rum:
    tls:
    enabled: true #tls 적용 여부
    cert-file: /home/exemone/certs/server.crt #인증서 파일(브라우저에서 신뢰 가능한 인증서)
    key-file: /home/exemone/certs/server.key #키 파일
  4. exemone-receiver 서비스 재시작: 다음 명령어를 사용하여 exemone-receiver 서비스를 재시작합니다.

    #Docker 환경
    sh $EXEMONE_HOME/scripts/restart.sh exemone-receiver

    #Binary 환경
    $EXEMONE_HOME/onctl restart exemone-receiver
  5. exemone-https에 인증서 설정: http.conf 파일에 ssl_certificatessl_certificate_key를 추가합니다.

    • Docker 설치 환경 파일 위치: $EXEMONE_HOME/containers/exemone-https/conf.d/http.conf
    • Binary 설치 환경 파일 위치: $EXEMONE_HOME/services/exemone-https/conf.d/http.conf
    server {
    client_max_body_size 1G;
    # listen port information
    listen 8443 ssl http2;

    # ssl information
    ssl_certificate "../../../certs/server.crt"; # 추가
    ssl_certificate_key "../../../certs/server.key"; # 추가
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 10m;
    ssl_prefer_server_ciphers on;

    # proxy
    proxy_buffer_size 8k;
    proxy_buffers 16 8k;
    proxy_busy_buffers_size 32k;

    # server information
    add_header Strict-Transport-Security "max-age=61436000; includeSubDomains; preload;";
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256';

    location / {
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Fr $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    }
    }

    Docker 설치 환경일 경우 docker-compose.yml 파일에 certs 폴더 경로가 정의되어 있어야 합니다.

  1. exemone-https 서비스 재시작: 다음 명령어를 사용하여 exemone-https 서비스를 재시작합니다.

    #Docker 환경
    sh $EXEMONE_HOME/scripts/restart.sh exemone-https

    #Binary 환경
    $EXEMONE_HOME/onctl restart exemone-https

4. 설치 방법

4-1. RUM 애플리케이션 추가

  1. 좌측 메뉴에서 환경설정 > 애플리케이션 > RUM 메뉴로 이동합니다.
  2. RUM 애플리케이션 추가 버튼을 클릭합니다.

clipboard

4-2. 애플리케이션 설정

애플리케이션을 식별할 수 있도록 이름 및 배포 환경 정보를 작성합니다.

clipboard

4-3. 연결 설정

모니터링 대상과 연결할 exemone-receiver를 설정합니다.

  • 프로토콜: http, https 중 선택합니다.
  • IP: exemone-receiver 접속 IP를 입력합니다.
  • 포트: RUM 기본 포트는 9008입니다.

clipboard

4-4. 세션 설정

수집 세션을 설정합니다.

clipboard

4-5. 연동 스크립트 복사

RUM 애플리케이션 저장 시 연동 스크립트가 팝업됩니다. 해당 스크립트를 복사하여 모니터링하려는 모든 HTML 페이지의 head 태그에 추가합니다.

clipboard

연동 스크립트는 RUM 애플리케이션 목록의 Script for Connection 칼럼에 있는 보기 버튼을 클릭하여 다시 확인할 수 있습니다.

clipboard

4-6. HTML 파일에 연동 스크립트 삽입

모니터링하려는 서버의 HTML 파일 내 head 태그에 5번 과정에서 복사한 연동 스크립트를 삽입합니다.

clipboard

5. RUM 데이터 모니터링

애플리케이션 > 사용자 모니터링 화면으로 이동하면 액티브 세션 카운트 및 세션 로그에 대한 정보를 모니터링할 수 있습니다.

clipboard