Fluentd
Fluentd는 데이터 소스와 백엔드 시스템 간의 로그 수집 및 라우팅을 통합하기 위해 설계된 오픈소스 데이터 수집기(Data Collector)다. 원래 Treasure Data에서 개발하였으며, 현재는 Cloud Native Computing Foundation(CNCF)의 졸업(Graduated) 단계 프로젝트다.
주요 특징은 다음과 같다.
- 통합 로깅 계층 제공: 다양한 시스템과 애플리케이션에서 발생하는 로그와 데이터를 중앙에서 일괄적으로 수집, 필터링, 라우팅한다.
- JSON 기반 데이터 구조: 내부적으로 모든 데이터를 JSON 형식으로 변환하여 처리한다. 이를 통해 여러 형식의 데이터를 일관성 있게 다루고 다양한 백엔드 시스템으로 쉽게 전달할 수 있다.
- 플러그인 아키텍처: C와 Ruby로 작성되었으며, 1,000개 이상의 방대한 커뮤니티 플러그인(Input, Parser, Filter, Output)을 통해 거의 모든 종류의 데이터 소스 및 스토리지 서비스와 통합이 가능하다.
- 강력한 버퍼링: 메모리 및 파일 기반 버퍼링을 자체 지원하여, 일시적인 네트워크 장애나 대상 서버의 병목 발생 시 데이터 유실을 방지한다.
동일한 역할을 수행하는 데이터 수집기인 Logstash와 비교한 데이터다.
| 비교 항목 | Fluentd | Logstash |
|---|---|---|
| 개발 언어 | C, Ruby | Java (JRuby) |
| 이벤트 라우팅 방식 | 태그(Tag) 기반 라우팅 | 조건문(If-else) 기반 라우팅 |
| 메모리 요구량 | 중간 (초기 수십 MB 수준) | 높음 (JVM 구동으로 인해 수백 MB 이상 필요) |
| 생태계 및 주도권 | CNCF 및 오픈소스 커뮤니티 주도 (플러그인 1,000+) | Elastic 주도 (플러그인 200+) |
출처:
- Fluentd Official Documentation (fluentd.org)
- Cloud Native Computing Foundation: Fluentd Project (cncf.io)
- Logz.io: “Fluentd vs. Logstash: A Comparative Guide” (logz.io)