- 2009-04-21 (火) 14:05
- Tips
AWStats等のアクセスログ解析のためにApacheのアクセスログを日付別に分割したい場合がある。今まではパイプでcronologを使って分割パイプで使用していたが、なんだか怪しい気がしていた。
Apacheのモジュールで存在しないか探してみたところ発見した。
Mod-log-rotate – Hexten
mod_log_rotateをCentOS 5.2にインストールしたときのメモ
◆ダウンロード
$ wget http://hexten.net/assets/apache2/mod_log_rotate.c
◆インストール
# apxs -i -a -c mod_log_rotate.c
※apxsコマンドがない場合はhttpd-develをインストールする
# yum install httpd-devel
勝手に/etc/httpd/conf/httpd.confも書き換わるっぽい。
◆設定(/etc/httpd/conf/httpd.conf)
おそらくこれは上記インストール時に追加される。
LoadModule log_rotate_module /usr/lib64/httpd/modules/mod_log_rotate.so
下記を追加する。
RotateLogs OnRotateLogsLocalTime On
CustomLog部分の変更。日付別の形式とする。
#CustomLog logs/access_logcombined CustomLog "logs/access_log.%Y%m%d" combined
◆設定(/etc/httpd/conf.d/ssl.conf)
ssl_access_log部分の変更
#TransferLog logs/ssl_access_logCustomLog "logs/ssl_access_log.%Y%m%d" combined
ssl_request_log部分の変更
#CustomLog logs/ssl_request_log \# "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"CustomLog "logs/ssl_request_log.%Y%m%d" \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
◆Apache設定再読み込み
# service httpd reload
これでOK。日付別のログが作成されていると思う。
問題点としては/var/log/httpd/の権限がデフォルトでroot:rootの700となっているが、これだと新規ファイルが書き込めずエラーとなってしまうらしい。ひとまずapacheが動作しているユーザ(デフォルトapahce)に変更した。
# chown apache:apache /var/log/httpd
もっと良い方法があれば、誰か教えてください。
- Newer: WordPressの画像縮小にImageMagickを使う方法
- Older: Rubyを使ってTwitterに投稿する
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://mosa.nubobo.net/archives/13/trackback
- Listed below are links to weblogs that reference
- Apacheのアクセスログを日付別に分割する:mod_log_rotate from もさもさくん