fluentd 인코딩 변환 설정
<source> from_encoding cp949 encoding utf-8 </source>
아래와 같이 CP949 에서 UTF-8 변환 실패로 인한 로그 유실 발생
error="\"\\xC1\\xC1\" from CP949 to UTF-8"
iconv 에서의 ignore translit 옵션 처리에 대한 방안 검토
debug 모드로 확인 결과 in_tail.rb 파일 확인
<system> log_level debug </system> 2017-07-07 18:57:08 +0900 [warn]: ??? error="\"\\xC1\\xC1\" from CP949 to UTF-8" 2017-07-07 18:57:08 +0900 [debug]: /opt/td-agent/embedded/lib/ruby/gems/2.1.0/gems/fluentd-0.12.35/ lib/fluent/plugin/in_tail.rb:321:in `encode!'
debug모드 에러에서 나온 in_tail.rb 파일 321라인 에 대해서 아래와 같이 수정함
$vi /opt/td-agent/embedded/lib/ruby/gems/2.1.0/gems/fluentd-0.12.35/lib/fluent/plugin/in_tail.rb line.encode!(@encoding, @from_encoding) => line.encode!(@encoding, @from_encoding, :invalid => :replace, :undef => :replace, :replace => "?")
상황에 따라서 "?" 또는 "" 빈값형태로 대처 한다.