[Scouter APM 연동]
- core/scouter.py: Scouter HTTP API 클라이언트
- get_summary(): 전체 WAS 모니터링 현황 (CPU/TPS/응답시간/위험서버)
- get_server_metrics(): 특정 서버 실시간 메트릭
- get_alert_list(): Scouter 경보 목록
- get_xlog_recent(): 최근 트랜잭션 X-Log
- routers/scouter.py: REST API 엔드포인트 (6개)
- GET /api/scouter/status, /servers, /servers/{hash}/metrics
- GET /api/scouter/servers/{hash}/services, /xlog, /alerts
- POST /api/scouter/agent/deploy: SSH로 scouter-agent.jar 자동 배포
[스케줄러]
- scheduler.py: Scouter 경보 수집 (5분마다)
- CPU > 80% 또는 에러율 > 5% 서버 자동 감지 → GUARDiA 알림
[Docker Compose]
- docker-compose.yml: scouteross/scouter-server:2.20.0 서비스 추가
- 포트 6100 (UDP/TCP 에이전트 수집) + 6180 (HTTP API)
[설치 스크립트]
- setup/scouter/download_scouter.sh: 에이전트/서버 다운로드
- scouter-agent.jar + agent.conf.template 생성
- setup_ubuntu.sh: Scouter 서버 설치 단계 추가 (14단계로 확장)
- --test 검증: Scouter API + Gitea HTTP 검사 추가
환경변수: SCOUTER_HOST, SCOUTER_HTTP_PORT=6180, SCOUTER_USER, SCOUTER_PASSWORD
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
104 lines
3.8 KiB
Bash
104 lines
3.8 KiB
Bash
#!/bin/bash
|
|
# ==============================================================
|
|
# Scouter 에이전트/서버 다운로드 스크립트
|
|
# ==============================================================
|
|
# 사용법:
|
|
# bash setup/scouter/download_scouter.sh
|
|
# SCOUTER_VER=2.20.0 bash download_scouter.sh
|
|
# ==============================================================
|
|
|
|
set -euo pipefail
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
SCOUTER_VER="${SCOUTER_VER:-2.20.0}"
|
|
SCOUTER_MIRROR="${SCOUTER_MIRROR:-https://github.com/scouter-project/scouter/releases/download}"
|
|
|
|
GREEN='\033[0;32m'; YELLOW='\033[1;33m'; NC='\033[0m'
|
|
ok() { echo -e "${GREEN}[OK]${NC} $*"; }
|
|
warn() { echo -e "${YELLOW}[WARN]${NC} $*"; }
|
|
info() { echo -e " $*"; }
|
|
|
|
echo "=================================================="
|
|
echo " Scouter $SCOUTER_VER 다운로드"
|
|
echo " 저장 위치: $SCRIPT_DIR"
|
|
echo "=================================================="
|
|
|
|
# ── scouter-agent.jar (Tomcat WAS에 배포) ────────────────────
|
|
AGENT_URL="${SCOUTER_MIRROR}/v${SCOUTER_VER}/scouter-agent.tar.gz"
|
|
AGENT_TAR="$SCRIPT_DIR/scouter-agent.tar.gz"
|
|
|
|
if [[ ! -f "$SCRIPT_DIR/scouter-agent.jar" ]]; then
|
|
echo ""
|
|
echo "[1/3] Scouter 에이전트 다운로드..."
|
|
wget -q "$AGENT_URL" -O "$AGENT_TAR" \
|
|
|| { warn "에이전트 다운로드 실패 — SCOUTER_MIRROR 환경변수 설정"; exit 1; }
|
|
tar -xzf "$AGENT_TAR" -C "$SCRIPT_DIR" --strip-components=1 \
|
|
"scouter-agent/scouter-agent.jar" 2>/dev/null \
|
|
|| tar -xzf "$AGENT_TAR" -C "$SCRIPT_DIR" 2>/dev/null
|
|
rm -f "$AGENT_TAR"
|
|
ok "scouter-agent.jar 다운로드 완료"
|
|
else
|
|
info "scouter-agent.jar 이미 존재"
|
|
fi
|
|
|
|
# ── scouter-server (Paper) ───────────────────────────────────
|
|
SERVER_URL="${SCOUTER_MIRROR}/v${SCOUTER_VER}/scouter-all-${SCOUTER_VER}.tar.gz"
|
|
|
|
if [[ ! -d "$SCRIPT_DIR/scouter-server" ]]; then
|
|
echo ""
|
|
echo "[2/3] Scouter 서버(Paper) 다운로드..."
|
|
wget -q "$SERVER_URL" -O "$SCRIPT_DIR/scouter-all.tar.gz" \
|
|
&& tar -xzf "$SCRIPT_DIR/scouter-all.tar.gz" -C "$SCRIPT_DIR" \
|
|
&& rm -f "$SCRIPT_DIR/scouter-all.tar.gz" \
|
|
&& ok "Scouter 서버 다운로드 완료" \
|
|
|| warn "서버 패키지 다운로드 실패 — Docker 이미지 사용 권장"
|
|
else
|
|
info "scouter-server 이미 존재"
|
|
fi
|
|
|
|
# ── 에이전트 설정 템플릿 생성 ─────────────────────────────────
|
|
echo ""
|
|
echo "[3/3] 에이전트 설정 템플릿 생성..."
|
|
cat > "$SCRIPT_DIR/agent.conf.template" << 'CONFEOF'
|
|
# Scouter 에이전트 설정 템플릿
|
|
# GUARDiA가 자동으로 서버명과 Scouter 호스트를 치환합니다
|
|
|
|
# Scouter 서버 연결
|
|
net.collector.ip=${SCOUTER_HOST}
|
|
net.collector.udp_port=${SCOUTER_PORT}
|
|
net.collector.tcp_port=${SCOUTER_PORT}
|
|
|
|
# 서버 식별
|
|
obj_name=${SERVER_NAME}
|
|
obj_type=tomcat
|
|
|
|
# 성능 수집 설정
|
|
trace_interservice_enabled=true
|
|
trace_user_enabled=true
|
|
trace_user_cookie_limit=100
|
|
counter_mem_enabled=true
|
|
|
|
# 느린 쿼리 추적 (임계값: 1초)
|
|
hook_jdbc_pstmt_enabled=true
|
|
profile_jdbc_fetch_max=100
|
|
sqltrace_limit_elapsed_ms=1000
|
|
|
|
# 트랜잭션 추적
|
|
trace_active_transaction_enabled=true
|
|
trace_active_transaction_yellow_time=3000
|
|
trace_active_transaction_red_time=8000
|
|
CONFEOF
|
|
|
|
ok "agent.conf.template 생성 완료"
|
|
|
|
echo ""
|
|
echo "=================================================="
|
|
ok "Scouter 다운로드 완료!"
|
|
echo ""
|
|
info "파일 목록:"
|
|
ls -lh "$SCRIPT_DIR/"*.jar "$SCRIPT_DIR/"*.template 2>/dev/null || true
|
|
echo ""
|
|
info "에이전트 배포: GUARDiA ITSM → 서버 관리 → Scouter 에이전트 배포"
|
|
info " 또는 API: POST /api/scouter/agent/deploy"
|
|
echo "=================================================="
|