Guyz... 私たちは立ち往生しています.. 私たちを救ってください! :-)
Fluentd を使用して 3 ステップのログ集計パイプラインを作成しています。
[#1 - ログの末尾 (生ログ)] --(TCP)--> [#2 - 読み取ったログを JSON に解析] --(TCP)--> [#3 - フィルタリングして Redis & Mongo に出力]
最初のステップで末尾のログを JSON に変換していません。これは主に、そのサーバーで余分な CPU 消費を避けたいという事実によるものです。私たちが持っているログ行はかなり複雑で、解析はステップ 2 (別のクラスター/サーバー上) で意図的に延期されています。
したがって、フェーズ #1 は、時間、タグ、および記録 (生のログ行) を発行します。ここでは in_tail プラグインを使用しているため、デフォルトで「time」属性はレコードがファイルから読み取られた時刻を示します。そのため、負荷がかかると、読み取り時間がログ行の実際のタイムスタンプと一致しない可能性があります。
JSON の解析は、第 2 フェーズに延期されます。
2 番目のフェーズでは、ログを JSON に変換したら、フェーズ 1 で送信された「時間」属性を JSON レコードの時間属性にオーバーライドします。
ステップ 2 では Fluent-Plugin-Parser を使用します ( https://github.com/tagomoris/fluent-plugin-parser )。
ステップ 1 で読み取った「時間」の代わりに、時間属性をオーバーライドして FluentD にそれを使用させるにはどうすればよいでしょうか?