본문 바로가기
★꿀팁★

[Tip] Scouter Client&Server 설치

by prometedor 2024. 5. 29.

** Scouter 설치 전 Docker를 사전에 설치해야 한다.

https://la-reveuse.tistory.com/460

 

[Tip] Scouter 설치 전 세팅

1. WSL2 활성화ㄴ Hyper-V 체크 > 재부팅  2. WSL2 설치개발자는 Windows 컴퓨터에서 동시에 Windows와 Linux의 기능에 액세스할 수 있다. WSL(Linux용 Windows 하위 시스템)을 사용하면 개발자가 Linux 배포판(예:

la-reveuse.tistory.com

 

1. Scouter란?

Scouter는 애플리케이션 성능 관리(APM: Application Performance Management) 도구이다.

주로 서버 애플리케이션의 성능을 모니터링하고 문제를 진단하기 위해 사용된다.

Scouter는 다양한 기능을 제공하여 시스템 운영자와 개발자가 애플리케이션의 상태와 성능을 실시간으로 모니터링할 수 있도록 돕는다.

Scouter는 오픈 소스 프로젝트로, 누구나 무료로 사용할 수 있고, 시스템에 과부하를 주지 않도록 경량화된 에이전트를 사용한다.
Java, Node.js, Python 등의 다양한 언어로 작성된 애플리케이션을 모니터링할 수 있고, 다양한 플러그인과 연동을 통해 기능을 확장할 수 있다.

 

2. Scouter Client&Server 설치

** 주의 사항
collector server 버전은 java agent 버전과 같거나 더 상위 버전이어야 한다.

 

Scouter 다운로드 링크

https://github.com/scouter-project/scouter

 

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

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

github.com

=>

ㄴ Download > Latest Release 선택

=>

scouter-all-버전-target.gz : 서버와 에이전트 파일이 모두 포함되어 있음

scouter.client.product-os.x86_64.tar.gz : OS에 맞는 클라이언트 다운로드

=>

ㄴ 2.10.2 버전의 클라이언트scouter.client.product-win32.win32.x86_64.zip ) 와 서버scouter-all-2.10.2-tar.gz   )를 다운 받았다.

 

 

3. Scouter 서버 설치 및 구동

1) docker-compose.yml 파일 생성

ㄴ 클라이언트 파일을 압축을 풀고, 해당위치에  docker-compose.yml 파일을 생성한 후, 아래코드를 작성하여 scouter 서버가 구동될 때 환경을 미리 compose 파일로 설정하여 간편하게 이미지를 다운로드 받고 실행시켜 컨테이너를 생성하도록 한다.

=>

docker-compose.yml

version: '3.2'
services:
  scouter:
    image : scouterapm/scouter-server:2.17.1
    restart : always
    environment:
      - SC_SERVER_ID=SCCOUTER-COLLECTOR
      - NET_HTTP_SERVER_ENABLED=true
      - NET_HTTP_API_SWAGGER_ENABLED=true
      - NET_HTTP_API_ENABLED=true
      - MGR_PURGE_PROFILE_KEEP_DAYS=2
      - MGR_PURGE_XLOG_KEEP_DAYS=5
      - MGR_PURGE_COUNTER_KEEP_DAYS=15
      - JAVA_OPT=-Xms1024m -Xmx1024m
    volumes:
      - ./logs:/home/dress07/docker/scouter/logs
      - ./sc-data:/home/dress07/docker/scouter/database
    ports:
      - 6188:6180
      - 6100:6100
      - 6100:6100/udp
  scouter-paper:
    image : scouterapm/scouter-paper:2.6.4
    restart : always
    ports:
      - 8080:80

ㄴ 여러 개의 Docker 컨테이너를 하나의 애플리케이션처럼 구성하고 관리하기 위해 Docker Compose를 사용한다.

    ㄴ docker-compose up 명령어 하나로 모든 컨테이너를 시작하고, docker-compose down 명령어 하나로 모든 컨테이너를 종료할 수 있다.

 

 

2) Docker 이미지 다운로드 및 실행

$ docker-compose up -d

ㄴ PowerShell에서  docker-compose.yml을 생성한 위치에서 해당 명령어를 실행한다.

=>

ㄴ 실행 중 화면

=>

ㄴ 완료 화면

 

4. Scouter Agent 설치 및 구동

* 사전 작업

ㄴ scouter-all-2.10.2.tar.gz 압축파일을 scouter 경로에 붙여넣어준다.

 

1) Agent Host 환경 설정

$ tar xf .\scouter-all-2.10.2.tar.gz

ㄴ 일단 Agent 파일은 scouter-all-2.10.2.tar.gz 안에 들어있으므로 tar xf 명령어를 이용해서 압축을 풀어준다.

=>

$ wsl
$ cd {압축파일 풀어둔 위치}/scouter/agent.host/conf

ㄴ wsl을 실행한 후 vi편집기를 이용하여 scouter/agent.host/conf/ 위치에 있는 scouter.conf 파일을 아래와 같이 수정해준다.

=>

