본문 바로가기
기타

Scouter 공부 시작하기

by study4me 2026. 9. 26.
반응형

1. 환경 정보

  • Scouter Version: 2.21.3
  • Scouter Collecotr, Agent 서버
    • OS: Ubuntu Pro 24.04
    • Type: t3.small
    • JAVA: jdk1.8
      (이관 프로젝트를 위해서 가능한 AS-IS 환경과 동일한 java version을 채택함. 신규 구성이라면 보다 최신 JAVA 버전을 사용하는 것이 나을 수도 있음)
  • Scouter Client
    • Windows

2. 참고 링크


3. 간단 설명

3.1 Scouter 구성

  • Scouter: Java 애플리케이션(WAS)과 서버 OS 리소스를 모니터링하는 오픈소스 APM 도구
  • Client: 사용자가 수집 서버에 접속해 지표를 조회하는 Tool
  • Collector: 에이전트가 보낸 데이터를 받아 저장하고 Client에 제공하는 수집 서버
  • Host Agent: 서버의 CPU, 메모리, 디스크 등 OS 리소스 정보를 수집하는 에이전트
  • Tomcat Agent: Tomcat에서 실행되는 애플리케이션의 트랜잭션, 응답 시간 등 성능 정보를 수집하는 에이전트
  • WEB API: Collector에 저장된 성능 데이터를 HTTP(REST) 방식으로 조회할 수 있게 해 주는 인터페이스로, 외부 시스템이나 웹 대시보드(예: Scouter Paper)와 연동할 때 사용

4. 공통 작업

4.1 User 생성

sudo adduser sysadm
sudo usermod -aG sudo sysadm
sudo su - sysadm

4.2 engine DIR 생성

sudo mkdir /engine001
chown sysadm:sysadm /engine001

4.3 JAVA 설치

Collector Server, Host Agent, Tomcat Agent 서버에 사전 설치 필요

# JDK 1.8 설치
sudo apt update  # 패키지 목록 최신화, 최신 버전으로 업그레이드는 안함.
sudo apt list |grep jdk
sudo apt install -y openjdk-8-jdk
java -version

#openjdk version "1.8.0_504"
#OpenJDK Runtime Environment (build 1.8.0_504-8u504-ga-1ubuntu1~24.04.3-b01)
#OpenJDK 64-Bit Server VM (build 25.504-b01, mixed mode)

readlink -f $(which java)

4.4 Scouter 설치 파일 다운로드

Collector Server, Host Agent, Tomcat Agent 서버에 사전 다운로드 필요

cd /engine001
scouter_version='2.21.3'
wget "https://github.com/scouter-project/scouter/releases/download/v${scouter_version}/scouter-all-${scouter_version}.tar.gz"
tar -zxvf "scouter-all-${scouter_version}.tar.gz"
rm "scouter-all-${scouter_version}.tar.gz"

5. Collector Server

5.1 설치

# Collector Config 설정
vi /engine001/scouter/server/conf/scouter.conf

# 스카우터 기동
cd /engine001/scouter/server
./startup.sh

#nohup: redirecting stderr to stdout
#  ____                  _
# / ___|  ___ ___  _   _| |_ ___ #_ __
# \___ \ / __/   \| | | | __/ _ \ #'__|
#  ___) | (_| (+) | |_| | ||  #__/ |
# |____/ \___\___/ \__,_|\__\___|#_|
# Open Source S/W Performance Monitoring
# Scouter version 2.21.3
# Collector 서버 프로세스
ps -ef |grep -i scouter
sysadm   14056      1 16 05:05 pts/0    00:00:03 java -Xmx1024m -classpath ./scouter-server-boot.jar scouter.boot.Boot ./lib

5.2 네트워크 포트

프로토콜 포트 용도
UDP (수신) 6100 성능 지표 수집
TCP (서비스) 6100 Scouter 클라이언트 및 에이전트와의 통신

6. Host Agent

6.1 설치

# Host Agent Config 설정
vi /engine001/scouter/agent.host/conf/scouter.conf

# Host Agent 기동
cd /engine001/scouter/agent.host
./host.sh

7. Tomcat Agent(JAVA Agent)

Tomcat이 기동할 때 Tomcat Agent도 같이 기동되도록 구성

7.1 Config

vi /engine001/scouter/agent.java/conf/scouter.conf

Config 예시

# Scouter Server IP Address (Default : 127.0.0.1)
net_collector_ip=127.0.0.1

# Scouter Server Port (Default : 6100)
net_collector_udp_port=6100
net_collector_tcp_port=6100

# Scouter Name(Default : tomcat1)
obj_name=myFirstTomcat1

7.2 기동

# 기동 시 사용하는 파일
# /engine001/scouter/agent.java/scouter.agent.jar

# JAVA 옵션 설정
# 아래 옵션을 ${TOMCAT_DIR}/bin/catalina.sh 또는 startup.sh에 추가
SCOUTER_AGENT_DIR=/engine001/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=myFirstTomcat1"
  • 하나의 가상 머신에서 여러 개의 Tomcat 인스턴스를 사용하는 경우, 각 인스턴스에 대한 구성 파일 정의 필요
  • -Dscouter.config 환경 변수를 통해 설정 파일을 지정할 수도 있음
  • 모니터링 대상 객체의 이름이 하나의 VM 내에서 중복되지 않도록 obj_name 옵션을 통해 이름을 지정해야함

