본문으로 건너뛰기

Web Server Agent 설치

Web Server Agent(exem-webserver-agent)는 Nginx·Apache 웹 서버의 성능 지표를 수집해 엑셈원 수집 서버(Receiver)로 전송하는 모니터링 에이전트입니다.

웹 서버 모니터링은 두 구성 요소로 이루어집니다.

  • Web Server Agent — 수집 서버(Receiver)와 통신하는 중간 에이전트입니다. Binary 또는 Docker 방식으로 설치합니다.
  • Web Module — 웹 서버에 직접 탑재되어 데이터를 수집하고 Web Server Agent로 전송하는 모듈입니다(Nginx Module 또는 Apache Module).
[Nginx/Apache] ←→ [Web Module] → (TCP 12848) → [Web Server Agent] → (gRPC 9009) → [Receiver]

지원 환경

항목지원 버전
엑셈원3.0.506.15.0 이상
JDK17 이상 (Binary 설치 시)
Nginx1.14.1, 1.14.2, 1.18.0, 1.20.1, 1.24.0, 1.27.0, 1.28.0
Apache2.4

통신 포트

설치 전 방화벽에서 아래 두 포트를 개방해야 합니다.

방향포트프로토콜용도
Web Server Agent → Receiver9009gRPC수집 데이터 전송
Web Module → Web Server Agent12848TCP모듈 → 에이전트 데이터 전송

에이전트 등록하기

Web Server Agent를 설치하기 전에 엑셈원 웹 UI에서 에이전트를 먼저 등록해야 합니다. 등록 시 발급되는 에이전트 ID엑세스 토큰은 설치 단계에서 필요하므로 반드시 기록해 두세요.

  1. 좌측 메뉴에서 [프로필 > 환경설정]으로 이동합니다.
  2. [관리 > 에이전트] 메뉴를 선택합니다.
  3. 상단의 [에이전트 추가] 버튼을 클릭합니다.
  4. 에이전트 타입을 "웹 서버"로 선택하고, 에이전트 이름을 입력합니다.
  5. [갱신] 버튼을 클릭해 에이전트 ID와 엑세스 토큰을 발급받습니다.
  6. [저장] 버튼을 클릭합니다.

에이전트 목록에 새 항목이 표시되면 등록이 완료된 것입니다.

설치하기

Web Server Agent는 DockerBinary 두 가지 방식으로 설치할 수 있습니다. 환경에 맞는 방식을 선택하세요.

설치 방식적합 환경필수 조건
DockerDocker 환경Docker 설치
Binary물리 서버, VM 환경JDK 17 이상

Docker로 설치하기

  1. exem-webserver-agent-package.tar.gz 파일의 압축을 해제합니다.

  2. Docker 이미지를 로드합니다.

    docker load -i exemone-webserver-agent-v3.0.12.tar.gz
  3. exem-webserver-agent-package/.env 파일을 열어 실행 환경을 설정합니다.

    # 실행 유저 ID
    EXEMONE_USER_UID=1000
    EXEMONE_USER_GID=1000

    # 패키지 실행 경로
    EXEMONE_WEBSERVER_AGENT_PATH=exem-webserver-agent-package

    # Docker 이미지 및 버전
    WEBSERVER_AGENT_IMAGE=maxgauge/exemone-webserver-agent
    WEBSERVER_AGENT_VERSION=v3.0.16
  4. exem-webserver-agent-package/configs/.env 파일을 열어 에이전트 정보를 입력합니다. 에이전트 등록 시 발급받은 값을 사용합니다.

    WEB_AGENT_NAME=<에이전트 이름>
    WEB_AGENT_ID=<에이전트 ID>
    WEB_AGENT_ACCESS_TOKEN=<엑세스 토큰>
    WEB_AGENT_RECEIVER_ADDR=<Receiver IP>:9009
  5. exem-webserver-agent-package/docker-compose.ymlports 항목에 12848 포트를 추가합니다.

  6. 설치 스크립트에 실행 권한을 부여합니다.

    chmod +x exem-webserver-agent-package/install.sh
  7. Web Server Agent를 구동합니다.

    cd exem-webserver-agent-package
    ./scripts/restart.sh

