시작하며

Beats는 Elastic Stack에서 데이터를 수집해 ElasticSearch 또는 Logstash로 전달하는 경량 에이전트이다. Go 언어로 작성되어 가볍고, 온프레미스는 물론 가상머신·컨테이너·쿠버네티스 환경에서도 사용할 수 있다.

Beats 구성과 동작 방식

Beats 기본 개념

Beats는 수집한 데이터를 ElasticSearch로 실어나르기 위해 최전방에 위치하는 수집기이다.

기본 사용 순서

  1. Beats 다운로드
  2. Beats 설정 파일 수정
  3. ElasticSearch와 Kibana 대시보드 연동 설정
  4. Beats 시작
  5. Kibana 대시보드에서 데이터 확인

Filebeat 내부 구조

Filebeat는 파일 기반 로그를 수집하는 대표적인 Beat이다. 내부적으로 세 가지 컴포넌트로 구성된다.

  • input: 설정 파일에서 하베스터에 대한 입력 소스를 정한다.
    • 지원 타입: log, container, s3, kafka
  • harvester: input에 명시된 파일을 직접 수집하는 주체
  • spooler: 수집한 이벤트를 ElasticSearch나 Logstash 같은 목적지로 전달한다.

멀티라인 설정

로그가 여러 줄에 걸쳐 있는 경우 multiline 옵션을 사용한다.

  • pattern: 정규표현식으로 멀티라인의 시작 또는 끝 패턴을 지정한다.
  • negate: 조건을 반전시킨다.
  • match: before 또는 after로 매칭 방향을 지정한다.

모듈 (Module)

모듈은 많이 사용되고 잘 알려진 시스템 데이터를 수집하기 위한 일반적인 설정들을 저장한 사전 정의 패키지이다. Nginx, Apache, MySQL 등 주요 시스템에 대한 모듈이 기본 제공되어 별도의 파이프라인 설정 없이 빠르게 데이터를 수집할 수 있다.

정리하며

Beats는 Elastic Stack에서 데이터 수집 계층을 담당하는 경량 에이전트이다. Filebeat의 input-harvester-spooler 구조를 이해하면 로그 수집 파이프라인을 설계할 때 각 컴포넌트의 역할을 명확히 파악할 수 있다. 복잡한 전처리가 필요한 경우에는 Beats에서 직접 ElasticSearch로 보내는 대신 Logstash를 중간에 두는 구성이 일반적이다.