본문 바로가기

개발/Etc.

Scouter 오픈소스 APM 설치 및 다중 Agent 및 Tomcat 연동

반응형

0. 개요

 - LG CNS에서 만든 오픈 소스 APM(Application Performance Management) 툴
 - Apache License 2.0으로 사용의 범위가 아주 넓다
 - 다양한 3rd-Party Plugin들이 있어서 확장성도 아주 좋은 편 (UI를 변경한다거나.. 특정 알림을 텔레그램으로 받는 등)
 - Java 기반의 Stand-Alone 애플리케이션 혹은 Java 기반 Web Application을 모니터링 할 수 있다
 - 각 OS별 Host를 모니터링 할 수 있다 (메모리, CPU 등)
 

1. 구성

 - Collector : Agent에서 보내온 데이터를 수집하는 역할
 - agent.java : Java 기반의 Stand-Alone 애플리케이션 혹은 Java 기반 Web Application의 모니터링 데이터를 Collector  서버로 전송하는 역할
 - agent.host : 각 OS별 메모리, CPU등의 Host 데이터를 Collector 서버로 전송하는 역할
 - Client : 모니터링 담당자가 Collector 서버가 수집하는 실시간 정보를 한눈에 모니터링 할 수 있는 툴

 
 - 포스팅에 사용할 구성은 Collector는 1대의 서버에서 구동하고 Agent는 3대의 서버에서 구동 후 Client는 1대의 Collector 서버로 접속해서 수집된 3개의 서버를 한번에 모니터링하게 구성하려고 한다.
 

2. Collector 및 Agent 설치 (CentOS 기준)

 1) 다운로드 (https://github.com/scouter-project/scouter/releases)
   - 필자의 경우 최신 버전은 아니지만 기존에 설치해보고 안정적으로 동작하던 v2.10.2 버전으로 선택했다
   - Collector 서버와 Agent가 한번에 들어있는 scouter-all-2.10.2.tar.gz를 내려받는다

  
   - wget을 이용해서 내려받으려는 경우 오른쪽 버튼을 눌러서 링크 주소를 복사해서 사용하면 된다

 
   - wget을 이용할 때의 예시 (원하는 위치에 다운로드)

wget https://github.com/scouter-project/scouter/releases/download/v2.10.2/scouter-all-2.10.2.tar.gz
 

 2) 압축해제
   - 압축을 해제하면 Collector 서버의 사용 준비는 끝이 난다

tar -xvf scouter-all-2.10.2.tar.gz

 

3. Collector 및 Agent 설정, 구동

 1) Collector (각각의 Agent에서 보내온 데이터를 수집할 서버에 설치)
   - scouter-all-*.tar.gz 파일을 압축 해제한 경로에 "server" 폴더

 
   - Collector 서버 구동

scouter경로/server/startup.sh

 

 2) agent.host (데이터를 수집해야하는 서버에 각각 설치)

   - scouter-all-*.tar.gz 파일을 압축 해제한 경로에 "agent.host" 폴더

 

 
   - 수집한 정보를 전송할 Collector 서버 정보 작성 (scouter경로/agent.host/conf/scouter.conf)

vi scouter경로/agent.host/conf/scouter.conf​
### scouter host configruation sample
net_collector_ip= Collector 서버 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

 

   - agent.host 구동 (scouter경로/agent.host/host.sh)

scouter경로/agent.host/host.sh

 

 3) agent.java (Tomcat 등 데이터를 수집해야하는 서버에 각각 설치) 
   - scouter-all-*.tar.gz 파일을 압축 해제한 경로에 "agent.java" 폴더

 
   - Collector 서버 정보 작성 (scouter경로/agent.java/conf/scouter.conf)

vi scouter경로/agent.java/conf/scouter.conf
### scouter java agent configuration sample
obj_name= Object명
net_collector_ip= Collector 서버 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

 

   - Tomcat에 agent.java 정보 작성

vi tomcat경로/bin/catalina.sh
export SCOUTER_AGENT_DIR=scouter경로/agent.java
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=Object명

 
   - Tomcat을 재시작하면 Agent가 정보를 수집해서 Collector 서버로 보낸다

tomcat경로/bin/shutdown.sh
tomcat경로/bin/startup.sh

 

4. Client (Windows 기준)

 1) 다운로드
   - 위에서 과정을 거친 Collector 서버와 Agent의 버전과 같은 버전을 설치

 
   - 압축을 해제하면 실행파일(scouter.exe)이 보인다

 
 2) 실행
   - Collector 서버의 ip 및 port를 입력 (e.g. 192.168.20.101:6001)
   - ID와 Password의 초기 값은 'admin'

 
   - Collector 서버에 접속하면 3대의 서버의 Agent에서 보내온 정보를 아래와 같이 한눈에 보여준다

 
 
 
틀린 부분이 있다면.. 알려주시면 감사하겠습니다

반응형