** Scouter 설치 전 Docker를 사전에 설치해야 한다.
https://la-reveuse.tistory.com/460
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
=>
ㄴ 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 종료 후 새로 열어서 자바 버전 확인
<여담>
해당 툴은 회사 선임님께서 추천을 해주셨다...!!
'★꿀팁★' 카테고리의 다른 글
[Tip] Scouter 설치 전 세팅 (0) | 2024.05.29 |
---|---|
[Tistory 꾸미기] Tistory 코드블럭 꾸미기 - highlight 적용 방법 (0) | 2024.05.17 |
[네이버 클라우드] NCE 자격증 공부 방법 및 후기 (33) | 2023.12.23 |
[네이버 클라우드] NCP 자격증 공부 방법 및 후기 (0) | 2023.12.12 |