카테고리 없음

Scouter 구성 방법 및 설정 가이드 | Java APM 모니터링 도구

idea9329 2025. 2. 21. 09:29
반응형

 

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 서버 연결

  1. Scouter Viewer 실행
  2. 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를 사용하면 애플리케이션 성능을 최적화하고 장애 대응 속도를 높일 수 있습니다! 🚀

반응형