LogKit 설치 및 사용 방법 안내

LogKit 소개

LogKit은 로그와 메트릭을 수집하고 전송하는 강력한 서버 에이전트로, 직관적인 웹 콘솔을 통해 쉽게 관리할 수 있습니다. 이 도구는 다양한 환경에서 로그 데이터를 중앙 집중식으로 처리할 수 있도록 설계되어 있으며, 대규모 분산 시스템부터 소규모 서버까지 유연하게 적용 가능합니다.

저장소 디렉터리 구조

LogKit 저장소를 클론한 후 확인할 수 있는 주요 디렉터리 구성은 다음과 같습니다:

|-- cmd                  # 애플리케이션 진입점(main.go 포함)
|-- deploy               # 배포 스크립트 및 매니페스트(Kubernetes 등)
|-- doc                  # 사용 설명서 및 기술 문서
|-- examples             # 실제 활용 예제
|-- internal             # 내부 전용 패키지 및 유틸리티
|-- pkg                  # 재사용 가능한 공통 패키지
|-- scripts              # 빌드, 테스트, 배포 자동화 스크립트
|-- tools                # 보조 개발 도구 모음
|-- .gitignore           # 제외할 파일 정의
|-- LICENSE              # 오픈소스 라이선스 정보
|-- README.md            # 기본 사용법 및 프로젝트 개요
|-- Makefile             # 빌드 및 실행 자동화 명령어
|-- Dockerfile           # 컨테이너 이미지 빌드 정의
|-- go.mod / go.sum      # Go 모듈 종속성 관리
|-- logkit.conf.example  # 설정 파일 샘플
  • cmd/logkit/main.go: 애플리케이션 시작 지점으로, CLI 인수 파싱 및 서비스 초기화 담당.
  • examples/: 다양한 입출력 소스를 활용한 구성 예시 제공.
  • deploy/: 클라우드 또는 쿠버네티스 환경에 배포하기 위한 YAML 파일 포함.

실행 방법

1. 소스 코드 기반 실행

Go 환경이 준비된 경우, 다음 명령어로 직접 빌드 및 실행 가능합니다:

go build -o logkit-agent cmd/logkit/main.go
./logkit-agent -f ./config/logkit.conf

여기서 -f 옵션은 사용자 정의 설정 파일 경로를 지정합니다.

2. Docker 컨테이너로 실행

Docker를 사용하는 경우, 아래와 같이 공식 이미지를 가져와 실행합니다:

docker pull wonderflow/logkit:v1.8.0

컨테이너 실행 명령어:

docker run -d \
  --name logkit-container \
  -p 3000:3000 \
  -v $(pwd)/confs:/app/confs \
  -v /var/logs:/host/logs \
  wonderflow/logkit:v1.8.0
  • 포트 3000을 호스트에 노출하여 웹 대시보드 접근 가능.
  • /app/confs는 설정 파일 마운트 경로이며, /host/logs는 로그 원본 위치입니다.

설정 파일 구성

LogKit의 핵심은 logkit.conf 파일에 있으며, JSON 형식으로 작성됩니다. 주요 구성 요소는 다음과 같습니다:

1. 데이터 소스 (Source)

로그가 어디서 오는지 정의합니다. 예: 파일 경로, 표준 출력, TCP 입력 등.

{
  "source": {
    "file": {
      "paths": ["/host/logs/app.log"],
      "read_from": "oldest"
    }
  }
}

2. 데이터 처리기 (Processor)

수집된 로그를 필터링하거나 변환합니다. 예: 정규 표현식 추출, 특정 필드 삭제, 시간 파싱 등.

"processors": [
  {
    "type": "regex",
    "pattern": "(?P<time>\\d{4}-\\d{2}-\\d{2}).*(?P<level>ERROR|WARN|INFO)"
  }
]

3. 전송 대상 (Destination)

처리된 데이터를 어디로 보낼지 결정합니다. 지원 대상 예시:

  • HTTP 엔드포인트
  • Elasticsearch
  • Kafka 토픽
  • 파일 저장
"destinations": [
  {
    "type": "elasticsearch",
    "hosts": ["http://es-host:9200"],
    "index": "logkit-logs-%Y.%m.%d"
  }
]

웹 콘솔 사용

서비스가 시작되면 http://localhost:3000 에서 웹 인터페이스에 접속할 수 있습니다. 여기서는 실시간 로그 스트림 확인, 설정 수정, 상태 모니터링 등을 수행할 수 있습니다.

참고 사항

  • 실제 운영 환경에서는 TLS 및 인증을 통한 보안 설정이 권장됩니다.
  • 성능 최적화를 위해 버퍼 크기 및 전송 주기를 조정할 수 있습니다.
  • 샘플 설정 파일인 logkit.conf.example 을 기반으로 사용자 정의 설정을 생성하세요.

태그: LogKit 로그 수집 Golang docker ELK

7월 24일 02:03에 게시됨