いくつかのデフォルトのVHOSTに加えて、デフォルトのApacheおよびApacheロギング設定があります。 Apacheログファイル(error.log、access.log)を見ようとするたびに、ファイルが定期的に並べ替えられて再構成されていることがわかりますが、残念ながらその理由と方法を理解できません。
私が知る限り、このログファイルの操作は "logrotate"というユーティリティによって行われます。
そしてマンページの説明
logrotateは、大量のログファイルを生成するシステムの管理を簡素化するように設計されています。ログファイルの自動回転、圧縮、削除、メーリングが可能です。各ログファイルは、毎日、毎週、毎月、または容量が大きすぎる場合に処理できます。
私は次の資料を読んだ。
- http://www.rackspace.com/knowledge_center/article/understanding-logrotate-utility
- http://linuxcommand.org/man_pages/logrotate8.html
- https://www.digitalocean.com/community/tutorials/how-to-configure-logging-and-log-rotation-in-apache-on-an-ubuntu-vps
- http://httpd.apache.org/docs/2.4/logs.html#rotation
上記のリソースは、方法の良い技術的な説明を提供します。構成logrotateを実行しましたが、何の常識的な説明を得ることはできません。ログ回転点は次のとおりです。、どのように動作するかをある程度理解しておく必要があります。一部のファイルで圧縮を実行するのがわかります。
私はlogrotateが多くのサービスのログファイルを処理できる一般的なユーティリティであることを知っています。したがって、機能は各構成に応じて変更されます。しかし、Ubuntu 14.04のapache 2.4コンテキストで「logrotate」は何をしますか?
答え1
アイデアは、常に最新のエントリを含む比較的新しいマスターファイル(access_logやerror_logなど)を持つことです。ログが古すぎるか大きすぎると、logrotateは情報が削除されないようにアーカイブファイルを生成します(access_log-YYYYMMDDに似ています)。
これにより、デフォルトのログファイルのサイズを制御できないほど古いログにアクセスできます。より少ない情報を含む小さなファイルは、読みやすくデバッグする方が簡単です。特に、これらのログが数ギガバイトまで大きくなる可能性がある使用量の多いサーバーでは、さらにそうです。
たとえば、CentOSでは、Apacheログは7日ごとに置き換えられます。
空き時間にアーカイブファイルを削除するか、logrotateに削除を処理させることができます。
確認する男代数回転詳細については。
答え2
ポイントlogrotate
は、アプリケーションがログファイルに無期限に書き込むことが許可されている場合
- ディスク容量が不足している
- ファイルが大きすぎて表示できなくなります(一部の人は100 MBのログファイルにviを使用しています...)
それでそれがすることは
- 設定可能な方法の提供名前を変更する現在アクティブなファイルを保存したコピーとして、
- ログファイルを作成しているサービスに新しいファイルを起動するように指示します。
- コピーをアーカイブするのに必要なディスク容量を知らせる設定可能な方法を提供します。
多くのプログラムがファイルを開いたままにしているため、ログファイルの名前を変更するだけでは機能しません。名前が変更されると、プログラムは名前が変更されたファイルに書き込みを続けます。
ロギング用に設計されたプログラムは通常、信号に応答するように設計されています。そうでなければ、(logrotate
はい設定可能)、ログファイルが大きくなるとサービスを再起動できます。
追加資料:
- Apache HTTPサーバーの停止と再起動(信号使用法説明)