結論
パラメータストアのjsonに encoding
を追加して適用します。
{ "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "C:\\Application\\appname\\logs\\logfile.log", "log_group_name": "logfile.log", "encoding": "shift_jis", "timestamp_format": "%m/%d/%y %H:%M:%S" } ] } } } }
ドキュメントにはエンコード指定の方法が載っていない?
WindowsインスタンスからShift JISのログをそのままCloudWatch Logsに転送したところAWSコンソール上で文字化けしてしまったので、エンコード指定の方法を調べたのですがCloudWatch Agentのドキュメントには記載がありませんでした。CloudWatch Logsのドキュメントには encoding
を指定するように記載があります。
そこでCloudWatch Logsのドキュメントを参考に、冒頭のようにパラメータストアのjsonに encoding
を追加するとうまく表示されるようになりました。ドキュメントに記載はありませんがある程度の互換性はあるようです。
CloudWatch Logsで出来ていたあの設定、CloudWatch Agentではどうするんだろう?という時はLogsを参考に値を入れてみると良さそうです。
対応していない設定はRun Command
でパラメータ適用時にちゃんと怒られるので大丈夫です。(Agentにdatetime_format
でタイムスタンプを指定しようとして弾かれました)
Start configuration validation... Invalid Json input schema. Under path : /logs/logs_collected/files/collect_list/0 | Error : Additional property datetime_format is not allowed Configuration validation first phase failed. Agent version: 1.208.0. Verify the JSON input is only using features supported by this version. ----------ERROR------- 2018/02/21 12:28:25 I! AmazonCloudWatchAgent Version 1.208.0. failed to run commands: exit status 1