Scouter 소개
이번 포스팅에서는 오픈소스 APM 중 OpenTelemetry에 이어 Scouter에 대해서 소개하고자 합니다.
Scouter는 LG CNS에서 개발한 오픈소스 APM으로 Windows, Linux, Mac 등의 다양한 OS 성능 및 Java Application 성능 데이터를 수집할 수 있습니다.
그럼 Java Application의 성능 데이터를 수집하기 위해서 Scouter를 어떻게 사용하는지 알아 보겠습니다. 각 구성 요소 별로 알아볼 건데, 구성 요소는 다음과 같습니다.
- Server (Collector): Agent가 전송한 데이터 수집/처리
- Java Agent: 실시간 서비스 성능 정보 및 Heap Memory, Thread 등의 Java 성능 정보를 Server로 전송
- Client (Viewer): 수집된 성능 정보를 확인하기 위한 Client(UI) 프로그램
1. 서버(Collector)
1.1 다운로드(경로: https://github.com/scouter-project/scouter/releases)
먼저 Assets 항목에서 서버와 클라이언트 모듈을 다운로드해야 합니다.
- scouter-all-2.17.1.tar.gz : Collector와 Agent 에이전트 모듈이 모두 포함된 파일
- scouter.client.product-win32.x86_64.tar.gz : Windows 버전의 클라이언트 파일
1.2 압축 해제
정보를 수집할 서버에 scouter-all-2.17.1.tar.gz 파일을 업로드 후 압축을 풉니다.
1.3 서버 설정
scouter/server/conf/scouter.conf 파일을 열어 아래와 같이 수정합니다.
#수집 서버가 여러 대 있을 경우 구분을 위해 ID 지정 필요
server_id=1
# 서버 리스닝 TCP/UDP 포트, 디폴트 6100(사전에 해당 포트 방화벽 해제 필요)
net_tcp_listen_port=6100
net_udp_listen_port=6100
1.4 서버 실행
아래와 같이 Server를 실행합니다.
/scouter/server/startup.sh
2. Java Agent
2.1 Java Agent 설정
scouter/agent.java/conf/scouter.conf 파일을 열어 아래와 같이 수정합니다.
### scouter java agent configuration sample
obj_name=agenttester
net_collector_ip=192.168.10.9
net_collector_udp_port=6100
net_collector_tcp_port=6100
_trace_auto_service_enabled=true
_trace_auto_service_backstack_enabled=true
#모니터링 대상이 되는 Application의 클래스 명 설정
hook_method_patterns=com.*.*
hook_method_access_public_enabled=true
hook_method_access_private_enabled=false
hook_method_access_protected_enabled=false
hook_method_access_none_enabled=false
hook_method_ignore_prefixes=get,set
2.2 Java Application 실행
아래와 같이 성능 측정 대상 Application을 실행합니다.
java -javaagent:/scouter/agent.java/scouter.agent.jar -Dscouter.config=/scouter/agent.java/conf/scouter.conf \
-jar agenttester.jar
3. Client
※ Client는 Java 11 이상에서만 실행 가능하다는 점 참고하세요.
3.1 압축 해제
클라이언트 PC에 scouter.client.product-win32.x86_64.tar.gz 파일을 업로드 후 압축을 풉니다.
3.2 실행
아래와 같이 Client를 실행합니다.
scouter.client.product-win32.win32.x86_64\scouter.client\scouter.exe
Server Address는 Collector가 실행되는 host 정보를 입력하고, ID와 Password는 기본값인 admin을 각각 입력합니다.
(password 바꾸는 방법은 모르겠네요ㅜㅜ)
3.3 설정
Java Application 성능 데이터 수집을 하려면 모니터링 타겟을 Java Application으로 변경해야 합니다.
아래와 같이 변경해 주세요.
- Windows -> preference
- Default ‘JavaEE‘: java 선택(Tomcat, Jetty 등 선택 가능함)
변경을 하게 되면, 아래와 같이 Applcation으로부터 수집한 데이터가 차트에 scattering 되는 것을 확인할 수 있습니다.
지금까지 Scouter를 사용하는 방법을 알아보았습니다.
많은 기능들이 있으니, 직접 다양하게 사용해 보시기 바랍니다.
그럼 이번 포스팅은 여기서 마치겠습니다.
Reference
https://shallow-learning.tistory.com/entry/Scouter-%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-APM%EC%9C%BC%EB%A1%9C-%EC%9B%B9%EC%96%B4%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%EC%84%B1%EB%8A%A5-%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81-%ED%95%98%EA%B8%B0-%EB%AC%B4%EB%A3%8C