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

Beats 구성과 동작 방식
Beats 기본 개념
Beats는 수집한 데이터를 ElasticSearch로 실어나르기 위해 최전방에 위치하는 수집기이다.
기본 사용 순서
- Beats 다운로드
- Beats 설정 파일 수정
- ElasticSearch와 Kibana 대시보드 연동 설정
- Beats 시작
- 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를 중간에 두는 구성이 일반적이다.