본문으로 건너뛰기
로그인 둘러보기
개발·코딩·데이터베이스 · 윈도우즈 유틸

Logstash Forwarder

0

Logstash Forwarder는 로컬에서 로그를 수집하여 다른 시스템으로 전송하는 도구입니다. 이 프로그램은 Elastic에서 개발했으며, 로그를 안전하고 효율적으로 전달하기 위해 lumberjack 프로토콜을 사용합니다.

lumberjack 프로토콜구성 파일로그 수집로그 전달명령줄 도구오픈소스

소개

Logstash Forwarder는 로컬에서 로그를 수집하여 다른 시스템으로 전송하는 도구입니다. 이 프로그램은 Elastic에서 개발했으며, 로그를 안전하고 효율적으로 전달하기 위해 lumberjack 프로토콜을 사용합니다. 현재 이 프로젝트는 Filebeat로 대체되었으며, 추가 개발은 중단되었습니다. 로그 수집 및 전달이 필요한 시스템 관리자나 개발자에게 적합한 도구였습니다.

상세정보

프로그램 소개

Logstash Forwarder는 로컬 시스템에서 로그 파일을 모니터링하고, 암호화된 채널을 통해 중앙 로그 처리 시스템으로 전송하는 경량 도구입니다. 이 프로그램은 로그를 수집하여 Logstash나 다른 시스템으로 전달하기 위해 설계되었으며, 파일 기반 입력과 STDIN 입력을 모두 지원합니다. 현재 이 프로젝트는 Filebeat로 대체되었으며, 추가 개발은 계획되지 않았습니다.

주요 기능

안전한 로그 전송

Logstash Forwarder는 lumberjack 프로토콜을 사용하여 SSL/TLS 암호화를 통해 로그 데이터를 안전하게 전송합니다. 이는 전송 중 데이터 변조나 도청을 방지하며, 서버 인증서를 검증하여 신뢰할 수 있는 엔드포인트와의 통신만 허용합니다.

유연한 로그 수집 구성

JSON 설정 파일을 통해 모니터링할 파일 경로, 글로브 패턴, STDIN 입력 등을 지정할 수 있습니다. 각 파일 그룹에 맞춤 필드(예: type: syslog)를 추가하여 로그에 컨텍스트 정보를 부여할 수 있습니다.

낮은 리소스 사용

이 도구는 유휴 상태에서는 슬립 모드로 전환되어 CPU와 메모리 사용을 최소화합니다. 네트워크 오류 시에도 재연결을 시도하며, zlib 압축을 통해 대역폭 사용을 줄입니다.

다운로드·설치 방법

Logstash Forwarder는 소스 코드로부터 직접 빌드해야 합니다. Go 언어 환경이 필요하며, 저장소를 클론한 후 go build 명령을 실행하여 실행 파일을 생성할 수 있습니다. 공식적으로 제공되는 바이너리 패키지는 없으며, 사용자는 소스에서 직접 컴파일해야 합니다.

기본 사용법

설정이 완료된 후, logstash-forwarder -config yourstuff.json 명령으로 프로그램을 실행할 수 있습니다. 여기서 yourstuff.json은 네트워크 및 파일 모니터링 설정을 포함한 JSON 구성 파일입니다. 실행 시 -verbose 플래그를 추가하면 표준 출력으로 디버그 정보를 확인할 수 있습니다.

구성 파일 예시

다음은 기본적인 구성 파일 예시입니다. 이 파일은 로컬의 /var/log/messages와 /var/log/*.log 파일을 감시하며, 각 이벤트에 type: syslog 필드를 추가합니다.

{
  "network": {
    "servers": [ "localhost:5043" ],
    "ssl certificate": "./logstash-forwarder.crt",
    "ssl key": "./logstash-forwarder.key",
    "ssl ca": "./logstash-forwarder.crt",
    "timeout": 15
  },
  "files": [
    {
      "paths": [ "/var/log/messages", "/var/log/*.log" ],
      "fields": { "type": "syslog" }
    }
  ]
}

지원 환경·시스템 요구사항

Logstash Forwarder는 Go 언어로 작성되어 Windows, Linux, macOS 등 주요 운영 체제에서 빌드 및 실행이 가능합니다. 그러나 본 저장소의 증거에서는 Windows 전용 바이너리나 설치 방법은 제공되지 않으며, 소스 코드로부터의 빌드가 전제됩니다. SSL/TLS 통신을 위해서는 서버 인증서와 클라이언트 인증서·키 파일이 필요하며, 인증서의 주제 또는 주제 대체 이름(SAN)이 서버 주소와 일치해야 합니다.

제한 사항·확인 사항

이 프로젝트는 2016년 이후 추가 개발이 중단되었으며, 공식적으로 Filebeat로 대체되었습니다. 따라서 새로운 기능이나 보안 업데이트는 제공되지 않습니다. 또한, IP 주소를 직접 사용하여 서버에 연결할 경우, 클라이언트 인증서에 IP 주소 SAN이 포함되어야 하며, 그렇지 않으면 TLS 연결이 실패합니다. 이는 인증서 생성 과정에서 일반적인 호스트명 사용보다 복잡성을 증가시킵니다.

시스템 요구사항

별도의 시스템 요구사항이 등록되지 않았습니다.