'APM'에 해당되는 글 1건
- 2018.02.23
프로젝트를 진행하면서 서버에서 수행되는 Transaction을 모니터링하기 위해서 APM(Application Performance Tool)을 적용한다.
한국에서 가장 많이 사용하는 APM 툴은 Jenifer로 Trial License로 설치하여 성능을 모니터링을 할 수 있으나 Open Source Scouter를 설치하여 모니터링하는 것도 좋은 방법이라고 생각한다.
Scouter는 git hub(https://github.com/scouter-project/scouter)에 접속하면 다운로드를 받을 수 있고 설치 메뉴얼을 제공한다.
설치 메뉴얼에 따라 쉽게 설치가 가능하다.
Scouter 설치 방법
■ Scouter Download
https://github.com/scouter-project/scouter에서 다운로드 받는다.
최신 버전은 Java 1.8 이상을 지원하기 때문에 서버의 환경의 Jdk 버전을 지원하는 Scouter를 다운로드 받는다.
Jdk1.7을 사용하는 환경에서는 v1.7.3.1을 설치한다.
■ Scouter 압축해제
scouter-all-1.7.3.1.tar.gz 파일을 다운 받아 압축을 해제하면 다음과 같이 Folder가 생성된다(명령어 : tar -zxf scouter-all-1.7.3.1.tar.gz)
- agent.batch : 배치 모니터링
- agent.host : Resource(CPU, Memory) 모니터링
- agent.java : WAS 모니터링
- server : Collector
■ 설치전 준비사항
user 계정에 SCOUTER_AGENT_DIR을 다음과 같이 설정한다.
export SCOUTER_AGENT_DIR=/scouter/agent.java |
WAS(예:Tomcat)의 setenv.sh에 Agent를 등록한다(위치 : $(TOMCAT_HOME)/bin/setenv.sh
JAVA_OPTS=" ${JAVA_OPTS} -javaagent:${SCOUTER_AGENT_DIR}/scouter.agent.jar" JAVA_OPTS=" ${JAVA_OPTS} -Dscouter.config=${SCOUTER_AGENT_DIR}/conf/scouter.conf" JAVA_OPTS=" ${JAVA_OPTS} -Dobj_name=TOMCAT-WAS1" |
■ Scouter Collector 설정
Scouter가 설치된 디렉토리의 server/conf 디렉토리로 이동한다.
vi Editor로 scouter.conf 파일을 오픈하여 다음 내용을 입력한다.
# Agent Control and Service Port(Default : TCP 6100) net_tcp_listen_port=6100 # UDP Receive Port(Default : 6100) net_udp_listen_port=6100 # DB directory(Default : ./database) db_dir=./database # Log directory(Default : ./logs) log_dir=./logs |
여기서 중요한 부분은 Collector가 listen하는 Port를 설정한다. Default로 6100을 사용하고 있으며, Collector가 설치되는 시스템에서 이미 6100 포트를 사용하면 다른 포트로 지정하여야 한다.
설정이 완료되면 server 디렉토리에서 startup.sh Shell을 실행한다.
./startup.sh
[tomcat server]$ ./startup.sh nohup: redirecting stderr to stdout ____ _ / ___| ___ ___ _ _| |_ ___ _ __ \___ \ / __/ \| | | | __/ _ \ '__| ___) | (_| (+) | |_| | || __/ | |____/ \___\___/ \__,_|\__\___|_| Open Source S/W Performance Monitoring Scouter version 1.7.3.1
|
■ agent.host 설정
agent.host는 서버의 자원을 모니터링하는 Component 이다.
../agent.host/conf 파일로 이동하여 scouter.conf 파일을 오픈한다.
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 |
net_collector_ip는 Collector가 설치된 서버의 IP 주소를 설정한다.
net_collector_udp_port는 Collector가 Listen하고 있는 UDP Port를 설정한다.
net_collector_tcp_port는 Collector가 Listen하고 있는 TCP Port를 설정한다.
설정이 완료되면 ../agent.host/host.sh Shell을 수행한다.
■ agent.java 설정
agent.java는 WAS의 서비스를 모니터링하기 위한 Component이다.
../agent.java/conf 디렉토리에서 scouter.conf 파일을 오픈한다.
obj_name=TOMCAT-WAS1 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=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 |
obj_name는 WAS Instance이름이다.
net_collector_ip는 Collector가 설치된 서버의 IP 주소를 설정한다.
net_collector_udp_port는 Collector가 Listen하고 있는 UDP Port를 설정한다.
net_collector_tcp_port는 Collector가 Listen하고 있는 TCP Port를 설정한다.
설정이 완료되면 WAS를 재기동한다.
WAS의 로그에 Scouter 관련된 로그가 생성된다.
____ _ / ___| ___ ___ _ _| |_ ___ _ __ \___ \ / __/ \| | | | __/ _ \ '__| ___) | (_| (+) | |_| | || __/ | |____/ \___\___/ \__,_|\__\___|_| Open Source S/W Performance Monitoring Scouter version 1.7.3.1 20180223 03:49:27 [SCOUTER] Version 1.7.3.1 2017-08-21 11:58 GMT 20180223 03:49:27 [SCOUTER] loaded by system classloader 20180223 03:49:27 [SCOUTER] jar:file:/engn001/scouter/agent.java/scouter.agent.jar 20180223 03:49:27 [SCOUTER] objType:tomcat
|
이것으로 WAS와 Scouter의 연동이 완료되었다.
■ Scouter Client설치
Scouter Client는 Eclipse Plugin으로 개발되어 있기 때문에 https://github.com/scouter-project/scouter에서 클라이언트 환경에 맞는 scouter client를 다운로드 받는다.
다운로드가 완료되면 압축을 해제한 후 scouter.exe 파일을 실행하면 모니터링이 가능하다.