[APM] Scouter , 스카우터란 무엇인가? (서버 및 Java 설치)

🔎 Scouter APM 개념 총정리

1️⃣ Scouter란 무엇인가?

Scouter = 오픈소스 APM(Application Performance Monitoring)
👉 서버와 애플리케이션의 성능·상태·병목을 실시간으로 수집/분석하는 도구
 

2️⃣ 왜 Scouter가 필요한가?

❌ APM 없을 때

  • CPU 낮은데 서비스 느림
  • 사용자 “느리다”는 말만 있음
  • 로그 뒤지고, 재현 안 되고, 감으로 판단

✅ Scouter 있을 때

  • 어느 API가 느린지
  • DB 쿼리가 몇 ms인지
  • 어느 서버에서 GC가 터졌는지
  • 특정 시간대에만 느린 이유

👉 감 → 데이터 기반 판단으로 전환


Scouter 서버 설치 가이드

1️⃣ 먼저 아래 github 경로에서 최신 Release Version 설치

 
1. scouter-all-X.X.X.tar.gz (서버용)
2. scouter.client (모니터링용)
 
https://github.com/scouter-project/scouter/releases/

Releases · scouter-project/scouter

Scouter is an open source APM (Application Performance Management) tool. - scouter-project/scouter

github.com

 

2️⃣ Scouter 서버 세팅 및 실행, 주의점, 에러

 
스카우터 서버 는 scouter-all-X.X.X.tar.gz 내 폴더 server
 
가장 중요한 것!!
 
Scouter 서버는 Java 8 필수(JDK 8)

java -version

 
만약 설치할 서버의 자바버전이 8이 아닌 JDK11/JDK17과 같은 버전에서는 아래와 같은 에러가 발생됩니다. 

java.security.PrivilegedActionException: java.lang.NoSuchMethodException

 
 
OpenJDK8 - OpenJDK 8u342 GA Release은 해당 경로에서 설치하였습니다.
 
또 하나의 주의사항!!
리눅스인 경우, 아래 서버 아키텍쳐를 점검해서 받을 것

uname -m
서버 결과의미
x86_64일반 인텔/AMD 서버
aarch64ARM 서버 (Graviton, 국산 서버 다수)

 
 
서버 scouter.conf 기본 설정
net_collector_ip는 Scouter 서버가 “어디 IP로 수집 요청을 받을지”를 정하는 값입니다.
0.0.0.0 으로 설정 시 모든 망에서 접속이 가능합니다.
특정 IP로 들어오는 요청만 수신 받고 싶은 경우, 해당 IP를 넣어주면 됩니다.

net_collector_ip=0.0.0.0
net_collector_udp_port=6100
net_collector_tcp_port=6100

 
 
서버 시작 / 종료 는 아래 서버 내에서 명령어를 실행합니다. 

-- 실행
./startup.sh

-- 종료
./stop.sh

 
단, 사전에 chmod -R 777 로 권한이 빠진 게 있으면 호출이 안될 수 있으니 부여해줍니다.
서버 정상 유무는 아래 명령어를 통해 확인 가능합니다.

ps -ef | grep scouter

 
만약 서버의 기본 JDK가 8버전이 아닌 다른 버전이고 이걸 공유하는 게 많아 기본 JDK를 수정하기 힘들다고 할 시,
startup.sh 에서 JAVA_PAHT를 임의로 변경해주면 됩니다.

  • export JAVA_HOME
  • export PATH 

3️⃣ Scouter의 전체 구조 (개념도)

[ User ]
   ↓
[ WAS / Server ]
   ↑        ↑
Java Agent  Host Agent
     \      /
      → Scouter Server →
              ↑
         Scouter Client

 

4️⃣ Scouter Agent 세팅방법

 
수집 대상 WAS(JAVA)에 설치하는 방법입니다.
WAS는 Java 기반이면 모두 가능합니다. - Jeus, Tomcat, Weblogic
아래는 대표적으로 우리나라에서 많이 쓰이는 상용 JEUS와 오픈 소스 톰캣 설정 예시입니다.
 
우선 앞서, GitHub Release에서 받은 Scouter 압축 안에 포함된 agent.java를 사용합니다.
 
/scouter/agent/conf/scouter.conf 파일을 먼저 설정합니다.
WAS 식별 이름과 스카우터 서버의 IP 정보를 넣어줍니다.
이 식별자는 WAS가 여러 개인 경우 중복되지 않게 넣습니다.

# Scouter Server 정보
net_collector_ip=스카우터서버IP
net_collector_tcp_port=6100
net_collector_udp_port=6100

# WAS 식별 이름 (중요)
obj_name=was01

# 서비스 그룹 (선택)
obj_type=tomcat

 
[Jeus]
 
WebAdmin Console 화면에서 Server > Jvm Config
아래 javaagent 설정을 넣어줍니다.

-javaagent:/"스카우터 agent 설치경로"/scouter.agent.jar -Dscouter.config=/"스카우터conf경로"/scouter.conf -Dobj_name="object 명칭"

 
[Tomcat]
 
setenv.sh 옵션을 설정해서 javaagent 설정을 해줍니다.

SCOUTER_AGENT_DIR=/opt/scouter/agent

JAVA_OPTS="$JAVA_OPTS \
-javaagent:$SCOUTER_AGENT_DIR/scouter.agent.jar \
-Dscouter.config=$SCOUTER_AGENT_DIR/conf/scouter.conf"

Scouter의 강점

👍 장점

  • 오픈소스 (비용 0)
  • 실시간성 뛰어남
  • Java 추적 깊음
  • 서버 부담 적음

⚠️ 한계

  • UI 투박
  • 설정이 수동적
  • 클라우드 네이티브는 약함

 

오픈소스 APM 스카우터 한눈에 요약하기

구글 notebooklm 인포그래픽