Fluentd Config 파일 분리하기
728x90

Fluentd 를 설치하고 사용하는 중에 추가해야 될 플러그인들이 많아져서 conf 파일이 길어지면서 보기가 어려워졌다.

conf 파일을 여러 개 만들어서 분리한 다음 fluentd가 실행 될 때 읽는 파일에다가 import만 하면 어떨까 라는 생각이 들어 찾아봤는데 @include라는 녀석이 있다는 것을 알게 되었다.

@include 를 사용하는 것은 간단하다. fluent.conf 또는 rpm으로 fluentd를 설치했다면 td-agent.conf에 @include를 하고 그 뒤에다가 분리 시켜놓은 conf 파일들의 경로와 함께 선언하면 된다.

사용법

fluent.conf

@include /path/fluentd_config.conf

@include /path/fluentd_config2.conf
...

fluentd_config.conf

<source>

</source>

<match>

</match>

fluentd_config2.conf

<source>

</source>

<match>

</match>

conf 파일의 파일명은 하고싶은 이름으로 생성하면 된다.

이제 주의할 점은 fluentd를 실행 시킬 때 저 @include 한 것들이 한번에 모이므로 conf 파일들 끼리 공유하는 느낌으로 보면된다.

conf1.conf

<source>
    @tag haha
    ...
</source>
<match **>
    # conf2 파일의 h2h2 도 같이 발송
</match>

conf2.conf

<source>
    @tag h2h2
</source>

<match h2h2>
    # 여기서 한번 발송
</match>

conf1.conf 파일에서 source 설정을 하고 match 에 들어가는 tag 가 ** 으로 되는 경우에는 conf1 이외에 생성한 conf 파일들이 전부 저 match로 몰리게 된다.

그래서 하나의 로그를 2번 발송하는 경우가 생기므로 config 파일을 분리 시켰을때 tag를 잘 설정해 놓는 것이 중요하다.

728x90

'Fluentd > 적용' 카테고리의 다른 글

Fluentd Http Test  (2) 2022.10.25
Fluentd from ASCII-8BIT to UTF-8 error  (0) 2022.07.31
Fluentd + Azure Loganalytics  (0) 2022.07.25
Fluentd Installation ( ruby gem )  (0) 2022.07.25
Fluentd access log 500 에러만 남기기  (0) 2022.06.23