[5분 컷] 오픈소스 데이터 수집기 Fluentd(플루언트디) 소개

오픈소스 데이터 수집기 Fluentd(플루언트디) 소개

Fluentd 공식 사이트 : https://www.fluentd.org/


오픈소스 데이터 수집기 Fluentd(플루언트디) 공식문서

Fluentd 공식 다큐먼트(문서) : https://docs.fluentd.org/


오픈소스 데이터 수집기 Fluentd(플루언트디) Github(깃헙) 주소

Fluentd 깃헙 주소 : https://github.com/fluent/fluentd


Fluentd (플루언트디)는 오픈소스 로그(log) 데이터 수집기입니다.  액세스 로그, 에러 로그, 이벤트 로그, 시스템 로그, 서버로그, 체인지로그, 컴플라이언스 로그, 애플리케이션 로그, 데이터베이스, 써드 파티 로그  등 형식이 다른 다양한 데이터를 쉽게 수집할 수 있습니다. 예전에는 이런 것을 로그 수집기, 혹은 로그 데이터 수집기라고 불렀던 것 같은데 현재는 수집할 수 있는 것들이 많아져서 데이터 수집기(data collector)로 부르고 있는 것 같습니다. 

다양한 input 에서 로그를 수집하고 이를 어느 정도 필터하고 가공(전처리)할 수 있습니다. 가공/전처리/enrich 한다고 함은 데이터 중 일부를 삭제할 수도, 필터할 수도, 수정할 수도, 그룹화하고 태깅 할 수 있다는 뜻입니다. 형식이 다양한 로그들을 수집한 뒤 통일된 형식(format)으로 처리(process)합니다. 

그리고 Fluentd로 수집한 데이터를 엘라스틱서치로 보낼 수도 있고 몽고디비에 저장할 수도 있고 카프카로 보낼 수도 있고 클라우드 스토리지에 저장을 할 수도 있습니다. 플루언티디에서 여러 곳으로 output 할 수 있습니다.  보내진 로그들은 alerting(알림) 이나 분석, 아카이브(archive), 디버깅(debugging) 등에 사용됩니다. 


Fluentd 를 사용하는 이유
출처 : https://www.fluentd.org/architecture


플루언트디는 여러 로그를 수집하고 하나의 형식으로 로그를 통합하는 것을 아주 쉽게 해줍니다. 로그를 통합하면 로그를 분석하는데 아주 편리합니다. 그리고 특정 벤더(vendor)에 종속되지 않은 오픈소스 수집기입니다. 특정 백엔드에 묶이지도 않아서 유연(flexible)하기 때문에 인기가 많습니다.  

위 아키텍처 이미지를 잘 보시면 데이터 수집기를 사용해서 데이터를 수집하여 통일된 형식으로 변경하여 통합하고 이를 다른 엔드포인트로 보내는데 얼마나 편리한지 직관적으로 이해되실 겁니다. 

다양한 플러그인(plugin)이 존재하고  대부분 유명하게 사용되는 로그들은 플러그인을 사용하면 따로 개발하지 않아도 자동으로 플루언트디가 처리하여 수집하고 필터하고 파싱하고 전송합니다. 현재 플러그인의 종류가 500개가 넘습니다. 

플러그인 종류 : input, output, filter, parser, formatter, buffer, storage, service discovery, metrics 이런 것들이 500개 가지가 넘습니다.

그리고 당연히 성능이나 신뢰성이 높기 때문에 유명한 많은 기업들이 사용하고 있습니다. 클러스터링으로 높은 가용성을 보장하고, 서버 장애 등의 문제가 생기면 하드 디스크에 데이터를 저장해 두었다가 나중에 정상으로 돌아오면 저장된 데이터를 다시 보냅니다. 엔드포인트에서 어떤 이유로 데이터를 받지 못하면 재시도(retry)를 통해 엔드포인트가 available 할 때 다시 보냅니다. 이런식으로 높은 가용성과 신뢰성을 보장합니다.

쿠버네티스 + 플루언트디, IoT + 플루언트디 와 같은 유즈케이스(사용사례, use case)가 많은 것 같습니다.


플루언트디 설정은 보통 configuration file 에서 합니다. 

Fluentd 설정방법 예시
출처 : https://docs.fluentd.org/how-to-guides/apache-to-mongodb


Apache(아파치) 로그를 몽고DB로 보내고 싶은 경우, 

Fluentd 설정방법 예시
출처 : https://docs.fluentd.org/how-to-guides/apache-to-mongodb

위와 같이 설정하면 플루언티디가 아피치 서버에서 설정된 경로의 로그들을 읽어  수집하게 됩니다.

Fluentd 설정방법 예시
출처 : https://docs.fluentd.org/how-to-guides/apache-to-mongodb

그리고 위와 같이 output configuration을 설정하면, 몽고디비로 데이터를 보내게 됩니다.

Fluentd 공식문서에 자주 사용되는 사용 사례들에 대한 자세한 가이드와 샘플 설정들이 많이 있습니다. 

이상 플루언트디(Fluentd) 유명한 오픈소스 데이터 수집기 / 로그수집기에 대한 소개를 마칩니다.

- The End - 

Comments