Beats란?
📌 Beats는 경량 데이터 수집 에이전트로, 다양한 환경에서 데이터를 수집하여 Elasticsearch 또는 Logstash로 전송하는 역할을 합니다.
기존의 Logstash가 무거운 리소스를 사용하는 문제를 해결하기 위해 개발되었으며, 단순한 데이터 수집 기능에 최적화되어 있습니다.
- 초기 개발자: 튜더 골루벤코(Tudor Golubenco) & 모니카 사부(Monica Sarbu).
- 개발 목적: 가벼운 데이터 수집기로 다양한 환경에서 실행 가능하도록 개발.
- 기술 스택: Go 언어 기반(경량, 라이브러리 종속성 적음).
- 현재: Elastic Stack의 필수 구성 요소로, 로그 분석, 시스템 모니터링, 네트워크 트래픽 분석 등 다양한 용도로 활용.
Beats의 역사
- 초기 개발 (Packetbeat): 독일의 두 개발자가 Packetbeat를 개발하여 네트워크 패킷을 스니핑하고 Elasticsearch로 저장.
- 2015년: Elastic 창립자인 샤이 배논이 두 개발자를 Elastic에 합류시키며 Beats 프로젝트 공식 출범.
- Logstash 원격 수집기 프로젝트 중단 → Beats가 그 역할을 대신 수행.
- 현재: Packetbeat 외에도 Filebeat, Metricbeat, Winlogbeat, Auditbeat, Heartbeat, Functionbeat 등 다양한 Beats 모듈이 개발되어 운영 중.
Beats의 주요 특징
✅ (1) 경량성 (Lightweight)
- Logstash보다 가벼운 리소스 사용 → 서버나 클라이언트 단에서 부담 없이 실행 가능.
- Go 언어 기반 → 실행 파일 하나로 동작하며, 라이브러리 종속성이 적음.
✅ (2) 단순한 데이터 수집 역할
- Beats는 필터링 없이 데이터 수집과 전송만 담당.
- 데이터 변환 및 필터링은 Logstash에서 수행 가능.
✅ (3) 다양한 데이터 유형 수집 가능
- 로그 파일, 시스템 메트릭, 네트워크 트래픽, 이벤트 로그 등 다양한 데이터 수집 지원.
✅ (4) 여러 목적에 최적화된 Beats 모듈 제공
- Packetbeat: 네트워크 트래픽 분석.
- Filebeat: 로그 파일 수집.
- Metricbeat: 시스템 메트릭 수집.
- Winlogbeat: Windows 이벤트 로그 수집.
- Auditbeat: 보안 및 감사 로그 수집.
- Heartbeat: 시스템 가용성 모니터링.
- Functionbeat: 서버리스 환경 모니터링.
✅ (5) Elasticsearch 및 Logstash와 원활한 통합
- Elasticsearch와 직접 연동 가능.
- Logstash와 함께 사용하여 데이터 변환 및 필터링 가능.
주요 Beats 모듈 및 기능
Beats는 다양한 환경에서 데이터를 수집할 수 있도록 여러 개의 모듈로 나뉘어 있습니다.
(1) Libbeat (공통 라이브러리)
- Beats의 핵심 라이브러리로, 데이터 전송 및 관리 역할.
- 각 Beats 모듈은 Libbeat을 기반으로 동작.
(2) Packetbeat (네트워크 트래픽 분석)
- 네트워크 패킷을 스니핑하여 Elasticsearch로 전송.
- TCP, UDP, HTTP, DNS 등 다양한 프로토콜 분석 가능.
✅ Packetbeat 예제 (네트워크 요청 분석)
packetbeat.interfaces.device: any
packetbeat.protocols:
- type: http
ports: [80, 8080, 9200]
output.elasticsearch:
hosts: ["localhost:9200"]
- HTTP 요청을 모니터링하고 Elasticsearch에 저장.
(3) Filebeat (로그 파일 수집)
- 로그 파일에서 데이터를 실시간으로 읽어와 저장.
- 웹 서버 로그, 애플리케이션 로그, 시스템 로그 등 다양한 로그 수집 가능.
✅ Filebeat 예제 (Apache 로그 수집)
filebeat.inputs:
- type: log
paths:
- /var/log/apache2/access.log
output.elasticsearch:
hosts: ["localhost:9200"]
- /var/log/apache2/access.log 로그 파일을 Elasticsearch로 전송.
(4) Metricbeat (시스템 메트릭 수집)
- CPU, 메모리, 디스크 사용량 등 시스템 성능 데이터 수집.
- Docker, Kubernetes, MySQL, Redis 등의 서비스 모니터링 가능.
✅ Metricbeat 예제 (시스템 메트릭 수집)
metricbeat.modules:
- module: system
metricsets: ["cpu", "memory"]
period: 10s
output.elasticsearch:
hosts: ["localhost:9200"]
- CPU 및 메모리 사용량을 10초 간격으로 수집.
(5) Winlogbeat (Windows 이벤트 로그 수집)
- Windows 이벤트 로그(Security, System, Application 로그) 수집.
- 보안 이벤트 및 시스템 문제 탐지 가능.
✅ Winlogbeat 예제 (보안 이벤트 로그 수집)
winlogbeat.event_logs:
- name: Security
ignore_older: 72h
output.elasticsearch:
hosts: ["localhost:9200"]
- 72시간 이내의 보안 이벤트 로그를 Elasticsearch로 전송.
(6) Auditbeat (보안 및 감사 로그 수집)
- Linux 사용자 접속 및 시스템 호출 이벤트 수집.
- 파일 무결성 검사 및 보안 분석 가능.
✅ Auditbeat 예제 (파일 무결성 모니터링)
auditbeat.modules:
- module: file_integrity
paths:
- /etc/
output.elasticsearch:
hosts: ["localhost:9200"]
- /etc/ 디렉터리의 파일 변경 사항 모니터링.
(7) Heartbeat (서비스 가용성 모니터링)
- 원격 서버, 웹 서비스, 네트워크 장비의 가용성을 체크.
- ICMP, TCP, HTTP 프로토콜 지원.
✅ Heartbeat 예제 (웹사이트 상태 모니터링)
heartbeat.monitors:
- type: http
schedule: "@every 10s"
urls: ["https://example.com"]
output.elasticsearch:
hosts: ["localhost:9200"]
- 10초마다 https://example.com의 상태를 체크.
(8) Functionbeat (서버리스 환경 모니터링)
- AWS Lambda 기반의 서버리스 이벤트 수집.
- CloudWatch, S3, Kinesis 등의 로그 수집 가능.
✅ Functionbeat 예제 (CloudWatch 로그 수집)
functionbeat.provider.aws:
functions:
- name: cloudwatch
enabled: true
trigger: cloudwatch
output.elasticsearch:
hosts: ["localhost:9200"]
- AWS CloudWatch 로그를 수집하여 Elasticsearch로 전송.
Beats의 활용 분야
활용 분야 | 설명 |
로그 수집 | 웹 서버 로그, 애플리케이션 로그 실시간 수집 |
네트워크 모니터링 | 네트워크 패킷 스니핑 및 분석 |
시스템 성능 모니터링 | CPU, 메모리, 프로세스 상태 모니터링 |
보안 및 감사 로그 분석 | Windows 이벤트 로그, Linux 감사 로그 수집 |
서비스 가용성 모니터링 | 서버 및 네트워크 가용성 체크 |
Beats의 장점과 단점
✅ 장점
- 경량 실행 가능 → Logstash보다 가볍고 빠름.
- 다양한 데이터 소스 지원 → 파일, 네트워크, 시스템 메트릭, 클라우드 환경 등.
- Elasticsearch와 원활한 연동 → 실시간 데이터 분석 가능.
❌ 단점
- 데이터 변환 기능 부족 → 필터링 및 변환은 Logstash 필요.
- 설정이 복잡할 수 있음 → 개별 설정 필요.
결론
Beats는 경량 데이터 수집 솔루션으로, 다양한 환경에서 실행되며 Elasticsearch 및 Logstash와 강력한 통합을 제공합니다.
가벼운 리소스 사용과 다양한 모듈을 활용하여 실시간 로그 분석, 네트워크 모니터링, 시스템 성능 분석 등에 최적화된 솔루션입니다. 🚀
'Elastic Search > Elastic Stack' 카테고리의 다른 글
[Elasticsearch] Kibana (0) | 2025.02.01 |
---|---|
[Elasticsearch] Logstash (0) | 2025.02.01 |
[Elasticsearch] Elasticsearch (0) | 2025.02.01 |
[Elasticsearch] 엘라스틱 서치란? (0) | 2025.02.01 |
[Elasticsearch] 엘라스틱 서치의 특징 (0) | 2025.01.31 |