web-dev-qa-db-ja.com

logrotateは独自のログをどこに保存しますか?

ApacheログをローテーションするEC2 AWSマシンでlogrotateを実行しています。パックされると、Apacheログはs3fsを介してAWS S3に保存されます。問題は、ログがローテーションされていないことに最近気付いたことです。 S3では48日目から60日目までの古いログがありますが、1日目から47日目までは表示されません。

私の質問は次のとおりです。logrotateは独自のログをどこに保存しますか? s3fsになんらかの問題がある可能性はありますが、何かする前に知っておく必要があります。どこかでログを見つけようとしましたが、見つけることができませんでした。

何か案が?

29
enedebe

logrotateはデフォルトでは何も記録しません。通常、それはあなたのcronのどこかにあるはずです、例えば:

$ grep -r -- 'logrotate.conf' /etc/cron*
/etc/cron.daily/logrotate:/usr/sbin/logrotate /etc/logrotate.conf

手動で実行して問題を確認するか、logrotateの出力を上記のcron内のファイルにリダイレクトして、翌日に何が起こったかを確認できます。

おそらくどこかで設定が正しくなく、logrotateの実行が中断しました。

23
johnshen64

Logrotateレコードが通常はcat /var/lib/logrotate/status

これは https://serverfault.com/a/518134/266525 から取得されます

9
dragon788

もう1つの見どころは/var/log/messages CentOSでは、cron.dailyからのこのようなエラーの場合は/etc/cron.daily/logrotate

logrotate: ALERT exited abnormally with [1]

デバッグモードで手動で実行してエラーを確認することもできます。

/usr/sbin/logrotate -d /etc/logrotate.conf

ソース: https://access.redhat.com/solutions/32831

5
Tony-Caffe

Cronからlogrotateを実行していて、出力をリダイレクトしていない場合、出力があれば、cronジョブを実行しているIDのメールに送信されます。出力をログファイルにリダイレクトします。

例えば:

25 3 * * 7 /usr/sbin/logrotate -s /home/user/conf/mwarelogrotate.state 
/home/user/conf/mwarelogrotate.conf >> /home/user/logs/logrotate.log 2>&1
2
Geoffrey M.

/etc/logrotate.confをチェックして、/etc/logrotate.d/を介して構成されたタスクに影響を与える可能性があるグローバル構成設定を確認します

1
cdmo

Logrotateがログをローテーションしないか、失敗した状態になった場合は、次のように、デバッグモードでlogorateを手動で実行して、リストされているエラーを確認することをお勧めします。

/usr/sbin/logrotate -d /etc/logrotate.d/*

このコマンドは、ファイルが/etc/logrotate.dにあるすべてのサービスのログのローテーションをテストします。エラー(重複したログエントリが原因で発生したエラーなど)がリストされている場合は、logrotateに問題がある理由がわかります。

1
Ludvik