본문 바로가기
개발/DevOps & APM

[APM] Scouter ?

by seopport 2023. 8. 5.
728x90
반응형

1. Open Source Program Scouter ?

 - 오픈 소스 모니터링 도구로서 JAVA & WAS 에 대한 모니터링 및 DB Agent를 통해 오픈소스 DB모니터링 기능을 제공하는 프로그램입니다.

 - 오픈 소스 프로그램으로서, 기존 비용이 많이 들었던 APM (Application Performance Monitoring) 서비스를 무료로 이용 가능합니다.


 - CPU, MEMORY 등 서버 기본 자원부터 NETWORK 및 Heap usage, Connection pools 등 지속적인 모니터링이 필요한 자원을 효과적으로 관리할 수 있습니다.

Souter 로고

2. Scouter 설치 방법

 

2-1. Scouter Release Page ( 2.10.0 예제 ) - Scouter Releases

 

Releases · scouter-project/scouter

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

github.com

 

설치 페이지 참고 이미지
설치 페이지 참고 이미지

 

2-2 scouter-all-2.10.0.tar.gr (Server Install)

Scouter Colletor, Host, Agent등을 포함한 압축파일

 

2-3 scouter.client.product-win32.wim32.x86_64.zip (Client Install)

각 OS별 Client 프로그램(필자는 Window 환경)

 

2-4 Scouter Server 구성 및 실행

 

위의 홈페이지를 통하여, 최신 릴리즈 다운로드 진행

$ wget https://github.com/scouter-project/scouter/releases/download/v2.10.0/scouter-all-2.10.0.tar.gz

 

압축 파일 풀기 및 이동 후 실행

# 압축파일 풀기
$ tar -xvf scouter-all-2.10.0.tar.gz

# 경로 이동
$ cd ./local/scouter

# Scouter start
$ ./startup.sh

 

Scouter 설치 확인
Scouter 설치 확인

 

[오류] 만약,  JDK 설정이 제대로 안 되어 있다면?

JDK 설정 오류 시 화면
JDK 설정 오류 시 화면

 

# Tip 스카우터 서버는 JDK 1.8 버전 이상이 필요

해결 방안 - java -version 을 확인해보세요.
필자의 경우, 서버 복원시 경로를 재설정해서 해결해주었습니다.

 

2-6 Host Agent 구성 및 실행

Host Agent : OS의 CPU, memory, DISK 사용량 등 성능 정보 전송

 

$ vi /scouter 설치 경로/agent.host/conf/scouter.conf

 

# net_collector_ip : Agent에서 수집한 데이터를 보낼 서버의 ip address
# 필자의 경우 서버 ip 주소를 입력

# Server IP(default:127.0.0.1)
net_collector_ip = ip address 입력

# Port Setting(default:6100)
net_collector_udp_port=6100
net_collecotr_tcp_port=6100
# 실행

$ cd /scouter 설치 경로/agent.host
$ ./host.sh


2-7 Java Agent 구성 및 실행

Java Agent : 실시간 서비스 성능 정보, Heap Memory, Thread 등의 Java 성능 정보

 

$ vi /scouter 설치 경로/agent.java/conf/scouter.conf

 

# obj_name 과 ip address 변경

obj_name=(WAS-seo 하고 싶은 변수명)
net_collector_ip= (ip address)
net_collector_udp_port=6100
net_collector_tcp_port=6100
hook_method_patterns=sample.mybiz.*Biz.*,sample.service.*Service.*
trace_http_client_ip_header_key=X-Forwarded-For
profile_spring_controller_method_parameter_enabled=false
hook_exception_class_patterns=my.exception.TypedException
profile_fullstack_hooked_exception_enabled=true
hook_exception_handler_method_patterns=my.AbstractAPIController.fallbackHandler,my.ApiExceptionLoggingFilter.handleNotFoundErrorResponse
hook_exception_hanlder_exclude_class_patterns=exception.BizException

 

2-8 Scouter Client 실행

 

설치 폴더 확인
설치 폴더 확인

 

스카우터 접속 화면
스카우터 접속 화면

2-9 Wildfly & Scouter 연동 후 실행( ./standalone.sh )

 

$ vi /wildfly 설치 경로/bin/standalone.sh

 

# standalone.sh 하위 내용 추가

#Scouter
export JAVA_OPTS=" $JAVA_OPTS -Djboss.modules.system.pkgs=org.jboss.byteman,scouter"
export JAVA_OPTS=" $JAVA_OPTS -Dscouter.config=/app/apm/scouter/agent.java/conf/scouter.conf"
export JAVA_OPTS=" $JAVA_OPTS -javaagent:/app/apm/scouter/agent.java/scouter.agent.jar"

 

[오류] SCOUTER 연결 중 발생한 오류 

 

오류 확인

ERROR [io.undertow.request] (default task-1) ut005023:
exception handling request to /springtest/: java.lang.noclassdeffounderror: scouter/agent/trace/tracemain
.
.
.
.
...

 

해결 방안

* 오류 확인 시: scouter 확인

* 해결방안 (standalone.sh 하위 내용 추가 scouter 추가)

# 변경 전

#Scouter
export JAVA_OPTS=" $JAVA_OPTS -Djboss.modules.system.pkgs=org.jboss.byteman"
export JAVA_OPTS=" $JAVA_OPTS -Dscouter.config=/app/apm/scouter/agent.java/conf/scouter.conf"
export JAVA_OPTS=" $JAVA_OPTS -javaagent:/app/apm/scouter/agent.java/scouter.agent.jar"

# 변경  후

#Scouter
export JAVA_OPTS=" $JAVA_OPTS -Djboss.modules.system.pkgs=org.jboss.byteman,scouter"
export JAVA_OPTS=" $JAVA_OPTS -Dscouter.config=/app/apm/scouter/agent.java/conf/scouter.conf"
export JAVA_OPTS=" $JAVA_OPTS -javaagent:/app/apm/scouter/agent.java/scouter.agent.jar"

 

# 실행
$ ./standalone.sh

 

스카우터 실행 완료 화면
스카우터 실행 완료 화면

 

2-9-1 Scouter 실행 결과 - 개인

 

WAS 에 접근 시, 접속 로그 확인

로그 접근 - 1
로그 접근 - 1
로그 접근 - 2
로그 접근 - 2

 

728x90
반응형

'개발 > DevOps & APM' 카테고리의 다른 글

[APM] Grafana(그라파나) ?  (0) 2023.08.09