« logrotateの使い方 | メイン | 外部ホストからMySQLへの接続を許可する。 »

mod_log_sqlをインストールしてみた

apacheログを正規表現で切り分けてDBに格納して解析結果を表示・・・とか考えるだけでうんざりしてきたので、割り切ってmod_log_sqlをいれてみた。環境はFreeBSD6.0 + Apache2.2.0。

# cd /usr/ports/www/mod_log_sql2
# make install
# vim /usr/local/etc/apache22/httpd.conf
LoadModule log_sql_module       libexec/apache22/mod_log_sql.so
LoadModule log_sql_mysql_module libexec/apache22/mod_log_sql_mysql.so

# apachectl configtest
# apachectl restart

インストールして

# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 80635 to server version: 5.0.51a-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> CREATE DATABASE apachelogs;
Query OK, 1 row affected (0.04 sec)

mysql> GRANT INSERT,CREATE ON apachelogs.* TO loguser@localhost IDENTIFIED BY 'xxxxxx';
Query OK, 0 rows affected (0.07 sec)

mysql> quit

データベースとユーザを作って

# vim /usr/local/etc/apache22/Includes/httpd.conf
LogSQLLoginInfo mysql://loguser:xxxxxx@localhost/apachelogs
LogSQLCreateTables on
LogSQLDBParam socketfile /tmp/mysql.sock
LogSQLTransferLogTable access_log

confに書く。VirtualHostディレクティブ単位で記述可能。

これだけでログ1行が1レコードとしてテーブルに格納されるようになります。滝のように流れるmysql.log。便利そうだけれども、これ、実用的なんだろうか・・・・。

参照
http://www.outoforder.cc/projects/apache/mod_log_sql/docs-2.0/
http://www.freewheelburning.com/linux/mod_log_sql.html
http://naoya.dyndns.org/~naoya/mt/archives/001042.html

About

2009年02月12日 03:32に投稿されたエントリーのページです。

ひとつ前の投稿は「logrotateの使い方」です。

次の投稿は「外部ホストからMySQLへの接続を許可する。」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。