반응형

 

APM

Application Performance Management/Monitoring 의 줄임말로써, 애플리케이션(시스템, 응용 소프트웨어)의 성능과 서비스 안정성을 감시하고 관리하는 솔루션을 말한다.

 

사내에서 APM 툴로 오픈소스인 스카우터(Scouter)를 활용하였다.
스카우터는 LG CNS에서 개발한 오픈소스 APM이다. 간단한 설치 및 직관적이고 다양한 모니터링 기능을 제공하며 오픈소스이기 때문에 누구나 쉽게 사용할 수 있다.

 

1. Scouter 다운로드

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

Scouter 릴리즈 페이지에서 최신 버전을 다운로드 한다. 

  • scouter-all-[version].tar.gz : Scouter Collector와 Agent를 포함하는 압축파일
  • scouter.client.product-[os].tar.gz : 각 OS별 Client(Viewer) 프로그램

 

2. Scouter Server 설치 및 가동

scouter-all-[version].tar.gz 압축을 풀어준뒤, scouter server를 실행한다. 
startup.sh 또는 startup.bat 실행하면 된다. 

 

로컬에서 다운로드받은 tar.gz 파일을 리눅스 서버에 전송하기 위해 아래와 같이 입력하여 압축 파일을 전송한 뒤 scouter server를 실행하였다.

### 로컬 -> 서버로 파일 단일 전송 
> scp [전송할 파일 경로] [유저명]@[IP주소]:[받을 경로]

전송할 파일 경로는 절대경로를 명시한다. 

 

### tar.gz 압축 풀기
> tar -xvf [파일명]

 

netstat -an | grep 6100 을 해보면 Scouter Server가 LISTEN 하고 있는 것을 알 수 있다.

 

3. Scouter Client 실행

  • scouter.client.product-[os].tar.gz의 압축을 풀고 실행한다.
  • 맥용 클라이언트는 Java 11 버전 이상이어야 한다.
  • 접속할 Scouter Serve의 IP나 도메인을 입력한다.
  • ID와 Password를 입력한다.
    기본값 : admin / admin

 

4. Hose Agent 실행 

  • Host Agent 실행 전에 먼저 Collector 접속 설정이 필요하다.
  • 설정 파일에 Collector의 IP와 Port 정보를 설정한다.
    - 설정 파일(default) : [scouter-dir]/agent.host/conf/scouter.conf
### scouter hose configuration
net_collector_ip=[IP정보]
net_collector_udp_port=6100
net_collector_tcp_port=6100
  • net_collector_ip에는 Collector 접속 IP나 도메인을 기입한다.
  • 기본 port 값이 6100이므로, Collector 설치시 port 정보를 변경하지 않았다면 port 설정은 하지 않아도 된다.

 

5. Java Agent 실행

Java Agent는 Heap Memory, Thread 등의 Java Application의 성능 정보를 파악할 수 있다.
tomcat 위에서 기동할 application을 모니터링 하기 위해 scouter agent를 설치 및 설정해보자.
host agent를 설치시 scouter 폴더에 agent.java 폴더가 있는데 해당 폴더가 java agent 작업을 할 때 살펴봐야 하는 부분이다. 해당 경로에도 conf 폴더가 있고 scouter.conf 파일에서 collector 서버와 연결을 해주는 설정을 해주어야 한다.

### scouter java agent configuration sample
#obj_name=WAS-01
#net_collector_ip=[IP정보]
#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

 

tomcat 에도 catalina.sh 나 startup.sh 파일에서 scouter agent의 정보를 넣어준다.

export SCOUTER_AGENT_DIR=[파일경로]/agent.java
JAVA_OPTS=" ${JAVA_OPTS} -javaagent:${SCOUTER_AGENT_DIR}/scouter.agent.jar"
JAVA_OPTS=" ${JAVA_OPTS} -Dscouter.config=${SCOUTER_AGENT_DIR}/conf/scouter1.conf"
JAVA_OPTS=" ${JAVA_OPTS} -Dobj_name=8080"

 

이후 서버 재기동 및 스카우터도 시작한다.
/tomcat/bin/startup.sh 및 scouter/server/startup.sh 를 실행하면 된다.

 / ___|  ___ ___  _   _| |_ ___ _ __ 
 \___ \ / __/   \| | | | __/ _ \ '__|
  ___) | (_| (+) | |_| | ||  __/ |   
 |____/ \___\___/ \__,_|\__\___|_|                                      
 Open Source S/W Performance Monitoring  
 Scouter version 2.20.0
 
20240620 13:55:33 [SCOUTER] Version 2.20.0 2023-05-29 05:14 GMT_ENV_java8plus
20240620 13:55:33 [SCOUTER] loaded by system classloader 
20240620 13:55:33 [SCOUTER] jar:file:/APP/scouter/agent.java/scouter.agent.jar
20240620 13:55:33 [SCOUTER] objType:tomcat
20240620 13:55:33 [SCOUTER] objName:/devRCS/8080
20240620 13:55:33 [A113] Counter Collector Started (#19)
20240620 13:55:33 [A113] InteractionCounter Collector Started (#19)

 

 

클라이언트 프로그램 실행 ◀

Client 에 들어가서 보면 host agent 아래에 톰캣을 상징하는 고양이가 들어가 있다면 정상적으로 실행된 것이다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기