td-agent.conf 설정

Tool/Fluentd 2017. 4. 10. 23:35

td-agent.conf 는 fluentd 의 설정 파일이다.


1. 어떤 경로를 통해서 input 이 들어왔는지 체크하고, 

2. 특정 경로나 tag 별로 데이터를 수집하여, 

3. 어디로 수집된 데이터를 보낼 것인지 등을 설정한다.


$ curl -X POST -'json={"json":"message"}' http://localhost:8888/debug.test
cs


이전 예제에서 처럼 HTTP input 에서 POST 메소드로 데이터를 json 포맷으로 변환하였고, 아래와 같이 td-agent.log 파일에 기록되었다.


2017-04-05 07:05:41 +0000 debug.test: {"json":"message"}
cs


이것은 /etc/td-agent/td-agent.conf 설정 파일에 위처럼 동작하도록 기본값이 설정되어 있기 때문이다.

설정 파일인 /etc/td-agent/td-agent.conf 를 열어보자.


<match debug.**>
  @type stdout
</match>
 
<source>
  @type forward
</source>
 
<source>
  @type http
  port 8888
</source>
cs


하나의 <match> 지시자와 두개의 <source> 지시자가 보인다.

<source> 는 어떤 방식의 이벤트를 받을지 결정하는 지시자이다.

@type 에 특정 input 플러그인(위 예제에는 forward, http) 을 지정하여 그 방식의 이벤트만 받겠다는 것이다.

http 는 HTTP 8888 포트를, forward 는 TCP 24224 포트(default) 를 Listen 하고 있다.

그렇게 입력된 이벤트 중 <match> 지시자에 일치하는 tag(위 예제에는 debug.** 에 해당하는 모든 tag) 를 output 플러그인인 stdout 처리하도록 되어 있다.

이 stdout 플러그인은 /var/log/td-agent/td-agent.log 파일에 기록되며 디버깅에 유용하다.


아래와 같이 fluent-cat 디버깅 도구를 이용하여 forward 입력 플러그인으로 메시지를 보낼 수 있다.


echo '{"json":"message"}' | /opt/td-agent/embedded/bin/fluent-cat debug.test
 
2017-04-05 07:15:23 +0000 debug.test: {"json":"message"}
cs


output 형태는 다음과 같이 세 부분으로 구성된다.


- time : 2017-04-05 07:05:41 +0000

- tag : debug.test

- message : {"json":"message"}


tag 는 <match>, <filter> 등의 지시자를 사용하여 구분할 때 주로 사용하며, message 형태는 항상 JSON 이다.

output plugin 을 살펴보고, 입력된 이벤트로부터 더 다양한 처리를 할 수 있다.




WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,