728x90
Fluentd 를 실제 서버에 올려놓고 로그 수집을 기다리던 중에 중국어 와 json 로그를 전송하던 중에 \xE6 from ASCII-8BIT to UTF-8 에러가 나와서 로그가 정상적으로 발송되지 않는 현상이 일어났다.
이러한 에러는 서버에서 보내는 로그 형식이 UTF-8 인데 인코딩이 잘못되는 경우이다.
지금 회사의 경우에는 대만 회사여서 중국어가 로그에 포함되는 경우가 있는데 이 때 발생하는 에러 같다.
그래서
<source>
@type tail
encoding utf8
...
</source>
문제는 json 형식으로 보낼 때 \xE6 에러가 아닌 \xC 계열로 예외가 발생하는데 이 때는 format을 json이 아닌 yajl을 사용하라고 공식문서에 나와있다.
<source>
@type tail
foramt yajl
...
</source>
이런 식으로 사용하는게 좋다고 한다..
추가적으로 저렇게 해도 적용이 안된다면
cd ./gem install fluent-plugin-record-modifier
이 플러그인을 설치 후
<filter pattern>
@type record_modifier
# set UTF-8 encoding information to string.
char_encoding utf-8
</filter>
이렇게 설정 해주면 중국어도 깨져서 나오지도 않고 잘 나온다.
728x90
'Fluentd > 적용' 카테고리의 다른 글
Fluentd Http Test (2) | 2022.10.25 |
---|---|
Fluentd Config 파일 분리하기 (0) | 2022.07.25 |
Fluentd + Azure Loganalytics (0) | 2022.07.25 |
Fluentd Installation ( ruby gem ) (0) | 2022.07.25 |
Fluentd access log 500 에러만 남기기 (0) | 2022.06.23 |
Comment