mod_log_sql

最終更新日時:2007-08-28 00:36:10
Apache

mod_log_sqlとは


mod_log_sql は Apache のアクセスログを MySQL に出力するモジュールです。

インストール


apache_1.3.29 + mod_log_sql-1.96 の例です。
Apache は DSO 対応でビルドされ、既に起動可能な状態とし、MySQLも使用可能な状態とします。
また、MySQL のライブラリを前もってインストールしておく必要があります。

まず、mod_log_sql を mod_log_sql 公式サイトから入手し、展開します。

 % gzip -dc mod_log_sql-1.96.tar.gz |tar xvf -
 % cd mod_log_sql-1.96


あとはお決まりの手順。
ただし、apxs のパス情報と MySQL のパス情報が必要なのでこれを configure で指定します。

 % ./configure --with-apxs=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql
 % make
 % su
 # make install


MySQLの設定


MySQL で以下の操作を行います。

DBの作成


ログ保存用のデータベースを作成します。
ここではapachelogsという名称で作成したものとして以降進めます。

ログ書き込み用ユーザの作成


ログ保存用データベースに書き込むDBユーザーを作成します。
ここではloguserとして作成したものとして進めます。
この時、apachelogs に対する create, insert 権限の付与や、接続先ホスト名、パスワード等の設定も適宜行います。

httpd.confの設定


httpd.conf に以下の設定を追加します。

 LoadModule log_sql_module libexec/mod_log_sql.so
 LogSQLLoginInfo mysqlserver loguser loguserpass
 LogSQLTCPPort 3306
 LogSQLDatabase apachelogs
 LogSQLCreateTables on
 LogSQLMachineID m1                              # ロードバランサーとかの対応:必要であれば
 LogSQLTransferLogFormat AabcHhIilMmPpRrSsTtUuv  # ログフォーマット:必要であれば
 LogSQLTransferLogTable access_log               # 必要であれば
 LogSQLPreserveFile /misc/logs/sql-preserve      # SQL ログ:必要であれば


その他


実際にログの保存がうまくいかない場合は my.cnf に log=/misc/log/mysql.log とか設定して MySQL のエラー情報を取得してみると解決しやすいです。

お問い合わせは 掲示板 にて。