티스토리 뷰

FluentD

  • Fluentd는 오픈 소스 데이터 수집기로 보통 로그를 수집 대상으로 삼지만 이외 데이터 소스(HTTP, TCP 등) 로 부터 수집을 하기도 한다.

  • Fluentd는 수집된 데이터를 필요에 따라 가공하여 원하는 목적지로 전달한다.

    • Fluentd에서 제공하는 여러 플러그인을 통해서 다양한 목적지 (Kafka, ElasticSearh, S3 등) 로 전송이 가능 

  • 주로 어플리케이션의 로그를 한 곳으로 모아서 모니터링하기 위해서 에이전트로 사용이 되는 경우가 많다.

 

 


설치 방법

  • 해당 글은 Mac OS X를 기반으로 작성되었습니다.

td-agent 설치

  • td-agent는 Ruby로 작성된 fluentd를 쉽게 사용할 수 있도록 개발된 래퍼 소프트웨어 이다.
  • 아래 위치에서 dmg 파일을 다운로드 
 

Install by .dmg Package (MacOS X)

 

docs.fluentd.org

 

  • 설치 후에 아래 경로에서 Config 파일을 확인
❯ ls -l /etc/td-agent
total 8
drwxr-xr-x  2 root  wheel   64 Aug 10 20:06 plugin
-rw-r--r--  1 root  wheel  390 Aug 11 21:32 td-agent.conf

 

td-agent 실행

  • td-agent는 아래 명령어를 통해서 실행 시킬 수 있다. 
  • 또한 /var/log/td-agent/td-agent.log 파일에서 로그를 확인할 수 있다.
$ sudo launchctl load /Library/LaunchDaemons/td-agent.plist
$ less /var/log/td-agent/td-agent.log
2018-01-01 16:55:03 -0700 [info]: starting fluentd-1.0.2
2018-01-01 16:55:03 -0700 [info]: reading config file path="/etc/td-agent/td-agent.conf"

 

  • 종료 시키기 위해서는 아래 명령어를 사용한다.
$ sudo launchctl unload /Library/LaunchDaemons/td-agent.plist

 

Sample 로깅 테스트

  • 설치 후 td-agent 를 실행하게 되면 기본 Config(/etc/td-agent/td-agent.conf)가 적용이 되는데 HTTP endPoint로 데이터를 받아 콘솔(stdout)로 출력하도록 설정되어 있다.
  • CURL 명령을 통해서 메시지를 전송해보자.
    • fluentD Log를 확인하여 HTTP Message가 콘솔에 출력되는 것 확인
$ curl -X POST -d 'json={"json":"message"}' http://localhost:8888/debug.test
$ tail -n 1 /var/log/td-agent/td-agent.log
2018-01-01 17:51:47 -0700 debug.test: {"json":"message"}
반응형
댓글