ホーム > タグ > Linux

Linux

Apacheのアクセスログを日付別に分割する:mod_log_rotate

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

もっと良い方法があれば、誰か教えてください。

<参考>
mod_log_rotate がよさげかも – (ひ)メモ
mod_log_rotate のススメ

CentOS 5.3がようやくリリース

されたみたい。yum updateが凄いことになっているなぁ。
http://www.centos.org/
http://wiki.centos.org/Manuals/ReleaseNotes/CentOS5.3/Japanese

ソーシャルブックマークツール scuttleを設置するメモ

試しにscuttle0.7.4をCentOS4.xにインストールしてみる。
http://sourceforge.net/projects/scuttle/

予めmysqlのscuttle用のデータベース及びユーザを作成しておくことにする。

$ mysql -u root -pmysql> create database scuttle_db default charset utf8mysql> grant all on scuttle_db.* to scuttle_user@localhost identified by 'scuttle_pwd';mysql> flush privileges;

ダウンロードして解凍して/var/www/html/に移動してリネーム。

$ wget "http://downloads.sourceforge.net/scuttle/scuttle.0.7.4.zip?modtime=1215888540&big_mirror=0"$ unzip scuttle.0.7.4.zip$ mv scuttle\ 0.7.4 /var/www/html/scuttle

config.inc.php.exampleをコピーしてconfig.inc.phpを作る。そんで編集。

$ cd /var/www/html/scuttle$ cp config.inc.php.example config.inc.php$ vi config.inc.php

MySQLのDBの設定とロケールを日本語にする。

$dbuser = 'scuttle_user';$dbpass = 'scuttle_pwd';$dbname = 'scuttle_db';...$locale = 'ja_JP';

table.sqlを実行してmysql上にテーブルを作成する。

$ mysql -u root -p scuttle < tables.sql

ここまで正常に出来ていればブラウザで/scuttle/にアクセスすればOK。
トップページの右上の辺りにある「登録する」からユーザ登録する。
管理者ユーザも一般ユーザも区別ないっぽいね。でもシンプルな感じが好印象です。

VMware上のCentOS5で時計がずれる件

VMware上で動かすCentOS5.2で時計がずれまくります。
以前CentOS4.xで同じ現象を確認したことがあるけど5.xになってもまだ治っていなかったんか。

まずは下記などを参考に
http://webos-goodies.jp/archives/50179807.html
/boot/grub/grub.confを編集してカーネルオプションに「clock=pit nosmp noapic nolapic」を付けてみる。

kernel /vmlinuz-2.6.18-92.1.6.el5 ro root=LABEL=/ rhgb quiet clock=pit nosmp noapic nolapic

リブート後、以前よりずれが収まった気がするがまだ微妙にずれているのでcronジョブでntpdateを動かすことにした。とりあえず1時間おきくらいで良いだろう。
/etc/cron.hourly/ntpdate.cronを作成。

#!/bin/sh/usr/sbin/ntpdate ntp.jst.mfeed.ad.jp > /dev/null

実行権限を与えて完了

$ chmod +x ntpdate.cron

Home > Tags > Linux

Bookmarks
Flickr
www.flickr.com
Twitter
Search
Feeds
Meta

Return to page top