出力ファイルのログごとに 1 行の JSON 形式でログを出力するカスタム アプリケーションを作成しています。これらのログを分析のために AWS CloudWatch と Splunk の両方に取得したいと考えています。私の質問は、タイムスタンプをログ行に配置する標準的な場所は何ですか? 次のように JSON blob の前に移動する必要があります。
2016-05-30 10:13:00 { "field1": 6, "field2": "Hello world!", ...}
または、次のように JSON 内に入れる必要があります。
{"timestamp": "2016-05-30 10:13:00", "field1": 6, "field2": "Hello world!", ...}
Splunk は後者を好むようです。ログ形式が _json であると伝えると、前者に不満を感じ、次のようなエラーが発生します。
05-28-2016 16:29:17.973 +0100 ERROR JsonLineBreaker - JSON StreamId:18154196253238674442 had parsing error:Unexpected character: '-' - data_source=.....
しかし、Cloudwatch は前者を望んでいるようです。つまり、タイムスタンプをログ行の最初のものとして望んでいるようです。これは、JSON 以外のログでは問題ありませんが、明らかに JSON ログでは問題ありません。私はどこでも答えを探してみましたが、タイムスタンプのフォーマットに関する記事はたくさんありますが、この JSON 関連の質問をカバーしているようには見えません。