257 lines
5.0 KiB
Markdown
257 lines
5.0 KiB
Markdown
# 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)
|
|
- [ ] 패턴 등록
|
|
- [ ] 서버 등록
|
|
- [ ] 연결 테스트 성공
|
|
- [ ] 로그 경로 등록
|
|
- [ ] 분석 실행
|
|
- [ ] 에러 검출 확인
|
|
- [ ] 내보내기 테스트
|