Apacheでのlogrotateとrotatelogsの長所と短所は何ですか?


11

Apacheはrotatelogsと呼ばれるツールを提供します。これは、logrotateで発生するログをローテーションするときにApacheを再起動しないという利点があります。これがlogrotateよりもrotatelogsを使用するのに十分な基準である場合、私は話すのに十分な経験がありません。

私の質問は、これらの2つのツールのいずれかまたは両方を使用して実際の経験を持っている人はいますか?

あなたは何を勧めますか、そしてその理由は何ですか?

回答:


7

他のすべてのログをローテーションするので、ほとんどの人にはlogrotateをお勧めします(KISS:Keep it Simple Stupid)。Logrotateは、すべてのApacheを再起動するのではなく、すべてのログファイルを再度開いて子を再起動するように指示する信号を送信するだけです。この信号は、子がすぐに再起動する(ダウンロードを中断する)SIGHUP、または正常な再起動を行うSIGUSR1のいずれかです。SIGUSR1では、すべての子が自然に死んだと思うまで、ログ処理を遅らせる必要があります。どちらの方法でも、おそらくログを分析して、日または週で最もトラフィックの少ない期間の時間を計る必要があります。

パイプされたログは、より強力なソリューションのようです。大きな利点は、集中ログシステムを使用して、Webサーバー自体の負荷を軽減できることです。マニュアル自体は言う:

条件付きロギングと同様に、パイプされたログは非常に強力なツールですが、オフラインの後処理などのより単純なソリューションが利用可能な場合は使用しないでください。

あなたがいないのであれば、明らかに、パイプされたログを使用していない必要があることを。私は過去にログをフィルタリングするハックな方法としてパイプロギングを使用しており、問題はありませんでした。


Apacheのlogrotateファイルを含むpostrotateスクリプトは、SIGHUPを送信することです。これにより、Apacheはすべての子を終了して再起動します。その時点でアクティブな接続はすべて終了します。
ワーナー

私は、グレースフルリスタートが負荷の高いサーバーではうまく機能しないと言ったコメントをどこかで読みました。しかし、私は本当に代替案がたくさんあるとは思いません。
Mohan Gulati

SIGHUPでのlogrotateはかなり標準的です。気にしない。
ワーナー

2

以前に両方を使用したことがあります。rotatelogsを使用すると、アクセスログの管理や、Apacheのダウンタイムが必要ない場合に非常に便利なツールであることがわかりました。大量のサイトでこれをお勧めします。唯一見つけた問題は、ログを管理したい場合、ログをクリーンアップするか、バックアップサーバーに移動するために別のスクリプトcronが必要になることです。要件によって異なります。logrotateを使用すると、ログファイルの処理方法に関するオプションが増えます。唯一の問題は、前の回答で説明したようにlogrotateが実行された場合、Apacheを再起動する必要があります。

基本的に、すべてを選択する必要があります。Apacheを中断することなく実行する必要がある場合は、管理する外部cronスクリプトを使用してrotatelogsを実行します。それ以外の場合は、logrotateで十分です。トラフィックが多いときにログをローテーションしないようにlogrotate cronを設定してください。

最後に、Apacheログをsyslogに記録したい場合は、RedhatベースのLinuxにあるloggerコマンドをいつでも使用できます。

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