ELK Vs. EFK

na.ram·2024년 12월 1일

all in auction

목록 보기
8/14
post-thumbnail

EFK

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

  • ElasticSearch : 분산된 검색 및 분석 엔진. 수집한 대용량의 데이터를 인덱싱(엄밀하게 역인덱싱)하여 저장하고 이를 검색할 수 있는 기능 제공
  • Fluentd : 통합된 로깅 레이어를 위한 오픈 소스 데이터 수집기. 데이터가 만들어지는 곳에 붙어서 데이터를 모으는 역할
  • Kibana : 데이터 시각화 UI 도구. ElasticSearch가 수집한 데이터를 보다 사용자 친화적으로 확인 가능

EFK 아키텍처


ELK

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

  • Logstash : 다양한 소스로부터 데이터를 수집하고 곧바로 전환하여 원하는 대상에 전송할 수 있도록 하는 경량의 오픈 소스 서버측 데이터 처리 파이프라인

ELK 아키텍처


Logstash Vs. Fluentd

EFK나 ELK나 Logstash를 사용하냐, Fluentd를 사용하냐를 제외하고 나머지 스택은 동일하기 때문에 해당 두 스택을 중점적으로 비교해보았습니다.

공통점

엔터프라이즈급 로그 파이프라인 구성에 사용되는 로그 분석용 파서 역할을 합니다. 또한, 수집한 로그를 필터링,라우팅할 수 있으며, 다양한 플러그인을 사용할 수 있습니다.

차이점

LogstashFluntd
로그 수집자체 로그 수집 기능 X
: Filebeat 등을 통해 로그 수집
자체 데몬을 통한 로그 수집
개발사Elastic사
: ElasticSearch, Kibana와 통합 용이
CNCF재단
: Prometheus와 사용 용이
개발 언어jruby
: JVM 위에서 돌아가기 때문에 무거움
ruby + C

Logstash는 모놀리식한 시스템의 로깅 파이프라인으로 주로 사용
Fluentd는 마이크로 서비스 아키텍처를 사용한 시스템에서 주로 사용


기술 결정

현재는 모놀리식 아키텍처이지만 팀 내부에서는 MSA로의 전환을 고려하고 있습니다.

또한, Logstash의 경우 일시적으로 죽는다면 데이터 손실이 발생할 수 있어(내부 큐 타입이 in-memory인 경우, 이를 해결하기 위해 내부 큐 타입을 disk로 설정한다면 성능 저하 발생 가능성 있음) Redis나 Kafka와 같은 타 시스템에 의존도가 높은 반면에 Fluentd는 일시적으로 죽어도 버퍼 시스템을 통해 로그 손실방지할 수 있습니다.

그렇기 때문에 Fluentd를 사용한 EFK Stack으로 결정하였습니다.

0개의 댓글