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"]

(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의 장점과 단점

장점

  1. 경량 실행 가능 → Logstash보다 가볍고 빠름.
  2. 다양한 데이터 소스 지원 → 파일, 네트워크, 시스템 메트릭, 클라우드 환경 등.
  3. Elasticsearch와 원활한 연동 → 실시간 데이터 분석 가능.

단점

  1. 데이터 변환 기능 부족 → 필터링 및 변환은 Logstash 필요.
  2. 설정이 복잡할 수 있음 → 개별 설정 필요.

결론

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

+ Recent posts