본문 바로가기
컴퓨터 활용(한글, 오피스 등)/50_2.운영체제_리눅스

스카우터 설치 및 실행(+Jenkins, SpringBoot)

by 3604 2023. 5. 11.
728x90

[scouter] 스카우터 설치 및 실행(+Jenkins, SpringBoot)

 출처: https://blog.naver.com/PostView.naver?blogId=smj9030&logNo=222548585671&parentCategoryNo=&categoryNo=10&viewDate=&isShowPopularPosts=true&from=search

APM (Application Perpermance Monitoring)

어플리케이션 성능을 모니터링 할 수 있는 툴이다.

?

공공/금융 기업은 주로 제니퍼(Jennifer)라는 APM(상용)을 많이 사용한다.

스카우터는 이 중 톰캣 또는 JBoss 같은 톰캣 계열 어플리케이션 서버에 한정되어 사용할 수 있는 APM 모니터링 툴이다.

 

Scouter

스카우터는 LG CNS에서 개발한 오픈소스 APM이다.

간단한 설치에 비해 직관적이고 다양한 모니터링 기능을 제공하며 오픈소스이기 때문에 누구나 쉽게 사용할 수 있다.

 

Modules
설명
Server(Collector)
Agent가 전송한 데이터 수집/처리
Host Agent
OS의 CPU,Memory, Disk등의 성능 정보 전송
Java Agent
실시간 서비스 성능정보, Heap Memory, Thread 등 Java 성능 정보
Client(Viewer)
수집된 성능 정보를 확인하기 위한 client 프로그램

1. scouter 다운로드

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

$ wget https://github.com/scouter-project/scouter/releases/download/v2.15.0/scouter-all-v2.15.0.tar.gz $ tar -xvf scouter-all-2.15.0.tar.gz

다운로드 받고 압축을 풀어준다. 그럼 scouter 폴더가 생성되고, 안에 들어가보면 다음과 같은 폴더를 볼 수 있다.

 

2. Collecter 서버 실행

 

/server/startup.sh 로 collector 서버를 실행할 수 있다.

 

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

 

3. Scouter Client 실행

 

pc에 클라이언트 프로그램을 다운받는다. 버전 2.15.0이 설치가 안 돼서 버전 2.12.0.1을 다운받았다.

압축을 풀고 scouter.exe을 실행시키면 ID와 Password를 입력하라고 나오는데 기본값은 둘 다 admin 이다.

또한 접속할 서버의 ip주소를 적어주고 접속하면 scouter의 object에서 확인할 수 있다.

 

4. Host Agent 실행

 

/scouter/agent.host/conf

설정파일에 Collector의 ip와 port 정보를 설정한다.

기본 port 값이 6100이므로, Collector 설치시 port 정보를 변경하지 않았다면 port 설정은 하지 않아도 된다.

### scouter host configruation sample
net_collector_ip=ip주소
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

./host.sh 로 Host Agent를 시작한다.

 

5. Java Agent 실행

 

나는 이중화를 위해 8080, 8081, 8082, 8083 포트가 모두 하나의 스프링부트 어플리케이션을 띄우도록 설정해놓았다.

그러므로 각 포트마다 모니터링을 해야 하므로 conf 파일을 수정하여 각 포트와 연결되도록 설정할 것이다.

포트가 4개이므로 conf파일을 4개 만든다.

 

1) /scouter/agent.java/conf

 

기존에 있던 testcase-scouter.conf 를 제외하고 scouter1.conf 부터 scouter4.conf 파일 4개를 만들었다.

안에 내용은 동일한데, obj_name만 변경해주었다.

### scouter java agent configuration sample
#obj_name=8080
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 ~

?

2) tomcat의 bin/catalina.sh 파일 수정

?

Scouter와 연동할 tomcat의 bin/catalina.sh 파일을 vi 편집기로 열어서 옵션을 추가해준다.

export SCOUTER_AGENT_DIR=/home/asmanager/scouter/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"

나는 톰캣을 두 개 설치했기 때문에 8083포트로 연결되는 톰캣의 파일을 수정해주었다.

export SCOUTER_AGENT_DIR=/home/asmanager/scouter/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=8083"

?

3) 톰캣의 /bin/startup.sh 로 가동해준다.

?

두 톰캣을 각각 가동해주면 클라이언트 프로그램에서 -Dobj_name로 설정해준 이름이 뜨게 되고 8080, 8083 포트로 접속했을 경우를 모니터링할 수 있다.

?

나머지 8081과 8082포트는 젠킨스에서 빌드 시 쉘에 추가해주면 되는데, -DScouter.config로 conf파일을 연결해주고

-Dobj_name으로 클라이언트에 보여질 이름을 설정해주면 된다.

- 8081포트 BUILD_ID=dontKillMe java -javaagent:/home/asmanager/scouter/agent.java/scouter.agent.jar -Dobj_name=8081 -DScouter.config=/home/asmanager/scouter/agent.java/conf/scouter2.conf -jar -Dserver.port=8081 /home/asmanager/.jenkins/jobs/springboot1/workspace/target/admin-0.0.1-SNAPSHOT.war & - 8082포트 BUILD_ID=dontKillMe java -javaagent:/home/asmanager/scouter/agent.java/scouter.agent.jar -Dobj_name=8082 -DScouter.config=/home/asmanager/scouter/agent.java/conf/scouter3.conf -jar /home/asmanager/.jenkins/jobs/springboot1/workspace/target/admin-0.0.1-SNAPSHOT.war &

이렇게 작성하고 젠킨스에서 배포하면 8081, 8082 포트가 켜지고 클라이언트에서 각 포트를 모니터링 할 수 있는 것이다.

?

?

????클라이언트 화면????

?

728x90