TiarraのログをMySQLに記録する
なんとなく思い立ったので、IRC GatewayのTiarraのログをMySQLに記録してみました。
はじめかた・必要なもの
- Tiarra
- MySQL
- 上の2つが動く/動いているマシン
今回はTiarra/MySQLのインストールは割愛させて頂きます。自分はCentOS5.5にTiarraのSVN版とMySQL 14.12で動かしました。
TiarraへのLog::DBIのインストール
まず、Log::DBIの作者さんのページからスクリプトを貰ってきて、
Tiarraのインストールディレクトリ/module/Log/ に、DBI として保存します。コピペのしすぎに注意しましょう。(←やった
このままでは動かない?ようなので、ここを参考にスクリプトを書きかえます。
その後、tiarra.confに次の記述を書き加えます。
+ Log::DBI{ source: DBI:mysql:Database_name:127.0.0.1:3306 user: user_name pass: password sync: sync }
sourceとuserとpassはてきとーに編集してください。Database_nameのところにはTiarraのログを格納するデータベースの名前を。
MySQL側の設定
てきとーにユーザーつくったりデータベースつくったりしてください。この辺は割愛。だいたいわかるよね!?
データベースを作ったらテーブルを作成します。シェルからなりphpMyAdminからなりから以下のSQLみずg…SQL文を入力してください。
create table channel ( id INTEGER NOT NULL auto_increment, name varchar(255), created_on DATETIME, updated_on DATETIME, unique key (name), primary key (id) ) ENGINE=InnoDB; create table nick ( id INTEGER NOT NULL auto_increment, name varchar(255), created_on DATETIME, updated_on DATETIME, unique key (name), primary key (id) ) ENGINE=InnoDB; create table log ( id INTEGER auto_increment, channel_id INTEGER, nick_id INTEGER, log text, is_privmsg tinyint(4), created_on datetime, updated_on datetime, foreign key (channel_id) references channel (id), foreign key (nick_id) references nick (id), primary key (id) ) ENGINE=InnoDB;
実際に使ってみる
Tiarraを再起動するなり、IRCクライアントから/loadするなりでモジュールを読み込み直します。
以上.
こんな感じ。