컨테이너가 정상적으로 기동되면 설치가 완료됩니다.

Binary로 설치하기

사전 요구 사항

JDK 17 이상이 설치되어 있어야 합니다. JDK 17 미만 환경에서는 함께 제공된 zulu17 패키지를 먼저 설치하세요.

  1. exem-webserver-agent_${VERSION}.bin 설치 파일을 준비합니다.

  2. 실행 권한을 부여합니다.

    chmod +x exem-webserver-agent_${VERSION}.bin
  3. 설치 파일을 실행합니다.

    ./exem-webserver-agent_${VERSION}.bin
  4. 설치 메뉴에서 [1]을 입력해 설치를 시작합니다. JAVA 17 이상 설치 여부 확인 프롬프트에서 [y]를 입력합니다.

  5. 에이전트 정보 입력 프롬프트에서 에이전트 등록 시 발급받은 Token, Agent ID, Agent Name, Receiver IP를 입력합니다.

  6. 설치 디렉토리를 입력합니다. 입력한 경로 아래에 webserver 폴더가 자동으로 생성됩니다.

  7. 설치가 완료되면 <설치경로>/webserver/bin/ 디렉토리에서 에이전트를 시작합니다.

    ./startAgent.sh

startAgent.sh에 입력한 정보가 자동으로 채워져 있으면 설치가 완료된 것입니다.

설정하기

Web Server Agent 설치 후, 모니터링 대상 웹 서버에 Web Module을 설치하고 설정합니다.

Nginx 모듈 설정하기

사전 요구 사항
  • Nginx가 설치되어 있어야 합니다.
  • Web Server Agent가 구동 중이어야 합니다.
  • 지원 Nginx 버전: 1.14.1, 1.14.2, 1.18.0, 1.20.1, 1.24.0, 1.27.0, 1.28.0
  1. Nginx 버전을 확인합니다.

    nginx -V
  2. setup_exem-nginx-module_{Version}.bin 설치 파일을 실행합니다.

    ./setup_exem-nginx-module_{Version}.bin

    설치 중 아래 항목을 입력합니다.

    프롬프트입력값
    Install Nginx Version모니터링할 Nginx 버전
    Install Directory설치 경로 (기본값: /home/exemone/nginx-module)
    nginx module config filename설정 파일 이름 (기본값: exem_ngx_mod.conf)
    Do you want to fix the 'unique id'?yes 권장. 고정하지 않으면 Nginx 재구동 시 새 항목으로 등록됩니다
    Group ID to register사용할 그룹 ID
    Module Name to register화면에 표시할 웹 서버 이름 (기본값: hostname)
  3. 설치 완료 후 출력되는 nginx.conf 추가 안내를 확인하고, 모니터링 대상 Nginx의 nginx.conf에 아래 내용을 추가합니다.

    load_module "<설치경로>/modules/ngx_http_exem_module_<버전>.so";
    http {
    include <설치경로>/conf/exem_ngx_mod.conf;
    }
  4. <설치경로>/conf/exem_ngx_mod.conf 파일에서 Web Server Agent IP를 설정합니다. Web Server Agent가 다른 서버에 있는 경우에만 변경하면 됩니다.

    exem_connect_ip <Web Server Agent IP>;
    # exem_connect_port 12848; # 기본값 사용 시 주석 유지
  5. Nginx를 재기동합니다.

    nginx -s reload
SELinux 모듈 호환성 오류 발생 시

Nginx 실행 중 모듈 호환성 오류가 발생하면 아래 명령을 실행하세요.

setenforce 0

Nginx Master가 root로, Worker가 nginx로 실행 중인 환경에서는 nginx 모듈을 root 권한으로 설치하여 실행해야 합니다.

Nginx Module 설정 옵션

