IT/Linux
Scouter를 활용한 Tomcat 성능 모니터링 구성
xego
2025. 3. 22. 16:21
Java 기반 웹 애플리케이션 서버(WAS)인 Tomcat에서 Scouter를 이용한 성능 모니터링 시스템의 구축 및 활용 방법을 확인해 보도록 하겠다.
■ Scouter
오픈 소스 APM(Application Performance Monitoring) Java/JVM 애플리케이션을 위한 성능 모니터링 도구 애플리케이션의 실시간 성능을 모니터링하고 분석하는 데 사용 |
실시간 모니터링: JVM 메모리, CPU 사용률, 액티브 트랜잭션, 응답 시간 등을 실시간으로 모니터링 트랜잭션 추적: 요청부터 응답까지의 전체 처리 과정을 추적하여 병목 지점 식별 SQL 모니터링: 느린 쿼리 식별 및 데이터베이스 연결 상태 모니터링 |
■ Scouter 아키텍처
Agent (에이전트) | Java Agent: Java 애플리케이션(Tomcat 등)에 장착 Host Agent: 서버 시스템 리소스(CPU, 메모리, 디스크 등) 모니터링 모니터링 대상 시스템에 설치되어 성능 데이터를 수집 |
Server (수집 서버) | 에이전트로부터 데이터를 수집하고 저장 성능 데이터 분석 및 통계 처리 경고 발생 및 관리 |
Client (클라이언트) | 수집된 데이터를 시각화하여 사용자에게 제공 실시간 대시보드, 트랜잭션 분석 도구 등 포함 Java Swing 기반 독립 애플리케이션으로 제공 |
* Java : "한 번 작성하여 어디서나 실행" 철학, Java가 실행되는 모든 플랫폼에서 일관된 모양과 동작을 유지함.
* Java swing : Java 프로그래밍 언어를 위한 그래픽 사용자 인터페이스(GUI) 라이브러리
■ Tomcat에 Scouter 설정
1. scouter 다운로드
# 작업 디렉토리 생성
mkdir -p ~/scouter
cd ~/scouter
# Scouter 최신 버전 다운로드 (GitHub에서)
wget https://github.com/scouter-project/scouter/releases/download/v2.15.0/scouter-all-2.15.0.tar.gz
# 압축 해제
tar -xvf scouter-all-2.15.0.tar.gz
2. Scouter 디렉토리 구조 분석
[test@localhost scouter]$ ls
agent.batch agent.host agent.java agent.java_6_7 server webapp
agent.java: 일반 Java 애플리케이션 및 WAS(Tomcat) 모니터링용 에이전트 agent.java_6_7: Java 6/7 버전 호환 에이전트 agent.host: 서버 자원(CPU, 메모리, 디스크 등) 모니터링용 에이전트 agent.batch: 배치 작업 모니터링용 에이전트 |
server 디렉토리 : 에이전트로부터 데이터를 수집하고 저장하는 서버 컴포넌트 [test@localhost server]$ ls 38003.scouter env.sh logs sample1.startcon.sh sample2.startup.sh scouter-server-boot.jar startup.bat startup_512m.sh conf extweb nohup.out sample1.startup.sh sample2.stop.sh startcon.bat startup.sh stop.bat database lib plugin sample2.readlink.sh sample3.startup.sh startcon.sh startup_512m.bat stop.sh conf: 서버 설정 파일 디렉토리 database: 수집된 데이터가 저장되는 디렉토리 |
webapp 디렉토리 : 수집된 데이터를 웹 브라우저에서 시각화하고 분석하는 인터페이스 [test@localhost webapp]$ ls README.txt conf extweb lib readlink.sh scouter-webapp-2.15.0.jar scouter.webapp.jar startup.bat startup.sh stop.bat stop.sh conf: 웹 인터페이스 설정 파일 디렉토리 lib: 웹앱에 필요한 라이브러리 파일 |
■ Scouter 설정 및 실행 방법
1. 서버 설정 파일 편집
/scouter/server/conf
vi scouter.conf
# 서버가 수신할 포트 설정
net_tcp_listen_port=6100
net_udp_listen_port=6100
cd /scouter/server
./startup.sh
2. 호스트 에이전트 설정
/scouter/agent.host/conf
vi scouter.conf
# 연결할 서버 설정
net_collector_ip=127.0.0.1
net_collector_udp_port=6100
net_collector_tcp_port=6100
cd /scouter/agent.host
./host.sh
3, 에이전트 설정 및 Tomcat 연동
/scouter/agent.java/conf
vi scouter.conf
# 애플리케이션 이름 설정
obj_name=tomcat-test
# 연결할 서버 설정
net_collector_ip=127.0.0.1
net_collector_udp_port=6100
net_collector_tcp_port=6100
vi $TOMCAT_HOME/bin/catalina.sh
# Scouter Agent 설정
SCOUTER_AGENT_DIR="/scouter/agent.java"
CATALINA_OPTS="$CATALINA_OPTS -javaagent:$SCOUTER_AGENT_DIR/scouter.agent.jar"
CATALINA_OPTS="$CATALINA_OPTS -Dscouter.config=$SCOUTER_AGENT_DIR/conf/scouter.conf"
4. 인터페이스 접속
웹 브라우저에서 http://서버IP:6180에 접속하여 모니터링 인터페이스를 확인
6100 포트 - Collector 서버 포트 | Scouter의 Collector 서버가 에이전트로부터 데이터를 수집하는 데 사용함. net_collector_ip_port_id_pws=127.0.0.1:6100:admin:admin > 웹앱이 IP 127.0.0.1, 포트 6100에서 실행 중인 Collector 서버에 연결한다는 의미 |
6180 포트 - Webapp 자체의 HTTP 서비스 포트 | 웹앱이 사용자에게 웹 인터페이스를 제공하는 데 사용하는 HTTP 서버 포트 HTTP 포트는 일반적으로 별도의 설정 라인에 명시되거나, 설정되지 않았을 경우 기본값인 6180을 사용함. |
굳이 접속 포트를 바꾸고싶다면 scouter/webapp/conf/scouter.conf 에서 net_http_server_port=8080 해주자