#!/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 "=================================================="