時々回転するテールでログを継続的に監視する


21

テールを使用して複数のログを継続的に監視していますが、ログがローテーションされると、そのファイルのテールは停止します。

私が理解している限り、問題はログがローテーションされると新しいファイルが作成され、実行中のテールプロセスがその新しいファイルハンドルについて何も知らないことです。

回答:


34

ああ、これにはフラグがあります。

使用tail -f /var/log/fileする代わりに、使用する必要がありますtail -F /var/log/file


tail -F次のように変換さtail --follow=name --retryれます。

  • --follow=name:ファイル記述子の代わりにファイル名に従う
  • --retry:ファイルにアクセスできない場合は、死ぬのではなく後で再試行してください

なぜ「-f」オプションさえあるのでしょうか?これがデフォルトです!
ドミニクチェリサーノ

27
# tail --follow=mylog.log

男の尾

With --follow (-f), tail defaults to  following  the  file  descriptor,
       which  means that even if a tail’ed file is renamed, tail will continue
       to track its end.  This default behavior  is  not  desirable  when  you
       really want to track the actual name of the file, not the file descrip‐
       tor (e.g., log rotation).  Use --follow=name in that case.  That causes
       tail  to track the named file by reopening it periodically to see if it
       has been removed and recreated by some other program.

したがって、この場合、-Fオプションの使用は正しいでしょう。

-F     same as --follow=name --retry

11

正確な答えはOSに依存しますが、多くの場合、tail -F正しいことを行います。


3
tail -Fが機能しない場合は、機能するtail -Fのバージョンをコンパイルします。他の選択肢は、クレイジータウンへの短い道です。
クリス


2

私見、ログファイルを日付ではなくSIZEで変更するのは少し奇妙です。ほとんどのシステムログ(UnixまたはLinux)は、サイズではなく週単位または月単位で循環します...これはさまざまな理由で好きなものであり、実装すると問題を解決できるものでもあります。

8年後、私がここで何について話していたのかわかりません:毎日/毎週/毎月のローテーションが深刻な問題を引き起こす可能性のあるMASSIVEファイルを生成する可能性があるため、サイズによってローテーションしたい場所がたくさんあります。

より経験豊富な観点から見ると、本当の問題は、毎日成長しているほど速く成長しているファイルを座って連続的にテールにしたい理由です...それはMatrixストリームを見ているようなものです。

最近では、SplunkやSumologicのようなビッグデータログの集計を検討したほうがいいでしょう。ログイベントをクラスにフィルターし、特定のログ値に基づいてトリガーできます...ライブログをまったく見る必要はありません。


同意しますが、これは私が検討しなければならないことに気づいたことの1つです。log4jがサポートすることを願っています。ありがとう!
DivideByHero

1
サイズによるローテーションの明確な利点の1つは、ログのセット全体が既知のサイズよりも小さくなることを確認できることです。
ジムザジコフスキ

1

実稼働サーバーでコマンドを使用します。

tail --follow var/log/apache-access_log --retry

-1

また、あなたの目的には少し頑丈すぎるかもしれませんが、splunkにはあなたが望むことを正確に行うためのテール機能があります。1日あたり最大500 MBまで無料ですが、データのサイズがそれを超えている場合、コストに見合う価値はありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.