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 이상 |
| JDK | 17 이상 (Binary 설치 시) |
| Nginx | 1.14.1, 1.14.2, 1.18.0, 1.20.1, 1.24.0, 1.27.0, 1.28.0 |
| Apache | 2.4 |
통신 포트
설치 전 방화벽에서 아래 두 포트를 개방해야 합니다.
| 방향 | 포트 | 프로토콜 | 용도 |
|---|---|---|---|
| Web Server Agent → Receiver | 9009 | gRPC | 수집 데이터 전송 |
| Web Module → Web Server Agent | 12848 | TCP | 모듈 → 에이전트 데이터 전송 |
에이전트 등록하기
Web Server Agent를 설치하기 전에 엑셈원 웹 UI에서 에이전트를 먼저 등록해야 합니다. 등록 시 발급되는 에이전트 ID와 엑세스 토큰은 설치 단계에서 필요하므로 반드시 기록해 두세요.
- 좌측 메뉴에서 [프로필 > 환경설정]으로 이동합니다.
- [관리 > 에이전트] 메뉴를 선택합니다.
- 상단의 [에이전트 추가] 버튼을 클릭합니다.
- 에이전트 타입을 "웹 서버"로 선택하고, 에이전트 이름을 입력합니다.
- [갱신] 버튼을 클릭해 에이전트 ID와 엑세스 토큰을 발급받습니다.
- [저장] 버튼을 클릭합니다.
에이전트 목록에 새 항목이 표시되면 등록이 완료된 것입니다.
설치하기
Web Server Agent는 Docker와 Binary 두 가지 방식으로 설치할 수 있습니다. 환경에 맞는 방식을 선택하세요.
| 설치 방식 | 적합 환경 | 필수 조건 |
|---|---|---|
| Docker | Docker 환경 | Docker 설치 |
| Binary | 물리 서버, VM 환경 | JDK 17 이상 |
Docker로 설치하기
exem-webserver-agent-package.tar.gz파일의 압축을 해제합니다.Docker 이미지를 로드합니다.
docker load -i exemone-webserver-agent-v3.0.12.tar.gzexem-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.16exem-webserver-agent-package/configs/.env파일을 열어 에이전트 정보를 입력합니다. 에이전트 등록 시 발급받은 값을 사용합니다.WEB_AGENT_NAME=<에이전트 이름>
WEB_AGENT_ID=<에이전트 ID>
WEB_AGENT_ACCESS_TOKEN=<엑세스 토큰>
WEB_AGENT_RECEIVER_ADDR=<Receiver IP>:9009exem-webserver-agent-package/docker-compose.yml의ports항목에12848포트를 추가합니다.설치 스크립트에 실행 권한을 부여합니다.
chmod +x exem-webserver-agent-package/install.shWeb Server Agent를 구동합니다.
cd exem-webserver-agent-package
./scripts/restart.sh
컨테이너가 정상적으로 기동되면 설치가 완료됩니다.
Binary로 설치하기
JDK 17 이상이 설치되어 있어야 합니다. JDK 17 미만 환경에서는 함께 제공된 zulu17 패키지를 먼저 설치하세요.
exem-webserver-agent_${VERSION}.bin설치 파일을 준비합니다.실행 권한을 부여합니다.
chmod +x exem-webserver-agent_${VERSION}.bin설치 파일을 실행합니다.
./exem-webserver-agent_${VERSION}.bin설치 메뉴에서 [1]을 입력해 설치를 시작합니다. JAVA 17 이상 설치 여부 확인 프롬프트에서 [y]를 입력합니다.
에이전트 정보 입력 프롬프트에서 에이전트 등록 시 발급받은 Token, Agent ID, Agent Name, Receiver IP를 입력합니다.
설치 디렉토리를 입력합니다. 입력한 경로 아래에
webserver폴더가 자동으로 생성됩니다.설치가 완료되면
<설치경로>/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
Nginx 버전을 확인합니다.
nginx -Vsetup_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) 설치 완료 후 출력되는
nginx.conf추가 안내를 확인하고, 모니터링 대상 Nginx의nginx.conf에 아래 내용을 추가합니다.load_module "<설치경로>/modules/ngx_http_exem_module_<버전>.so";
http {
include <설치경로>/conf/exem_ngx_mod.conf;
}<설치경로>/conf/exem_ngx_mod.conf파일에서 Web Server Agent IP를 설정합니다. Web Server Agent가 다른 서버에 있는 경우에만 변경하면 됩니다.exem_connect_ip <Web Server Agent IP>;
# exem_connect_port 12848; # 기본값 사용 시 주석 유지Nginx를 재기동합니다.
nginx -s reload
Nginx 실행 중 모듈 호환성 오류가 발생하면 아래 명령을 실행하세요.
setenforce 0
Nginx Master가 root로, Worker가 nginx로 실행 중인 환경에서는 nginx 모듈을 root 권한으로 설치하여 실행해야 합니다.
Nginx Module 설정 옵션
| 옵션 | 기본값 | 설명 |
|---|---|---|
exem_unique_id | Random | 웹 서버를 하나의 항목으로 묶는 ID. 미설정 시 재구동할 때마다 새 항목으로 등록됩니다 |
exem_group_id | 없음 | 화면에서 등록된 그룹 ID |
exem_module_name | hostname | 화면에 표시될 웹 서버 이름 |
exem_bid | hostname | 연계된 호스트 에이전트와 동일한 값으로 설정해야 합니다 |
exem_log_level | none | 로그 레벨 (none < error < warning < info < debug) |
exem_log_path | logs/mod.log | 로그 파일 경로 |
exem_log_max_size | 10 | 로그 파일 최대 크기(MB). 초과 시 새로 작성됩니다 |
exem_connect_ip | 127.0.0.1 | Web Server Agent IP |
exem_connect_port | 12848 | Web Server Agent 포트 |
Apache 모듈 설정하기
- Apache 2.4가 설치되어 있어야 합니다.
- Web Server Agent가 구동 중이어야 합니다.
Apache 버전을 확인합니다.
apache2 -v # Debian/Ubuntu
httpd -v # Red Hat 계열setup_exem-httpd-module_{Version}.bin설치 파일을 실행합니다../setup_exem-httpd-module_{Version}.bin설치 중 아래 항목을 입력합니다.
프롬프트 입력값 Install HTTPD Version 2.4Install Directory 설치 경로 ExEm Connect IP Web Server Agent IP (기본값: 127.0.0.1)ExEm Connect Port Web Server Agent 포트 (기본값: 12848)Group ID to register 사용할 그룹 ID Module Name to register 화면에 표시할 웹 서버 이름 (기본값: hostname) Do you want to fix the 'unique id'? yes권장설치 완료 후 출력되는
httpd.conf추가 안내를 확인하고, 모니터링 대상 Apache 설정 파일에 아래 내용을 추가합니다.# exem module
Include <설치경로>/conf/exem_httpd_mod.confApache 설정 파일 위치는 환경에 따라 다릅니다.
환경 설정 파일 경로 Debian/Ubuntu /etc/apache2/apache2.confRed Hat 계열 /etc/httpd/conf/httpd.confApache를 재기동합니다.
apachectl graceful
Apache Module 설정 옵션
| 옵션 | 기본값 | 설명 |
|---|---|---|
ExEmUniqueID | Random | 웹 서버를 하나의 항목으로 묶는 ID. 미설정 시 재시작할 때마다 새 항목으로 등록됩니다 |
ExEmGroupID | "default" | 수집 대상으로 관리될 그룹 ID |
ExEmModuleName | hostname | 화면에 표시될 웹 서버 이름 |
ExEmBID | hostname | 호스트 에이전트와 연동에 필요한 ID |
ExEmDump | false | 디버그용 패킷 덤프 옵션 |
ExEmConnectIP | 127.0.0.1 | Web Server Agent IP |
ExEmConnectPort | 12848 | Web Server Agent 포트 |
ExEmConnectReconnectSec | 5 | 연결 끊김 시 재연결 대기 시간(초) |
ExEmLogPath | logs/mod_exem.log | 로그 파일 경로 |
ExEmLogLevel | info | 로그 레벨 (none < error < warning < info < debug) |
ExEmLogMaxSize | 10 | 로그 파일 최대 크기(MB). 초과 시 새로 작성됩니다 |
ExEmMetricAddr | 127.0.0.1 | 에이전트 메트릭 수집 연결 주소 |
ExEmMetricLocation | 12829 | 에이전트 메트릭 수집 연결 URI |
CPU/Memory 지표 연동하기
웹 서버 화면에서 Process CPU, Process Memory 등 프로세스 사용량을 함께 보려면 Web Module과 호스트 에이전트의 BID를 동일하게 설정해야 합니다.
Web Module이 설치된 서버에 host-agent가 설치되어 있어야 합니다.
Web Module 설정 파일에서 BID를 설정합니다.
- Nginx:
exem_ngx_mod.conf의exem_bid옵션 - Apache:
exem_httpd_mod.conf의ExEmBID옵션
- Nginx:
host-agent 설정 파일에서 동일한 BID 값을 설정합니다.
설정이 완료되면 웹 서버 화면의 Metric 탭에서 Process 태그가 붙은 CPU·Memory 지표를 확인할 수 있습니다.
infrastructure에 동일한 hostname이 이미 존재하는 경우, hostname 대신 고유한 BID 값을 직접 지정해야 연동이 정상적으로 됩니다.