mod_log_sql
最終更新日時:2007-08-28 00:36:10
Apache
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 のエラー情報を取得してみると解決しやすいです。