Files
log-hunter/README.md
2026-01-06 11:19:46 +09:00

4.8 KiB

LogHunter

SFTP를 통해 원격 서버의 로그 파일을 수집하고, 등록된 패턴으로 에러를 검출하여 관리하는 윈도우 데스크탑 애플리케이션

개요

  • 목적: 폐쇄망 환경에서 여러 리눅스 서버의 로그를 수집하여 에러를 검출하고 관리
  • 실행 환경: Windows
  • 대상 서버: Linux (SFTP)
  • 동작 방식: 필요 시 수동 실행 → 웹 UI에서 분석 실행 및 결과 조회

주요 기능

  • SFTP를 통한 로그 파일 수집 (비밀번호 / 키 파일 인증)
  • 정규식 기반 에러 패턴 매칭
  • 에러 발생 전후 컨텍스트 캡처
  • 서버별 분석 이력 관리
  • HTML/TXT 리포트 내보내기

기술 스택

구분 기술
Backend Spring Boot
Frontend Vue3 (SPA, 빌드 후 static 폴더에 포함)
Database SQLite (파일 DB)
SFTP JSch
배포 단일 jar 파일

화면 구성

# 화면명 설명
1 대시보드 서버 목록, 마지막 분석/에러 일시, 실행 버튼, 진행상황 표시
2 에러 이력 전체 에러 조회/검색/필터, 상세보기 (컨텍스트 포함)
3 서버 관리 SFTP 서버 등록/수정/삭제, 로그 경로 복수 등록, 연결 테스트
4 패턴 관리 에러 패턴 등록/수정/삭제, 패턴 테스트
5 설정 내보내기 경로, 로그 보관 기간, 포트 설정

폴더 구조 (예정)

log-hunter/
├── backend/                    # Spring Boot
│   └── src/main/resources/
│       └── static/             # Vue3 빌드 결과물
├── frontend/                   # Vue3 (개발용)
│   └── src/
│       └── views/
├── data/                       # SQLite DB
├── exports/                    # HTML/TXT 내보내기
└── config/                     # 설정 파일

실행 시 동작

log-hunter.jar 실행
    ↓
내장 톰캣 (localhost:8080)
    ↓
자동으로 브라우저 열림
    ↓
웹 UI에서 서버별 분석 실행

작업 Step

Step 1. 프로젝트 초기 설정

  • 1-1. Spring Boot 프로젝트 생성
  • 1-2. Vue3 프로젝트 생성 (frontend 폴더)
  • 1-3. 빌드 연동 (Vue → static 폴더로)
  • 1-4. SQLite 연동 확인
  • 1-5. 앱 실행 시 브라우저 자동 오픈

Step 2. DB 스키마 설계

  • 2-1. servers 테이블 (SFTP 서버 정보)
  • 2-2. server_log_paths 테이블 (서버별 로그 경로, 1:N)
  • 2-3. patterns 테이블 (에러 패턴 정의)
  • 2-4. scan_history 테이블 (분석 실행 이력)
  • 2-5. error_logs 테이블 (검출된 에러)
  • 2-6. settings 테이블 (전역 설정, key-value)

Step 3. Backend - 기본 CRUD API

  • 3-1. 서버 관리 API (CRUD)
  • 3-2. 로그 경로 관리 API
  • 3-3. 패턴 관리 API (CRUD)
  • 3-4. 설정 API
  • 3-5. 비밀번호/passphrase 암호화 유틸

Step 4. Backend - 핵심 기능

  • 4-1. SFTP 연결 (비밀번호 / 키 파일)
  • 4-2. 연결 테스트 API
  • 4-3. 파일 목록 조회 (마지막 분석 이후 파일)
  • 4-4. 파일 다운로드
  • 4-5. 로그 파싱 + 패턴 매칭 엔진
  • 4-6. 에러 저장 (컨텍스트 포함)
  • 4-7. 분석 실행 API (진행상황 SSE 또는 WebSocket)

Step 5. Backend - 내보내기

  • 5-1. HTML 리포트 생성
  • 5-2. 에러 상세 TXT 파일 생성
  • 5-3. 내보내기 API

Step 6. Frontend - 공통

  • 6-1. 레이아웃 (헤더, 사이드메뉴)
  • 6-2. 라우터 설정
  • 6-3. API 클라이언트 (axios)
  • 6-4. 공통 컴포넌트 (테이블, 모달, 폼)

Step 7. Frontend - 화면 개발

  • 7-1. 대시보드 (서버 목록 + 실행 + 진행상황)
  • 7-2. 에러 이력 (필터 + 목록 + 상세보기)
  • 7-3. 서버 관리 (목록 + 추가/수정 폼)
  • 7-4. 패턴 관리 (목록 + 추가/수정 + 테스트)
  • 7-5. 설정

Step 8. 테스트 및 마무리

  • 8-1. 로컬 SFTP 서버로 테스트 (Docker)
  • 8-2. 실제 로그 샘플로 패턴 검증
  • 8-3. 단일 jar 빌드
  • 8-4. 실행 스크립트 (bat 파일)

작업 순서

Step 1 → Step 2 → Step 3 → Step 6 (공통)
                     ↓
              Step 7-3, 7-4 (서버/패턴 관리)
                     ↓
              Step 4 (핵심 기능)
                     ↓
              Step 7-1 (대시보드 + 실행)
                     ↓
              Step 7-2 (에러 이력)
                     ↓
              Step 5, 7-5 (내보내기, 설정)
                     ↓
              Step 8 (테스트/빌드)

변경 이력

날짜 내용
2025-01-06 최초 작성, 요구사항 정리
2025-01-06 Step 1-1, 1-2 완료 (Spring Boot, Vue3 프로젝트 생성)