Filebeat란?
Filebeat는 여러 장소에 존재하는 로그를 한 곳으로 모으기 위한 경량화된 로그 수집기입니다.
Filebeat 주요 필드
필드는 Filebeat에서 로그를 수집한 뒤 넘겨줄 때 추가해주는 값들이라고 생각하면 됩니다. 기본적으로 Filebeat는 Elasticsearch에서 로그를 쉽게 분석할 수 있게 여러 필드를 추가해줍니다. 그 중 주요한 필드 몇 가지만 소개하겠습니다.
- @timestamp
filebeat에서 해당 로그를 수집한 시간 - ecs.version
Elastic Common Schema의 버전. 즉, elastic stack에서 표준화된 로그 데이터 구조의 버전을 의미 - host.name
로그를 수집한 호스트 이름 (예를 들어 filebeat를 특정 도커 컨테이너 위에서 실행시켰다면 해당 도커 컨테이너 id값이 담김) - agent
로그를 수집기에 대한 정보. 즉, 여기서는 filebeat에 대한 정보가 담김
- id
- name
- type
- version - log
- file.path
- file.name
- offset - input.type
Filebeat 설정법
기본적으로 filebeat 관련 설정은 filebeat.yml 파일을 통해 관리할 수 있습니다. 몇 가지 예시를 통해 filebeat를 설정해봅시다.
filebeat.inputs
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log # 로그 파일 경로 (여러 개 지정 가능)
json.keys_under_root: true # JSON 형식 로그의 경우
json.add_error_key: true # JSON 오류가 있을 경우 오류 정보를 추가
processors
processors:
- drop_fields:
fields: ["host.name"] # 불필요한 필드를 삭제할 수 있습니다.
- add_host_metadata: {} # 호스트 메타데이터 추가
output
- elasticsearch로 전송할 때
output.elasticsearch:
hosts: ["http://localhost:9200"] # Elasticsearch 서버 주소
username: "elastic" # 인증 사용자
password: "password" # 인증 비밀번호
index: "filebeat-%{+yyyy.MM.dd}" # 인덱스 이름 설정 (날짜 기반으로 인덱스 생성)
- logstash로 전송할 때
output.logstash:
hosts: ["localhost:5044"] # Logstash 서버의 주소와 포트
'백엔드' 카테고리의 다른 글
[ELK] Logstash 핵심 요약 및 설정법 (0) | 2025.02.08 |
---|---|
npm에서 yarn으로 갈아타기(yarn berry) (0) | 2024.11.07 |
Kafka 카프카에 대한 이해와 간단한 실습 (0) | 2024.11.04 |
MSA 구조 구성의 핵심: 메시지 큐(Message Queue)란? - RabbitMQ, Kafka, Redis (0) | 2024.11.04 |
캐싱 전략을 이용한 백엔드 성능 향상 (0) | 2024.11.02 |