[Scouter] 스카우터 - 오픈소스 APM(Application Performance Management) 애플리케이션 성능 모니터링 도구!!





Scouter(스카우터)”는 오픈소스 APM(Application Performance Management, 애플리케이션 성능 모니터링) 도구입니다.
한국에서 개발되어 국내 웹 서비스 및 서버 운영 환경에서 특히 많이 사용되고 있으며, 실시간으로 서버, WAS, DB, 애플리케이션의 성능을 모니터링할 수 있습니다.

아래에서 개념부터 구조, 기능, 장점까지 단계별로 자세히 설명드릴게요.


1️⃣ Scouter란?

Scouter는 자바 기반 애플리케이션의 실행 정보를 수집하고 시각화하는 경량형 APM입니다.
서버의 부하, 응답 시간, SQL 수행 현황, 쓰레드 상태 등을 실시간으로 모니터링할 수 있으며,
Tomcat, JBoss, Spring 등 다양한 Java WAS 환경에서 사용할 수 있습니다.

💡 쉽게 말해:
"서버나 WAS가 느려졌을 때, 어느 요청이 병목인지, 어떤 SQL이 느린지, GC가 얼마나 발생하는지 실시간으로 알려주는 도구입니다."


2️⃣ Scouter의 기본 구조

Scouter는 4가지 주요 컴포넌트로 구성됩니다.

구성요소설명
Agent서버 또는 애플리케이션에 설치되어 성능 데이터를 수집하는 역할
CollectorAgent로부터 데이터를 받아 저장 및 가공
Server (Scouter Server)수집된 데이터를 중앙에서 관리하는 중추 역할
Client (Scouter Client)사용자가 데이터를 시각적으로 확인할 수 있는 UI (Desktop Application)

🔹 구조 예시

[Web/WAS 서버] --(Agent)--> [Collector] --> [Scouter Server] --> [Scouter Client]

즉,

  1. AgentJVM 내부에서 성능 데이터를 수집하고,

  2. Collector가 이 데이터를 서버로 전송하고,

  3. Scouter Server가 이를 저장/관리하며,

  4. Scouter Client가 이를 시각화해 보여줍니다.


3️⃣ 주요 기능

3.1 실시간 모니터링

  • TPS(초당 트랜잭션 수), 응답 시간, CPU/Memory 사용량, Thread 상태, Active Request 등을 실시간으로 확인 가능

  • 웹 요청이 어떤 클래스, 메서드, SQL을 거쳐 처리되는지 **트랜잭션 트레이스(Trace)**로 분석 가능

3.2 SQL 모니터링

  • 실행된 SQL 문장, 수행 시간, 호출 횟수 등을 분석

  • 느린 쿼리(Slow Query) 탐지 가능

  • DB Connection Pool 상태 추적 가능

3.3 GC 및 JVM 모니터링

  • JVM의 Heap Memory 사용량, GC 횟수 및 시간, Class Load 수 등 JVM 관련 지표를 수집

  • Full GC 발생 시점 파악 및 성능 저하 원인 분석에 도움

3.4 WAS & System 리소스 모니터링

  • CPU, Memory, Disk, Network I/O 사용량

  • WAS의 Thread Pool 상태, 세션 수 등 확인 가능

3.5 알람 (Alert)

  • 특정 임계치를 넘을 경우 경고(Alert) 발생

  • CPU 90% 이상, 응답 시간 2초 초과 등 조건 설정 가능

  • Slack, Email, Webhook 등으로 알림 연동 가능


4️⃣ Scouter 설치 및 구성 개요

4.1 Agent 설치

  1. Scouter Agent를 서버에 설치

  2. javaagent 옵션을 WAS 실행 시점에 추가 (예: Tomcat)

    CATALINA_OPTS="$CATALINA_OPTS -javaagent:/scouter/agent.java/scouter.agent.jar"
  3. 설정 파일(conf/scouter.conf)에서 Collector 주소, 서버 이름 등을 지정

4.2 Collector & Server 설치

  • Collector와 Server를 같은 서버에 둘 수도 있고, 별도로 분리 가능

  • scouter.server.conf에서 포트, 저장 위치 등 설정 가능

4.3 Client 실행

  • Scouter Client는 Java 기반 GUI 프로그램

  • 서버 주소를 입력하면 실시간 모니터링 화면 확인 가능


5️⃣ 주요 화면 구성 (Scouter Client)

메뉴설명
Host Summary서버별 CPU, Memory, Disk 등 시스템 자원 현황
Service SummaryURL, 클래스, 메서드 단위의 트랜잭션 분석
SQL ListDB 쿼리 목록, 실행 횟수, 평균 시간
Realtime ChartTPS, Active Request, 응답시간 등의 실시간 그래프
Alert View설정한 알람 조건에 따른 경고 로그

6️⃣ 장점

무료 오픈소스 – 라이선스 제약 없이 사용 가능
국산 도구 – 한글 UI 및 국내 환경에 최적화
실시간 분석 기능 – 문제 발생 즉시 추적 가능
경량 구조 – Agent가 JVM에 큰 부담을 주지 않음
다양한 확장성 – 플러그인 개발, 로그 연동, API 통계 등 확장 용이


7️⃣ 단점 및 주의점

⚠️ 비Java 환경 지원 한계 – 기본적으로 JVM 기반 서비스에 최적화되어 있으며,
Node.js, Python 등의 모니터링은 제한적

⚠️ 웹 대시보드 부족 – 기본 UI가 데스크탑용 클라이언트 중심

⚠️ Collector/Server 튜닝 필요 – 대규모 서비스에서는 데이터 저장/전송 튜닝 필요


8️⃣ 활용 예시

  • 전자상거래 사이트: 결제 요청이 느려질 때 어느 구간이 병목인지 파악

  • 공공기관 시스템: 실시간 트래픽 증가 감시 및 장애 대응

  • 금융사 내부망: APM 라이선스 비용 절감 및 보안환경 내 구축


9️⃣ Scouter와 다른 APM 비교

항목ScouterPinpointDatadog / NewRelic
개발사오픈소스 (국산)NAVER 오픈소스해외 상용
설치방식Agent + CollectorAgent + Collector클라우드 기반
실시간 모니터링✅ 가능✅ 가능✅ 가능
비용무료무료유료
UIDesktop ClientWebWeb
언어 지원Java 중심Java, PHP다수 언어

🔟 결론

Scouter는 “국산, 무료, 실시간”이라는 3박자를 갖춘
JVM 기반 시스템 모니터링의 강력한 도구입니다.

소규모~중형 규모의 웹 서비스 운영 환경이라면,
복잡한 상용 APM 대신 Scouter만으로도 충분한 인사이트를 얻을 수 있습니다.

💬 한줄 요약:
“Scouter는 서버의 눈입니다 — 느려지는 원인을 실시간으로 보여주는 오픈소스 APM.”




 

댓글

이 블로그의 인기 게시물

[8/9] 1184회 로또 당첨번호 추천!!

[AWS] SCP, OU, Policy 사용하기 !!

[AWS] AWS Activate 스타트업 $1,000 지원 성공

[Gemini API] 구글 생성형 AI API 모델별 요금 및 청구 방식!!

[8/2] 1183회 로또 당첨번호 추천!!

[Shopizer E‑commerce] Shopizer란?

[Vault] 온프레미스 구축 개요!!