[start.sh (Linux/Mac)]
- mvnw(Wrapper) 우선 사용 → 시스템 Maven → 자동 설치 순서
- Maven 없으면: apt/dnf/yum 패키지 관리자 → 수동 tar.gz 설치
- 모드: dev (핫리로드) | prod (빌드+실행) | build (빌드만) | spring-only
[start.ps1 (Windows)]
- mvnw.cmd → 시스템 mvn → Chocolatey → 수동 zip 설치
- Start-Job으로 Spring Boot 백그라운드 실행 + npm run dev 병렬
[.mvn/wrapper/maven-wrapper.properties]
- Maven 3.9.6 Wrapper 설정 (첫 실행 시 자동 다운로드)
[setup_ubuntu.sh]
- INSTALL_MAVEN=true/false 옵션 추가 (기본 true)
- 이미 설치된 경우 건너뜀
사용법:
bash workspace/zioinfo-web/start.sh dev # 개발
bash workspace/zioinfo-web/start.sh prod # 운영
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
[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>
[download_packages.sh — 인터넷 서버에서 실행]
- OS별 패키지 다운로드 (ubuntu .deb / centos .rpm)
- pip wheel 전체 다운로드 (-r requirements.txt)
- Tomcat 9 tar.gz, Ollama 바이너리, Chart.js 다운로드
- Ollama 모델(llama3.1:8b, codellama:7b) 압축 패키지
- Docker 이미지 tar (docker_package.sh 연동)
- setup/offline/ 에 계층적으로 저장, README.md 자동 생성
[설치 스크립트 오프라인 지원 강화]
- setup_ubuntu.sh: OFFLINE_PKG_DIR 환경변수 지원 (.deb 로컬 설치)
- setup_centos.sh: OFFLINE_PKG_DIR 환경변수 지원 (.rpm 로컬 설치)
- 기존 TOMCAT_MIRROR=file://..., OLLAMA_INSTALL=offline 유지
[Chart.js 오프라인 폴백]
- index.html: CDN 실패 시 /static/chart.umd.min.js 로컬 폴백
- db_init.py: 오프라인 패키지에서 chart.umd.min.js 자동 복사
폐쇄망 설치 절차:
인터넷 서버: bash setup/download_packages.sh all
USB 복사: tar -czf offline.tar.gz setup/offline/
폐쇄망 설치: OFFLINE_PKG_DIR=./offline/ubuntu bash setup/setup_ubuntu.sh
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
[Ollama — 온프레미스 sLLM 서버]
- setup_ubuntu/centos/rhel/windows: Ollama 설치 단계 추가
- 환경변수 OLLAMA_INSTALL=online|offline|skip 지원 (망분리 환경)
- 환경변수 OLLAMA_MODELS 으로 초기 모델 설정 (기본: llama3.1:8b)
- 오프라인: OLLAMA_BIN_PATH로 바이너리 직접 지정
- SELinux 포트 허용 (RHEL), 방화벽 내부 전용 차단 (8080/11434)
[보안·운영 도구]
- Fail2ban: SSH 무차별 대입 방지 (5회 실패 시 1시간 차단)
- Chrony/NTP: 감사 로그 타임스탬프 정합성 확보
- JDK 8/11: 레거시 WAS(Tomcat 7/8) 지원을 위한 다중 JDK
- Logrotate: catalina.out 14일, *.log 8주 보관
[--test 검증 강화]
- Ollama 서비스 + API + 모델 존재 여부 검사
- Fail2ban/Chrony 실행 상태 검사
[단계 수 업데이트]
- Ubuntu: 10→13단계, CentOS: 10→13단계, RHEL: 11→13단계, Windows: 10단계
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- setup_ubuntu.sh: OpenJDK 17 + Tomcat 9 단계 추가 (10단계로 확장)
- setup_centos.sh: OpenJDK 17 + Tomcat 9 단계 추가 (10단계)
- setup_rhel.sh: OpenJDK 17 + Tomcat 9 + SELinux 포트 허용 (11단계)
- setup_windows.ps1: openjdk choco 설치 + Tomcat 9 NSSM 서비스 (10단계)
- setup_target_server.sh: 신규 — 관리 대상 WAS 서버 표준 구성
(OpenJDK 17 + Tomcat 9 + opsagent OS/Tomcat 계정 + SSH 보안 + GUARDiA 연결정보 출력)
- --test 검증: Java/Tomcat 항목 추가
- 공통: AJP 비활성화, shutdown 포트 -1 보안설정, opsagent Manager 계정 자동 추가
- 공통: TOMCAT_MIRROR 환경변수로 오프라인/내부망 설치 지원
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
[설치 스크립트 수정사항]
- PYTHONIOENCODING=utf-8 systemd/NSSM 서비스 환경변수 추가 (Windows cp949 오류 예방)
- db_init.py 헬퍼 추가: 스키마 불일치 자동 감지 → 백업 → 재초기화
- 포트 8001 충돌 감지 및 기존 프로세스 자동 종료 로직 추가
- --test 검증 항목 강화: HTTP 응답 + 로그인 API + UTF-8 인코딩 포함
- setup_ubuntu/centos/rhel: PYTHONUNBUFFERED=1 추가
[workspace 자동분석 워크플로우]
- workspace/ 디렉토리 생성 (소스코드 투입 위치)
- .claude/skills/workspace-analyzer/SKILL.md 스킬 생성
Phase 0~6: 탐색→스택탐지→심층분석→리포트→개발환경가이드→하네스생성→CLAUDE.md
- CLAUDE.md에 workspace 워크플로우 안내 등록
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>