fluentd 를 사용하여 HIVE 애널리틱스 v2에서 사용하는 사용자 정의 로그를 전송하는 방법입니다.


Fluentd 설치

 

  – td-agent  v1.x  버전 설치를 권장 합니다.

– 각 언어 별 td-agent 라이브러리가 제공됩니다.  (https://docs.fluentd.org/language-bindings)

 

td-agent 설치

  • http://docs.fluentd.org/articles/install-by-rpm
  • td-agent 설정 파일 수정

Fluentd 기본 설정 설명

  • 로그파일 : 로그파일의 기본경로는 /var/log/td-agent 이며 하위에 td-agent.log 파일이 존재 합니다.
  • 이벤트 : Fluentd 에서 이벤트는 record , log 의 의미를 가집니다.
  • <source> : 다양한  input을 받기 위해 사용하며, @type을 이용하여 다양한 플러그인을 사용 할 수 있습니다.
  • <match> :  source 를 통해 전달된 input 이벤트를 처리 합니다.

 


Fluentd  Plugin

  • 플러그인 확인 및 설치 : 플러그인 리스트를 확인 후 필요한 플러그인은 설치 후 사용 해야합니다.

( tail , forward , stdout 등 기본 플러그인은 제공 되며, forest 플러그인 등 다른 플러그인은 설치 후 사용해야 합니다.)

 

  • tag (태크) : 태그는 이벤트를 구성하는 구분값이며, <match>섹션은 태그값과 일치하는 값을 가져와 처리합니다.

[Input 플러그인]

 

  • in_tail : 대표적인 in_tail 플러그인은 파일을 tail 해서 데이터를 읽는데 사용한다 .
 

  • in_forward : 보통 다른 Fluentd 노드로부터 데이터를 전달 받기 위해 사용한다.
 


[Output 플러그인]

 

Output 플러그인은 <match> 섹션에 정의하며,  Buffering과 Flushing에 대한 설정을 <match> 섹션안에 <buffer> 서브 섹션으로 정의한다.

 

  • output_stdout : 이벤트를 표준출력(stdout)으로 내보냄, 주로 디버깅용으로 사용한다.
 

  • output_forward : 다른 Fluentd 노드로 이벤트를 전달할때 사용한다.
 

  • fluent-plugin-forest : tag 명을 사용하여 로그파일을 저장 할 수 있는 기능을 제공 합니다.

(다음과 같이 로컬에 로그를 저장할 수 있도록 설정 할 수 있습니다.)

 

 


Fluentd 사용 예시

Fluentd 를 사용하여 아래와 같은 방식으로 로그전송이 가능합니다. 아래 링크를 클릭하여 자세한 내용을 확인하세요.

 


설정 수정 적용

  • td-agent.conf 문법확인하기
  • td-agent 재시작