概要
Windowsサーバを利用しているJavaっぽいプロジェクトに関わると、文字コードがWindowsっぽくないログファイルに会うことが、多々有ります。
Filebeatを利用している場合、Filebeat側で対応できるので、その記録を残しております。
想定状況
構成
- ファイル送信元
- Windowsサーバ
- Filebeatを利用している
- Shift_JISでLF改行の ログファイルを転送する
- メモ帳等で開くと、改行がないように見える(Winodws的にはCRLFで改行なので、CRが足りない)
- ファイル受信
- Linuxサーバ
- logstash
- 受け側はあまり関係がない
状況
そのままファイルを転送すると、文字化けする。
- 改行記号は認識してるらしく、レコードは正しく分割される
- 日本語文字が、化ける(ひし形?の黒四角とか。環境による)
受け側のlogstashで処理しようとしたが、うまく行かず。
filebeat.inputs:
- type: log
enabled: true
paths
- C:/tmp/Shift_JIS_with_LF.log
fields:
logtype: javaApplicationLog
対応策
Filebeatで、input毎に endocing が指定できるので、そこで指定する。
送信元で正しくencoding認識しておくべき、は当たり前でしたね。(が、どのオプション記載をすればいいのか分からなかった)
filebeat.inputs:
- type: log
enabled: true
encoding: Shift_JIS # <----ここを追加
paths
- C:/tmp/Shift_JIS_with_LF.log
fields:
logtype: javaApplicationLog
; ログで日本語使うなよ…、せめて文字コードや改行記号は揃えてログを出そうよ…
以上。