Scouter 구성 방법 및 설정 가이드 | Java APM 모니터링 도구
Scouter란?
Scouter는 Java 애플리케이션의 성능을 모니터링하는 APM(Application Performance Monitoring) 도구입니다. 실시간으로 서버의 CPU, 메모리, 트랜잭션, SQL 쿼리 등을 추적하여 성능 최적화와 장애 대응에 유용하게 사용할 수 있습니다.
Scouter는 다음과 같은 주요 기능을 제공합니다:
- 실시간 서버 모니터링 (CPU, 메모리, 트랜잭션 상태)
- SQL 쿼리 분석 (Slow Query 탐지)
- 트랜잭션 추적 (요청당 응답 시간 및 병목 구간 확인)
- 웹 애플리케이션 성능 모니터링 (Spring Boot, Tomcat 등 지원)
- 가벼운 설치 및 빠른 설정 가능 (Docker/Kubernetes 지원)
1. Scouter 기본 구성 요소
Scouter는 Agent, Collector, Viewer 세 가지 요소로 구성됩니다.
구성 요소 역할
Scouter Agent | Java 애플리케이션에서 데이터를 수집 |
Scouter Collector | Agent에서 받은 데이터를 저장 |
Scouter Viewer | 수집된 데이터를 시각적으로 분석 |
2. Scouter 설치 및 실행 방법
1) Scouter Collector 설치 및 실행
Scouter Collector는 모니터링 데이터를 수집하고 저장하는 역할을 합니다.
① Scouter Collector 다운로드 및 설치
wget https://github.com/scouter-project/scouter/releases/download/v2.15.0/scouter-server-2.15.0.tar.gz
tar -xvzf scouter-server-2.15.0.tar.gz
cd scouter-server
② Scouter Collector 실행
./scouter-server.sh
- 기본적으로 6180 포트에서 실행됩니다.
- 실행 로그는 logs 디렉토리에 저장됩니다.
- 설정 파일 (conf/scouter.conf)을 수정하여 포트를 변경할 수 있습니다.
2) Scouter Agent 설치 및 설정
Scouter Agent는 애플리케이션 내부에서 실행되며 성능 데이터를 수집하는 역할을 합니다.
① Scouter Java Agent 다운로드
wget https://github.com/scouter-project/scouter/releases/download/v2.15.0/scouter-agent-java-2.15.0.tar.gz
tar -xvzf scouter-agent-java-2.15.0.tar.gz
cd scouter-agent-java
② scouter.conf 설정
Scouter Agent가 Collector에 데이터를 전송할 수 있도록 설정 파일을 수정합니다.
net_collector_ip=127.0.0.1 # Collector 서버의 IP 주소
obj_name=my_application # 애플리케이션의 모니터링 이름
trace_http_parameter_enabled=true # HTTP 요청 파라미터 추적 활성화
③ Java 애플리케이션 실행 시 Scouter Agent 적용
Spring Boot, Tomcat 등 Java 애플리케이션 실행 시 다음과 같이 -javaagent 옵션을 추가합니다.
export SCOUTER_AGENT_HOME=/path/to/scouter-agent-java
java -javaagent:$SCOUTER_AGENT_HOME/scouter.agent.jar -Dscouter.config=$SCOUTER_AGENT_HOME/scouter.conf -jar myapp.jar
- Spring Boot 또는 Tomcat 서버에서도 동일한 방식으로 적용 가능합니다.
3) Scouter Viewer 실행 및 모니터링
Scouter Viewer는 수집된 데이터를 시각적으로 보여주는 역할을 합니다.
① Scouter Viewer 다운로드
Windows 또는 Linux/Mac 환경에서 실행할 수 있습니다.
- Windows 사용자:
Scouter Releases 페이지에서 scouter.viewer-x.x.x.zip 파일을 다운로드 후 실행 - Linux/Mac 사용자:
wget https://github.com/scouter-project/scouter/releases/download/v2.15.0/scouter.viewer-2.15.0.tar.gz tar -xvzf scouter.viewer-2.15.0.tar.gz cd scouter.viewer ./scouter-viewer.sh
② Scouter Viewer에서 Collector 서버 연결
- Scouter Viewer 실행
- Host 탭에서 **Collector 서버의 IP와 포트(127.0.0.1:6180)**를 입력 후 연결
3. Scouter 주요 설정 및 기능
1) Collector 설정 (scouter-server/conf/scouter.conf)
net_udp_listen_port=6180 # Collector의 수집 포트
log_dir=./logs # 로그 저장 경로
2) Java Agent 설정 (scouter-agent-java/conf/scouter.conf)
net_collector_ip=127.0.0.1 # Collector IP
obj_name=my_app # 애플리케이션 이름
trace_http_parameter_enabled=true # HTTP 파라미터 추적 활성화
4. Scouter를 활용한 모니터링
1) 실시간 서버 상태 모니터링
- CPU, 메모리, GC(가비지 컬렉션) 상태 모니터링
- 특정 시간대별 시스템 리소스 사용량 분석 가능
2) 트랜잭션 추적 및 분석
- 웹 애플리케이션에서 실행된 각 요청별 응답 시간 분석
- 트랜잭션 ID 기반으로 전체 처리 흐름 추적 가능
3) SQL 쿼리 성능 분석
- Slow Query 탐지 및 쿼리 실행 시간 분석 가능
- DB 부하가 높은 SQL을 찾아 성능 최적화 가능
4) 시스템 장애 발생 시 원인 분석
- 특정 시간대의 CPU, 메모리 사용량 및 GC 상태 확인
- 트랜잭션 병목 구간 분석 후 성능 최적화 가능
5. Scouter 확장 및 활용
✅ Docker 환경에서 Scouter Collector 실행
docker run -d --name scouter-collector -p 6180:6180 -p 6100:6100 scouter/scouter
✅ Kubernetes 환경에서 Scouter 배포
Helm Chart를 사용하여 Kubernetes 환경에서도 손쉽게 Scouter를 배포할 수 있습니다.
✅ Webhook을 활용한 실시간 알림 설정
서버 성능 임계값을 초과하면 Webhook을 통해 Slack, 이메일 등의 알림을 받을 수 있습니다.
6. Scouter 사용 시 장점
✅ 무료 오픈소스 APM – 유료 APM (New Relic, AppDynamics) 대비 비용 절감
✅ 경량 & 빠른 성능 – Java 애플리케이션 성능 저하 없이 사용 가능
✅ 실시간 모니터링 가능 – 트랜잭션, SQL 쿼리, CPU/메모리 사용량 추적
✅ 설치 및 설정이 간단 – 단 몇 분 안에 모니터링 시스템 구축 가능
7. 결론
Scouter는 Java 기반 애플리케이션의 성능을 모니터링하는 강력한 APM 도구로, Collector, Agent, Viewer로 구성됩니다. 빠르고 가벼운 성능 모니터링을 제공하며, Spring Boot, Tomcat, Docker, Kubernetes 등 다양한 환경에서 쉽게 사용할 수 있습니다.
🔹 실시간 서버 모니터링이 필요한 경우
🔹 트랜잭션 추적 및 SQL 쿼리 성능 분석이 필요한 경우
🔹 무료 APM을 찾고 있는 경우
👉 Scouter를 사용하면 애플리케이션 성능을 최적화하고 장애 대응 속도를 높일 수 있습니다! 🚀