
Elasticsearch, Fluentd, Kibana 를 사용하는 데이터 수집 및 시각화 스택입니다.

Elasticsearch, Logstash, Kibana 를 사용하는 데이터 수집 및 시각화 스택입니다.

EFK나 ELK나 Logstash를 사용하냐, Fluentd를 사용하냐를 제외하고 나머지 스택은 동일하기 때문에 해당 두 스택을 중점적으로 비교해보았습니다.
엔터프라이즈급 로그 파이프라인 구성에 사용되는 로그 분석용 파서 역할을 합니다. 또한, 수집한 로그를 필터링,라우팅할 수 있으며, 다양한 플러그인을 사용할 수 있습니다.
| Logstash | Fluntd | |
|---|---|---|
| 로그 수집 | 자체 로그 수집 기능 X : Filebeat 등을 통해 로그 수집 | 자체 데몬을 통한 로그 수집 |
| 개발사 | Elastic사 : ElasticSearch, Kibana와 통합 용이 | CNCF재단 : Prometheus와 사용 용이 |
| 개발 언어 | jruby : JVM 위에서 돌아가기 때문에 무거움 | ruby + C |
Logstash는 모놀리식한 시스템의 로깅 파이프라인으로 주로 사용
Fluentd는 마이크로 서비스 아키텍처를 사용한 시스템에서 주로 사용
현재는 모놀리식 아키텍처이지만 팀 내부에서는 MSA로의 전환을 고려하고 있습니다.
또한, Logstash의 경우 일시적으로 죽는다면 데이터 손실이 발생할 수 있어(내부 큐 타입이 in-memory인 경우, 이를 해결하기 위해 내부 큐 타입을 disk로 설정한다면 성능 저하 발생 가능성 있음) Redis나 Kafka와 같은 타 시스템에 의존도가 높은 반면에 Fluentd는 일시적으로 죽어도 버퍼 시스템을 통해 로그 손실이 방지할 수 있습니다.
그렇기 때문에 Fluentd를 사용한 EFK Stack으로 결정하였습니다.