[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가 JVM 내부에서 성능 데이터를 수집하고,
-
Collector가 이 데이터를 서버로 전송하고,
-
Scouter Server가 이를 저장/관리하며,
-
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)
4️⃣ Scouter 설치 및 구성 개요
4.1 Agent 설치
-
Scouter Agent를 서버에 설치
-
javaagent옵션을 WAS 실행 시점에 추가 (예: Tomcat) -
설정 파일(
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 Summary | URL, 클래스, 메서드 단위의 트랜잭션 분석 |
| SQL List | DB 쿼리 목록, 실행 횟수, 평균 시간 |
| Realtime Chart | TPS, Active Request, 응답시간 등의 실시간 그래프 |
| Alert View | 설정한 알람 조건에 따른 경고 로그 |
6️⃣ 장점
✅ 무료 오픈소스 – 라이선스 제약 없이 사용 가능
✅ 국산 도구 – 한글 UI 및 국내 환경에 최적화
✅ 실시간 분석 기능 – 문제 발생 즉시 추적 가능
✅ 경량 구조 – Agent가 JVM에 큰 부담을 주지 않음
✅ 다양한 확장성 – 플러그인 개발, 로그 연동, API 통계 등 확장 용이
7️⃣ 단점 및 주의점
⚠️ 비Java 환경 지원 한계 – 기본적으로 JVM 기반 서비스에 최적화되어 있으며,
Node.js, Python 등의 모니터링은 제한적
⚠️ 웹 대시보드 부족 – 기본 UI가 데스크탑용 클라이언트 중심
⚠️ Collector/Server 튜닝 필요 – 대규모 서비스에서는 데이터 저장/전송 튜닝 필요
8️⃣ 활용 예시
-
전자상거래 사이트: 결제 요청이 느려질 때 어느 구간이 병목인지 파악
-
공공기관 시스템: 실시간 트래픽 증가 감시 및 장애 대응
-
금융사 내부망: APM 라이선스 비용 절감 및 보안환경 내 구축
9️⃣ Scouter와 다른 APM 비교
| 항목 | Scouter | Pinpoint | Datadog / NewRelic |
|---|---|---|---|
| 개발사 | 오픈소스 (국산) | NAVER 오픈소스 | 해외 상용 |
| 설치방식 | Agent + Collector | Agent + Collector | 클라우드 기반 |
| 실시간 모니터링 | ✅ 가능 | ✅ 가능 | ✅ 가능 |
| 비용 | 무료 | 무료 | 유료 |
| UI | Desktop Client | Web | Web |
| 언어 지원 | Java 중심 | Java, PHP | 다수 언어 |
🔟 결론
Scouter는 “국산, 무료, 실시간”이라는 3박자를 갖춘
JVM 기반 시스템 모니터링의 강력한 도구입니다.
소규모~중형 규모의 웹 서비스 운영 환경이라면,
복잡한 상용 APM 대신 Scouter만으로도 충분한 인사이트를 얻을 수 있습니다.
💬 한줄 요약:
“Scouter는 서버의 눈입니다 — 느려지는 원인을 실시간으로 보여주는 오픈소스 APM.”
댓글
댓글 쓰기