
私は、graylog サーバーをホストする Ubuntu 14.04 で作業しています。/var/log/upstart/ ディレクトリには、受信したすべてのメッセージのプレーンテキスト ログがあり、3 GB ごとにローテーションするように設定されています。ただし、以前抱えていた問題は、ローテーションするたびに「graylog-server.log」が「graylog-server.log.1」に名前が変更されることです。これは気に入りません。設定に「copy」キーワードを追加したら、ファイル名は適切になりました。ただし、ログ ファイル内のすべてのメッセージが残ってしまうため、圧縮後に削除したいのです。そこで、私の質問は...
- これを実現するのに役立つ設定キーワードはありますか? 調べてみましたが、logrotate は初めてなので、見逃しているものがあるかもしれません。
- それができない場合、ログファイルをローテーションした直後に空にするようにスケジュールする方法はありますか? いくつかのメッセージが削除される可能性がありますが、それほど心配していません。
ありがとう!
設定:
/var/log/upstart/*server.* {
size 3G
missingok
rotate 5
compress
notifempty
nocreate
copy
}
答え1
通常、最新のローテーション ログ ファイル ( file.1
) は圧縮されずに保持され、次のローテーション ( file.1
-> file.2.gz
) で圧縮されます。
ローテーションしたログファイルをすぐに圧縮したい場合は、
nodelaycompress
オプション。
ノードレイ圧縮
前回のログファイルの圧縮を次のローテーションサイクルまで延期しないでください(これは、遅延圧縮オプション)。