현재 원하는대로 로그를 뽑던 중 동적으로 이름을 로그 파일 제목을 바꾸면 좋겠다고 생각해 개발하고 있었다.
태그를 이용하면 된다는 것을 알고 fluentd의 rewrite_tag_filter 플러그인을 사용하고자 했다.
공식문서에 있어 fluentd 이미지에 내저되어져 있는 줄 알았는데 없었다.
k8s에서는 Docker와 달리 이미지를 가져오는 것이 로컬이 아닌 Docker Hub와 같은 레지스트리이기 때문에 테스트용으로 하나 올려뒀다.
FROM fluent/fluentd:v1.16.2-1.0
USER root
RUN gem install fluent-plugin-rewrite-tag-filter
USER fluent
아주 간단해서 공용으로 해두었는데 혹시 필요한 사람은 참고하길.
아무튼 k8s 매니페스트 파일도 수정해주고 AKS에 올렸는데 에러가 나왔다.
fluentd 로그를 확인해보니 Unknown filter plugin 'rewrite_tag_filter'. Run 'gem search -rd fluent-plugin' to find plugins 라는 문구가 보인다.
하지만 웃긴건 바로 위에 gem 'fluent-plugin-rewrite-tag-filter' version '2.4.0' 라고 설치 잘 되었다는 문구도 있다.
이상해서 찾아보니 난 바보였다.
repeatedly님이 말한 것처럼 rewrite-tag-filter 플러그인은 output plugin이다!
<filter kubernetes.**>
@type rewrite_tag_filter
enable_ruby
<rule>
key message
pattern /consoleLogModule/
tag consoleLogModule.${record['message'].split(' ')[4].split('/')[0]}
</rule>
</filter>
하지만 나의 conf 파일을 보면 filter을 사용하고 있었다 😱
바로 match로 바꾸니 잘 해결되었다.
깃허브 링크는 아래에 있으니 한 번 봐보시길
https://github.com/fluent/fluent-plugin-rewrite-tag-filter/issues/52
댓글