Apache ログ ファイルをローテーションする最良の方法 [終了]
質問
私の Apache サーバーには、600MB を超えるアクセス ログ ファイルが 1 つあります。これにより、ファイルの検索や解析が非常に困難になります。
アクセス ファイルのコピーを毎日作成して管理しやすくする、Apache 用のソフトウェアまたはモジュールにはどのようなものがありますか?
解決
見ましたか ログローテート - これはおそらく、これを達成するための最も簡単で、最も広く利用され、よく理解されている方法です。高度に構成可能で、おそらく必要なことの 90% を実行します。
他のヒント
私は大ファンです クロノログ. 。インストールしてログをパイプするだけです。毎日のログローテーションの場合、次のようなものが機能します。
ErrorLog "|/usr/bin/cronolog /path/to/logs/%Y-%m-%d/error.log"
CustomLog "|/usr/bin/cronolog /path/to/logs/%Y-%m-%d/access.log" combined
かなり便利で、一度インストールしてしまえば、(私の経験では) logrotate よりも簡単です。
Windows 用の実際のコマンドは、オンラインで見つけるのが非常に困難です。
CustomLog '|" "*Apache-Path/bin/rotatelogs.exe"
"**Apache-Path*/logs/backup/internet_access_%d-%m-%y.log" 86400' combined
「internet_access」ビットはファイルに選択した名前で、86400 は 1 日の秒数です。Apache-Path を、Apache をインストールした関連ディレクトリに変更する必要があります。
ログローテート
logrotate
おそらく最良の解決策です。ファイルを使用する /etc/logrotate.conf
すべてのログの設定を変更します。あなたは変化します weekly
に daily
したがって、ログは毎日ローテーションされます。また、追加することもできます compress
したがって、アーカイブは圧縮されます。古いログを気にしない場合は、ローテーションを設定できます。 rotate 4
より低いものに。
CustomLog "|bin/rotatelogs /var/logs/logfile 5M" 共通
この設定では、ログファイルのサイズが 5 MB に達するたびにログファイルがローテーションされます。
ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M"
これは、Apache ログをリダイレクトする最良の方法です。httpd で MOD をコンパイルする必要はありません。
Windows OS では、rotatelog.exe または cronolog.exe。これらは、http.conf mod_log_rotate apache for apachのみの追加モジュールのPipeコマンドで使用されます。
外部パイプなどを必要とせずにこれを行うモジュールがあります。
http://www.poptart.org/bin/view/Poptart/ModAutorotate
これを Apache モジュール コレクションに追加しようとしましたが、しばらくの間壊れているようです。