### scouter host configruation sample
net_collector_ip=127.0.0.1
net_collector_udp_port=6100
net_collector_tcp_port=6100
#cpu_warning_pct=80
#cpu_fatal_pct=85
#cpu_check_period_ms=60000
#cpu_fatal_history=3
#cpu_alert_interval_ms=300000
#disk_warning_pct=88
#disk_fatal_pct=92

=>

ㄴ 키보드 [ i ]를 눌러 편집모드를 실행한 후, 주석이 있었던 부분의 주석을 제거해줌

=>

ㄴ 키보드 [ ESC ]를 누른 후 ":wq"를 입력하고 [ Enter ]를 누른다. (wq는 저장 후 종료를 의미함)

 

2) Agent Java 환경 설정

/agent.java/conf/scouter.conf 수정

$ cd {압축파일 풀어둔 위치}/scouter/agent.java/conf

ㄴ wsl이 실행된 상태에서 vi편집기를 이용하여 scouter/agent.java/conf/ 위치에 있는 scouter.conf 파일을 아래와 같이 수정해준다.

=>

### scouter java agent configuration sample
obj_name={프로젝트명}
net_collector_ip=127.0.0.1
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=true
#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


#Host Name
obj_host_name=localhost

#Http Query String profile
profile_http_querystring_enabled=true

#Http Header profile
profile_http_header_enabled=true

#Http Parameter profile
profile_http_parameter_enabled=true

#Stack profile in occurrence of service error
profile_fullstack_service_error_enabled=true

#Stack profile in occurrence of apicall error
profile_fullstack_apicall_error_enabled=true

#Stack profile in occurrence of sql error
profile_fullstack_sql_error_enabled=true

#Stack profile in occurrence of commit error
profile_fullstack_sql_commit_enabled=true

#Stack profile in occurrence of sql error
profile_fullstack_hooked_exception_enabled=true

#Activating Reject service
control_reject_service_enabled=true

#Stack profile in occurrence of redis error
profile_fullstack_redis_error_enabled=true

#make unknown redis key stringify by force. (using new String(byte[])
profile_redis_key_forcibly_stringify_enabled=true

#Activating collect sub counters using JMX
jmx_counter_enabled=true

#Activating private Method hooking
hook_method_access_private_enabled=true

#Activating protected Method hooking
hook_method_access_protected_enabled=true

#Activating none Method hooking
hook_method_access_none_enabled=true

=>

ㄴ 이전과 같이 i를 이용해 편집모드를 실행하여 파일을 수정한 후 wq를 이용해 저장 후 종료한다.

 

JVM 파라미터 설정

  • 애플리케이션이 구동되면서 JVM이 올라갈 때, scouter를 같이 올리므로 JVM이 구동될 때, 파라미터로 scouter도 같이 올리도록 파라미터를 설정해준다.
  • Java 기반 웹 애플리케이션은 WAS들이 자체적으로 JVM을 내장하고 있으며, 웹 애플리케이션을 배포하고 실행하는 과정에서 내부적으로 JVM을 관리하므로 다음 설정 값을 환경에 맞게 설정해주면 된다.
-javaagent:"{상위경로}\scouter\agent.java\scouter.agent.jar" -Dscouter.config="{상위경로}\scouter\agent.java\conf\scouter.conf"

=>

ㄴ Window > Preferences 탭 선택

=>

ㄴ Tomcat > JVM Settings > Append to JVM Parameters > [Add] 버튼 선택 (외장 톰캣을 사용 시)

=>

ㄴ 해당 위치에 코드를 넣어준다.

=>

ㄴ [Apply and Close]를 선택하여 적용하고 창을 닫도록 한다.

 

 

 

모든 설정이 끝난 후 Tomcat을 실행하면,

ㄴ 아래와 같이 노출되면 Scouter가 실행된다.

 

 

ㄴ scouter.exe 더블클릭하여 실행

=>

ㄴ 초기 Password는 admin이므로 admin을 입력한 후 [OK] 버튼을 선택한다.

=>

=>

ㄴ [XLog - Tomcat] 탭을 선택한 후 원하는 부분을 드래그해서 정보를 확인할 수 있다.

 

 

++ 추가 내용

*** 주의 ***
scouter는 자바 1.8버전에서 동작한다.
(환경변수 설정 할 때 자바를 1.6버전으로 설정해서 오류가 발생해봄)

ㄴ 시스템 속성 > 고급 탭 > [환경 변수] 선택

ㄴ 시스템 변수 > JAVA_HOME 선택 > [편집] 선택

ㄴ [디렉터리 찾아보기] 선택 > 다운 받아져있는 jdk-1.8 위치 선택 > [확인] 선택

ㄴ [확인] 선택

ㄴ 시스템 속성 > 고급 탭 > [환경 변수] 선택

ㄴ 시스템 변수 > Path 선택 > [편집] 선택

ㄴ [새로 만들기] 선택 > %JAVA_HOME%\bin 입력 > [위로 이동]을 이용해서 맨 위로 올려주기 > [확인]

ㄴ [확인] 선택

ㄴ 열려있던 PowerShell 종료 후 새로 열어서 자바 버전 확인

 

 

<여담>

해당 툴은 회사 선임님께서 추천을 해주셨다...!!