본문 바로가기

ELK

[ELK] Logstash 와 Filebeat의 차이

Logstash

  • 데이터 집계, 변환, 저장
  • 실시간 파이프라인 기능을 가진 오픈소스 데이터 수집 엔진이다.
  • 서로 다른 소스의 데이터를 탄력적으로 통합하고 사용자가 선택한 목적지로 데이터를 정규화할 수 있다.
  • Elasticsearch의 데이터 파이프라인으로 주로 사용된다.

장점

  • Filebeat에 비해 Logstash는 다양한 Input, Output을 가지고 있다.
  • grok 등 여러가지 Filter 기능 제공을 통해 Input된 데이터를 필요한 형태로 가공이 가능하다.

단점

  • Filebeat에 비해  많은 Resource가 소모된다.

Filebeat

  • 여러 종류의(주로 로그파일) 데이터들을 서버에서 다른 곳으로 전송하기위한 open source 프로그램
  • 로그 데이터를 전달하고 중앙화하기 위한 경량의 Producer
  • 지정한 로그파일 또는 위치를 모니터링(변화 감지) 하고 그 로그 이벤트를 수집해 Elasticsearch 또는 Logstash로 전달
  • 별도의 분석없이 로그를 직접 전달이나 로그가 json으로 남는경우에 사용 적절

장점 

  • 상대적으로 Filebeat는 Resource를 상당히 적게 소모한다.
  • 특정 로그타입에대해 모듈을 제공한다.
  • 간단한 filter 제공

단점

  • Filebeat는 Input 및 Output 이 많이 제한적이다.
  • input은 file의 변경을 읽는 정도
  • output은 logstash, elasticsearch, redis, kafka 정도이다.

elastic 공식 사이트에 공개되어있는 Filebeat 의 Input(왼쪽)과 Output(오른쪽)

 

차이점

Filebeat는 데이터의 변화를 감지하여 전달하는 일이 주된 역할이고

Logstash는 입력받은 데이터를 Filter를 통해 가공하여 전달하는 일이 주된 역할이다.

Filebeat와 Logstash를 결합하여 로그 수집을 위한 프로세스 구성