# LogHunter 테스트 가이드 ## 1. 사전 요구사항 | 항목 | 버전 | 확인 명령어 | |------|------|-------------| | Java | 17 이상 | `java -version` | | Node.js | 18 이상 | `node -v` | | npm | 9 이상 | `npm -v` | --- ## 2. 프로젝트 실행 ### 2-1. Frontend 빌드 ```bash cd /Users/coziny/devs/osolit-research/workspace/log-hunter/frontend # 의존성 설치 (최초 1회) npm install # 빌드 (결과물이 ../src/main/resources/static 으로 복사됨) npm run build ``` ### 2-2. Backend 실행 ```bash cd /Users/coziny/devs/osolit-research/workspace/log-hunter # Gradle Wrapper로 실행 ./gradlew bootRun ``` ### 2-3. 접속 - 실행 시 브라우저가 자동으로 열림 - 수동 접속: http://localhost:8080 --- ## 3. 테스트 시나리오 ### 3-1. 패턴 등록 (먼저!) 1. **패턴 관리** 메뉴 클릭 2. **+ 패턴 추가** 클릭 3. 샘플 패턴 입력: | 패턴명 | 정규식 | 심각도 | 컨텍스트 | |--------|--------|--------|----------| | Exception | `Exception\|Error` | ERROR | 5 | | NullPointer | `NullPointerException` | CRITICAL | 5 | | WARN 로그 | `\[WARN\]` | WARN | 3 | | Tomcat 에러 | `SEVERE\|FATAL` | CRITICAL | 5 | 4. **테스트** 버튼으로 정규식 검증 가능 ### 3-2. 서버 등록 1. **서버 관리** 메뉴 클릭 2. **+ 서버 추가** 클릭 3. 서버 정보 입력: **비밀번호 인증 예시:** ``` 서버명: 운영서버1 호스트: 192.168.1.100 포트: 22 사용자명: username 인증방식: 비밀번호 비밀번호: ******** ``` **키파일 인증 예시:** ``` 서버명: 개발서버 호스트: 10.0.0.50 포트: 22 사용자명: deploy 인증방식: 키 파일 키 파일 경로: C:\Users\사용자\.ssh\id_rsa Passphrase: (없으면 비워둠) ``` 4. **테스트** 버튼으로 연결 확인 ### 3-3. 로그 경로 등록 1. 서버 목록에서 **경로** 버튼 클릭 2. 로그 경로 추가: | 경로 | 파일 패턴 | 설명 | |------|-----------|------| | `/var/log/tomcat/` | `catalina.*.log` | Tomcat 로그 | | `/var/log/` | `*.log` | 시스템 로그 | | `/app/logs/` | `application-*.log` | 애플리케이션 로그 | ### 3-4. 분석 실행 1. **대시보드** 메뉴 클릭 2. 개별 서버 **분석 실행** 또는 **전체 분석 실행** 3. 진행상황 확인 (프로그레스 바) 4. 완료 후 **에러 이력**에서 결과 확인 ### 3-5. 결과 확인 및 내보내기 1. **에러 이력** 메뉴 클릭 2. 필터로 검색 (서버, 심각도, 기간 등) 3. **상세** 버튼으로 컨텍스트 확인 4. **HTML 내보내기** 또는 **TXT 내보내기** --- ## 4. 단일 JAR 빌드 ### 4-1. 전체 빌드 (Frontend + Backend) ```bash cd /Users/coziny/devs/osolit-research/workspace/log-hunter # Frontend 빌드 cd frontend && npm run build && cd .. # JAR 빌드 ./gradlew clean bootJar ``` ### 4-2. 빌드 결과 ``` build/libs/log-hunter-0.0.1-SNAPSHOT.jar ``` ### 4-3. JAR 실행 ```bash java -jar build/libs/log-hunter-0.0.1-SNAPSHOT.jar ``` --- ## 5. Windows 실행 스크립트 ### run.bat 생성 ```batch @echo off title LogHunter echo LogHunter 시작 중... java -jar log-hunter.jar pause ``` ### 배포 폴더 구조 ``` LogHunter/ ├── log-hunter.jar ├── run.bat └── data/ <- 자동 생성됨 (SQLite DB) ``` --- ## 6. 트러블슈팅 ### 포트 충돌 (8080 사용 중) ```bash # application.yml에서 포트 변경 server: port: 9090 ``` 또는 실행 시 지정: ```bash java -jar log-hunter.jar --server.port=9090 ``` ### SFTP 연결 실패 - 호스트/포트 확인 - 방화벽 확인 (22번 포트) - 사용자명/비밀번호 확인 - 키파일 경로 확인 (Windows: `C:\Users\...`, 절대경로) ### 한글 깨짐 - 로그 파일 인코딩이 UTF-8인지 확인 - 필요시 서버에서 `file -i 파일명`으로 인코딩 확인 ### DB 초기화 (데이터 삭제) ```bash # data 폴더의 DB 파일 삭제 rm -rf data/loghunter.db ``` --- ## 7. 개발 모드 (Hot Reload) ### Frontend 개발 서버 ```bash cd frontend npm run dev ``` - http://localhost:5173 에서 실행 - API 프록시 설정으로 백엔드(8080)와 연동됨 ### Backend만 재시작 ```bash ./gradlew bootRun ``` --- ## 8. API 테스트 (curl 예시) ```bash # 서버 목록 조회 curl http://localhost:8080/api/servers # 패턴 목록 조회 curl http://localhost:8080/api/patterns # 연결 테스트 curl -X POST http://localhost:8080/api/servers/1/test-connection # 스캔 실행 (동기) curl -X POST http://localhost:8080/api/scan/execute/1 # 에러 로그 검색 curl "http://localhost:8080/api/error-logs?page=0&size=10" ``` --- ## 체크리스트 - [x] Java 17+ 설치 확인 - [x] Node.js 18+ 설치 확인 - [x] Frontend 빌드 완료 (2025-01-06 19:23 확인) - [x] Backend 실행 성공 (2025-01-06 19:23 확인) - [x] 브라우저 접속 확인 (localhost:8080) - [ ] 패턴 등록 - [ ] 서버 등록 - [ ] 연결 테스트 성공 - [ ] 로그 경로 등록 - [ ] 분석 실행 - [ ] 에러 검출 확인 - [ ] 내보내기 테스트