Custom Search

JITAKU_SVR_Wiki

apacheのログをlogrotateを使わずにapache自身の持っているローテートの方法で行う。
※SuSEでのコマンドは「rotatelogs2」、CentOSでは「rotatelogs」になっているので注意。

書式は簡単で、使用しているapacheのconfのログ出力場所を以下のように書き換える。

CentOSのデフォルトのログ形式
httpd.conf内

CustomLog logs/access_log combined

SuSEのデフォルトのログ形式
vhost.template内

CustomLog /var/log/apache2/dummy-host.example.com-access_log combined

SuSEの場合
変更

ErrorLog "|/usr/sbin/rotatelogs2 /home/apache/logs/error_log.%Y%m%d 86400 540"
CustomLog "|/usr/sbin/rotatelogs2 /home/apache/logs/access_log.%Y%m%d 86400 540" combined

%Y%m%d 当日の日付を付ける
86400 一日(24時間)を指定
540  デフォルトがUTC時間なので、日本時間に変更

TIPS:
rewrite_logやjk_logでも上記の書式で使える。

rotatelogsを使用すると、日付が変わった後、ログが吐かれるようなアクセスがあった場合に新ファイルを作成してくれる。
つまり、logrotateに任せた場合には必ずreload(またはrestart)がかかる仕組みだが
この方法を使用するとプロセスの再読み込みなどは行われなくなる。

ただし、上記の方法だとlogrotateのデフォルトから外れてしまうため、独自でスクリプトを作るなどして、圧縮、または世代管理してあげる必要がある。




トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-12-17 (木) 16:33:36 (702d)