1

fluentd の使用を検討しているプロジェクトに取り組んでいます。おそらくin_tailを使用して、nginxアクセスログをリアルタイムで解析する必要があります。しかし、ログのローテーションが発生すると問題が発生します。

このシナリオでは、fluentd は DAY1 23:59:00 までテールアップを完了します。次に予定されている実行は 2 分後です。したがって、DAY2 01:01:00 に再び実行されます。一方、nginx アクセス ログはローテーションされました (ファイルが切り捨てられた可能性が最も高い)。1 分あたり 1000 のログ エントリがあるとします。fluentd がローテーション後に DAY1 の最後の分を取得するにはどうすればよいでしょうか。誰かが私にいくつかの指針を与えることができますか?

4

2 に答える 2

1

前回のチェック後に更新された場合、fluentdはローテーションされたファイルからもデータを読み取ると思います

http://docs.fluentd.org/articles/in_tail 回転待ち

in_tail は、実際には tail -F 自体よりも少し多くのことを行います。ファイルをローテーションする場合、一部のデータは新しいファイルではなく古いファイルに書き込む必要がある場合があります。

in_tail は、新しいファイルに完全に移行する前に、(ローテーションされた後でも) 古いファイルへの参照をしばらく保持することで、これを処理します。これにより、古いファイル用に指定されたデータが失われるのを防ぐことができます。デフォルトでは、この時間間隔は 5 秒です。

rotate_wait パラメーターは、この時間間隔を秒数で表す単一の整数を受け入れます。

于 2014-02-17T16:58:07.130 に答える