Apache - MySQLロギング
- はじめに
- MySQLを使ったロギングモジュールの構築について解説します。
既にMySQLがデフォルトディレクトリにインストールされていて、
ApacheがDSOスタイルでデフォルトディレクトリにインストールされている事を前提としています。
- 用意するもの
- mod_log_sql-1.16.tar.gz
http://www.outoforder.cc/projects/apache/mod_log_sql/
- コンパイル&インストール
% tar zxvf mod_log_sql-1.16.tar.gz
% cd mod_log_mysql
このモジュールはmod_sslが組み込まれている事が前提になっているので、
組み込んでいない場合はmod_log_mysq.cを下記のように修正します。
--- mod_log_mysql.c.orig Wed Oct 9 11:13:01 2002
+++ mod_log_mysql.c Wed Oct 9 11:13:18 2002
@@ -12,7 +12,7 @@
#define DEBUGLEVEL APLOG_DEBUG|APLOG_NOERRNO
/* The enduser may wish to modify these */
-#define WANT_SSL_LOGGING
+#undef WANT_SSL_LOGGING
#undef DEBUG
% su
# /usr/local/apache/bin/apxs -c -i -a -I/usr/local/include -L/usr/local/lib/mysql -lmysqlclient -lz -lm mod_log_mysql.c
- ロギング用データベース&テーブルの作成
# mysqladmin create apache
# mysql apache < access_log.sql
# mysql
mysql> grant all on apache.* to apachelog identified by 'apachepass';
mysql> grant all on apache.* to apachelog@localhost identified by 'apachepass';
mysql> flush privileges;
mysql> exit
- コンフィグレーション
# vi /usr/local/apache/conf/httpd.conf
<IfModule mod_log_mysql.c>
MySQLLoginInfo localhost apachelog apachepass
MySQLDatabase apache
MySQLTransferLogTable access_log
MySQLTransferLogFormat huSUsbTvRA
MySQLCreateTables On
MySQLMassVirtualHosting On
MySQLSocketFile /tmp/mysql.sock
</IfModule>
- 起動
# /usr/local/apache/bin/apachectl start