옵션기본값설명
exem_unique_idRandom웹 서버를 하나의 항목으로 묶는 ID. 미설정 시 재구동할 때마다 새 항목으로 등록됩니다
exem_group_id없음화면에서 등록된 그룹 ID
exem_module_namehostname화면에 표시될 웹 서버 이름
exem_bidhostname연계된 호스트 에이전트와 동일한 값으로 설정해야 합니다
exem_log_levelnone로그 레벨 (none < error < warning < info < debug)
exem_log_pathlogs/mod.log로그 파일 경로
exem_log_max_size10로그 파일 최대 크기(MB). 초과 시 새로 작성됩니다
exem_connect_ip127.0.0.1Web Server Agent IP
exem_connect_port12848Web Server Agent 포트

Apache 모듈 설정하기

사전 요구 사항
  • Apache 2.4가 설치되어 있어야 합니다.
  • Web Server Agent가 구동 중이어야 합니다.
  1. Apache 버전을 확인합니다.

    apache2 -v   # Debian/Ubuntu
    httpd -v # Red Hat 계열
  2. setup_exem-httpd-module_{Version}.bin 설치 파일을 실행합니다.

    ./setup_exem-httpd-module_{Version}.bin

    설치 중 아래 항목을 입력합니다.

    프롬프트입력값
    Install HTTPD Version2.4
    Install Directory설치 경로
    ExEm Connect IPWeb Server Agent IP (기본값: 127.0.0.1)
    ExEm Connect PortWeb Server Agent 포트 (기본값: 12848)
    Group ID to register사용할 그룹 ID
    Module Name to register화면에 표시할 웹 서버 이름 (기본값: hostname)
    Do you want to fix the 'unique id'?yes 권장
  3. 설치 완료 후 출력되는 httpd.conf 추가 안내를 확인하고, 모니터링 대상 Apache 설정 파일에 아래 내용을 추가합니다.

    # exem module
    Include <설치경로>/conf/exem_httpd_mod.conf

    Apache 설정 파일 위치는 환경에 따라 다릅니다.

    환경설정 파일 경로
    Debian/Ubuntu/etc/apache2/apache2.conf
    Red Hat 계열/etc/httpd/conf/httpd.conf
  4. Apache를 재기동합니다.

    apachectl graceful

Apache Module 설정 옵션

옵션기본값설명
ExEmUniqueIDRandom웹 서버를 하나의 항목으로 묶는 ID. 미설정 시 재시작할 때마다 새 항목으로 등록됩니다
ExEmGroupID"default"수집 대상으로 관리될 그룹 ID
ExEmModuleNamehostname화면에 표시될 웹 서버 이름
ExEmBIDhostname호스트 에이전트와 연동에 필요한 ID
ExEmDumpfalse디버그용 패킷 덤프 옵션
ExEmConnectIP127.0.0.1Web Server Agent IP
ExEmConnectPort12848Web Server Agent 포트
ExEmConnectReconnectSec5연결 끊김 시 재연결 대기 시간(초)
ExEmLogPathlogs/mod_exem.log로그 파일 경로
ExEmLogLevelinfo로그 레벨 (none < error < warning < info < debug)
ExEmLogMaxSize10로그 파일 최대 크기(MB). 초과 시 새로 작성됩니다
ExEmMetricAddr127.0.0.1에이전트 메트릭 수집 연결 주소
ExEmMetricLocation12829에이전트 메트릭 수집 연결 URI

CPU/Memory 지표 연동하기

웹 서버 화면에서 Process CPU, Process Memory 등 프로세스 사용량을 함께 보려면 Web Module과 호스트 에이전트의 BID를 동일하게 설정해야 합니다.

사전 요구 사항

Web Module이 설치된 서버에 host-agent가 설치되어 있어야 합니다.

  1. Web Module 설정 파일에서 BID를 설정합니다.

    • Nginx: exem_ngx_mod.confexem_bid 옵션
    • Apache: exem_httpd_mod.confExEmBID 옵션
  2. host-agent 설정 파일에서 동일한 BID 값을 설정합니다.

설정이 완료되면 웹 서버 화면의 Metric 탭에서 Process 태그가 붙은 CPU·Memory 지표를 확인할 수 있습니다.

주의

infrastructure에 동일한 hostname이 이미 존재하는 경우, hostname 대신 고유한 BID 값을 직접 지정해야 연동이 정상적으로 됩니다.