8. Client (Windows)

# Scouter Client(Windows) 파일
https://github.com/scouter-project/scouter/releases/download/v2.21.3/scouter.client.product-win32.win32.x86_64.zip
# JRE 파일
# 원하는 버전, OS, JDK VS JRE 선택 후 zip 다운로드
https://adoptium.net/temurin/releases?version=21&os=any&arch=any

# 두 다운로드 압축 해제
# JRE 폴더의 이름을 jre로 변경 후 scouter client 압축 해제 폴더에 넣어주면 JAVA 따로 설치 없이 기동 가능
# scouter.exe 실행
# 인증 정보 입력 후 확인 (admin/admin)

9. WEB API

9.1 설치

# Embedded 모드 실행은 공식 문서 참고

# Standalone 모드 실행
## Config 설정
### net_collector_ip_port_id_pws 설정
Default ==> 127.0.0.1:6100:admin:admin
형식 ==> {host}:{port}:{id}:{pw}

### 기본값
net_http_port: 6188
net_http_api_allow_ips: localhost,127.0.0.1,0:0:0:0:0:0:0:1,::1;

## 실행
cd scouter.webapp
./startup.sh

9.2 네트워크 포트

모드 프로토콜 포트 용도
Embedded TCP 6180 WEB API 접근 포트
Standalone TCP 6188 WEB API 접근 포트

9.3 테스트

# 접속
http://{http-server-ip}:{port}/scouter/v1/info/server

# 예상 응답
{
    "status": 200,
    "requestId": "#xxxx",
    "resultCode": 0,
    "message": "success",
    "result": [
        {
            "id": -1234512345,
            "name": "MyCollectorName",
            "connected": true,
            "serverTime": 1507878605943
        }
    ]
}

9.4 Swagger

9.5 Counter widget

  • /widget/simple/counter.html

10. Slack Plugin

10.1 라이브러리 다운로드

https://github.com/scouter-contrib/scouter-plugin-server-alert-slack/releases
링크 내 모든 라이브러리를 Scouter Collector 서버의 /engine001/scouter/server/lib 하위에 다운받기

10.2 Collector Server Config 수정

  • https://github.com/scouter-contrib/scouter-plugin-server-alert-slack
    # External Interface (Slack)
    ext_plugin_slack_send_alert=true
    ext_plugin_slack_debug=true
    ext_plugin_slack_level=1
    ext_plugin_slack_webhook_url=https://hooks.slack.com/services/T02XXXXX/B159XXXXX/W5CDXXXXXXXXXXXXXXXXXXXX
    ext_plugin_slack_channel=#scouter
    ext_plugin_slack_botName=scouter
    ext_plugin_slack_icon_emoji=:computer:
    ext_plugin_slack_icon_url=http://XXX.XXX.XXX/XXX.gif
    ext_plugin_slack_xlog_enabled=true
    ext_plugin_slack_object_alert_enabled=true
    
    ext_plugin_elapsed_time_threshold=5000
    ext_plugin_gc_time_threshold=5000
    ext_plugin_thread_count_threshold=300

별첨

1. Tomcat

1.1 Tomcat 설치

su - sysadm
cd /engine001
tomcat_version='9.0.89'
wget "https://archive.apache.org/dist/tomcat/tomcat-9/v${tomcat_version}/bin/apache-tomcat-${tomcat_version}.tar.gz"
tar -zxvf "apache-tomcat-${tomcat_version}.tar.gz"
rm "apache-tomcat-${tomcat_version}.tar.gz"
ln -s "apache-tomcat-${tomcat_version}" tomcat

1.2 scouter java agent 물고 올라가도록 Tomcat 구성

vi /engine001/tomcat/bin/setenv.sh   # 신규 생성
#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

SCOUTER_AGENT_DIR=/engine001/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=tomcat01"
export JAVA_OPTS
# 참고로 setenv.sh catalina.sh에 의해서 실행됨.
chmod +x /engine001/tomcat/bin/setenv.sh

1.3 테스트

테스트 애플리케이션 배포 (XLog 발생용)

mkdir -p /engine001/tomcat/webapps/test
cat > /engine001/tomcat/webapps/test/index.jsp <<'EOF'
<%@ page contentType="text/html; charset=UTF-8" %>
<%
  Thread.sleep((long)(Math.random() * 500));
  out.println("Scouter test : " + new java.util.Date());
%>
EOF

Tomcat 기동

cd /engine001/tomcat/bin
./startup.sh

# 프로세스 확인 (-javaagent 옵션 포함 여부)
ps -ef | grep -i tomcat | grep -v grep

# 로그 확인 (Scouter Agent 배너/연결 로그 출력 여부)
tail -f /engine001/tomcat/logs/catalina.out

연동 확인

# 1) 트래픽 발생
for i in $(seq 1 50); do curl -s http://localhost:8080/test/index.jsp > /dev/null; done

# 2) Collector 서버에서 Agent 등록 확인
tail -100 /engine001/scouter/server/logs/server-$(date +%Y%m%d).log

# 3) Tomcat 서버 → Collector 포트 연결 확인
nc -zv <Collector 서버 IP> 6100

 

반응형

'기타' 카테고리의 다른 글

Github를 내 Windows PC에서 사용하기(Git 처음 시작하기)  (0) 2024.11.22