Fluentd vs Logstash 비교해보기..?
로그를 수집하고 분석할 때 ELK Stack은 매우 유용하게 사용되어 왔다.
fluentd는 Docker나 kubernetes 환경과 같은 마이크로 서비스의 로깅에 인기를 끌고 있다.
(fluentd가 CNCF의 일부이고, Treasure Data (고객데이터플랫폼 구축 클라우드 서비스?) 를 기반으로 구축되었기 때문)
어떤 사례에 어떤 도구를 사용하는 것이 좋을지 비교해본다.
[Logstash vs Fluentd 비교]
항목 | Logstash | Fluentd | 비고 |
코드 언어 | JRuby (Java 필요) | CRuby (Java 필요 X) | |
오픈 소스 | Apache 2.0 라이센스 오픈소스 | Apache 2.0 라이센스 오픈 소스. CNCF. | |
이벤트 라우팅 | if-else 조건 기반 | 태그 기반 | 이벤트에 태그를 지정하는 것이 좀 더 사용 성이 편리한듯 |
Plugin | 공식 지원 플러그인 200개이상 | 500개 이상이지만 공식지원 플러그인은 30여개로 적은 편 | 둘 다 mongodb 플러그인은 별도 설치 필요 주요 플러그인은 이미 공식적으로 모두 지원함 |
구동 방식 | 인메모리 메시지 대기열이 없어 redis와 같은 외부 시스템 사용 | 인메모리를 활용한 버퍼링 시스템 지원하여 독립적으로 동작시키기 좋음 | |
성능 | JRuby 기반으로 JVM에서 실행 fluentd보다 좀 더 많은 메모리 소모 |
더 적은 리소스를 사용하며, 중소규모에 적합 | 둘 다 가벼워서 이렇다 저렇다 할 정도의 차이가 아님. |
전송 | 재시도 가능 | 재시도 가능 | |
이벤트 파싱 | 표준 형식 외에도 geoip와 같은 더 많은 플러그인 보유 | json, regex, csv 등의 기본 내장 파서 제공 | |
모니터링 | Metricbeat를 통한 메트릭 즉시 수집 가능 prometheus exporter를 통한 메트릭도 수집 가능 |
prometheus exporter를 통한 메트릭 수집 가능 | |
구동 환경 | Windows, Linux 둘 다 지원 |
Windows, Linux 둘 다 지원 Docker에서 fluentd에 대한 기술지원이 기본적으로 있음. |
|
vault 지원 | vault 공식지원 목록에 있음. | vault 공식지원 목록에 없음. |
vault audit 로그를 수집할 때 fluentd를 사용한다는 예시가 주로 있음. |
[그렇다면 어떤 것을 선택할까..?]
- Docker, k8s등에서 호스팅 되는 마이크로 서비스의 경우 fluentd가 CNCF의 일부이고, docker에 fluentd용 로깅 드라이버가 기본 내장되어 있는 등의 이점이 있다.
→ 컨테이너 환경에서는 fluentd가 좀 더 좋은 선택.
- ELK 스택을 구축해놓았다면 logstash가 Metricbeat 등을 활용할 수 있기 때문에 활용성이 더 좋다
[나의 생각..?]
- ELK 스택을 구성하는 경우 logstash를 사용하는 것이 나을 것 같다.
- k8s에서 컨테이너 이미지로 구동할 경우에는 fluentd를 사용하는 것이 나을 것 같다.
- 플러그인 설치나 환경 구성을 하는 난이도는 logstash, fluentd 둘 다 비슷했다.
- 플러그인 설치를 위해 결국 둘 다 Dockerfile을 통해 커스텀 이미지를 빌드할 필요가 있음.
- 모니터링 측면은 prometheus를 통한 메트릭 데이터 수집이라는 측면에서 큰 차이가 없을 것 같다.
[참조]
LogStash vs Fluentd - 어떤 것을 선택해야 할까
이 글은 다음 글을 번역한 글입니다: Logstash vs Fluentd — Which one is better! Logstash vs Fluentd — Which one is better ! When it comes to collecting and shipping logs to Elastic stack, we usu..
smoh.kr
https://grip.news/archives/1340
Fluentd 와 LogStash 비교 - GRIP.News
얼마전 까지 로그를 수집하고 분석할 때 ELK Stack을 사용했다. 이중 L 은 LogStash를 의미했고, 다방면에서 로그를 수집할 때 매우 유용하게 사용해왔다. 개인적으로 AWS Aurora Slow-query 를 수집하고 분
grip.news
https://www.openlogic.com/blog/fluentd-vs-logstash
FluentD vs. Logstash: How to Decide for Your Organization | OpenLogic by Perforce
Understand the main differences between FluentD and Logstash and what system monitoring solution is right for you. Read this blog to find out!
www.openlogic.com
https://www.techmanyu.com/logstash-vs-fluentd-which-one-is-better-adaaba45021b