반응형
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. 참고 링크
- 설치 파일: https://github.com/scouter-project/scouter/releases/
- 서버(scouter-all-2.21.3.tar.gz)
- Client(scouter.client.product-win32.win32.x86_64.zip)
- 설치 방법: https://github.com/scouter-project/scouter/blob/master/scouter.document/main/Setup.md
- WEB API: https://github.com/scouter-project/scouter/blob/master/scouter.document/tech/Web-API-Guide.md
- Slack Plugin: https://github.com/scouter-contrib/scouter-plugin-server-alert-slack
- Slack Plugin Release: https://github.com/scouter-contrib/scouter-plugin-server-alert-slack/releases
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
- net_http_api_swagger_enabled 옵션으로 설정 가능
- /swagger/index.html ==> URI에서 확인 가능
- (http://demo.scouterapm.com:6180/swagger/index.html)
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 |
|---|