Fluentd에서 spring boot로 로그 데이터 전송하기

2024. 11. 14. 23:51EFK

로그파일을 읽어서 json으로 변환하여 spring boot로 전송하는 경우, 이슈가 있음

1. 415 에러가 발생함

2. 한번 보낼때, 여러 row를 전송하게 되는데, 아래와 같이 List 처리 없이 그냥 보냄

{"a":"a", "b":"b"}
{"c":"c", "d":"d"}
{"e":"e", "f":"f"}

415 에러의 경우는 header값이 제대로 전달되지 않아서 발생한 문제임

데이터를 List 처리 없이 보내게 되면, spring boot는 첫번째 라인만 읽고 나머지는 무시함

해결방법: https://docs.fluentd.org/output/http

 

http | Fluentd

Last updated 2 months ago

docs.fluentd.org

해당 페이지에서 Troubleshooting 확인 필요

<match **>
  @type http
  endpoint http://some.your.http.endpoint:9811/your-awesome-path
  # 415 에러 방지를 위해서 필요함
  <format>
    @type json
  </format>
  # array 설정이 있어야 json 형식이 적절하게 변경됨
  json_array true
  <buffer>
    flush_interval 2s
  </buffer>
</match>

위 조치를 했을 때, 아래와 같이 정상적으로 데이터가 전송됨

[{"a":"a", "b":"b"},
{"c":"c", "d":"d"},
{"e":"e", "f":"f"}]