So-net無料ブログ作成
検索選択

tiarraをロガーとしてチャンネルログを取得しよう [irc]


前回は、ircサーバーを構築しました。
チャットのチャンネルログをtiarraを使って取得したいと思います。
tiarraはIRC Proxyです。
通常はircクライアントのPROXYとして動作させますが、今回はログを取るのが目的なので、PROXYの設定はしません。
チャンネルのログが残せると、とっても便利です。

まず、ダウンロードします。
[root@ngircd ~]# wget http://www.clovery.jp/tiarra/archive/2010/02/tiarra-20100212.tar.gz
--2012-11-24 11:43:18--  http://www.clovery.jp/tiarra/archive/2010/02/tiarra-20100212.tar.gz
www.clovery.jp をDNSに問いあわせています... 210.188.216.105
www.clovery.jp|210.188.216.105|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 524958 (513K) [application/x-gzip]
`tiarra-20100212.tar.gz' に保存中

100%[================================================================================================>] 524,958     1.08M/s 時間 0.5s

2012-11-24 11:43:18 (1.08 MB/s) - `tiarra-20100212.tar.gz' へ保存完了 [524958/524958]




展開します。
[root@ngircd ~]# tar zxvf ./tiarra-20100212.tar.gz
tiarra-20100212/
tiarra-20100212/LICENSE
tiarra-20100212/AUTHORS
tiarra-20100212/ChangeLog
tiarra-20100212/ChangeLog.svn
 :
 :
tiarra-20100212/doc-src/module-toc.html
tiarra-20100212/doc-src/sample.conf.in



/usr/localにtiarraをインストールします。
[root@ngircd ~]# mv tiarra-20100212 /usr/local/tiarra
[root@ngircd ~]# cd /usr/local
[root@ngircd local]# chown -R root:root tiarra



設定ファイルを編集します。
[root@ngircd local]# cd tiarra
[root@ngircd tiarra]# cp -p sample.conf tiarra.conf
[root@ngircd tiarra]# vi tiarra.conf



以下のように編集しました。
64行目
前   name: Tiarra the "Aeon"
後   name: tiarra
---
72行目
前   client-allowed: *
後   #client-allowed: *
PROXYは使わないのでコメントアウト
---
76行目
前   tiarra-port: 6667
後   #tiarra-port: 6667
PROXYは使わないのでコメントアウト
---
92行目
前   tiarra-password: xl7cflIcH9AwE
後   #tiarra-password: xl7cflIcH9AwE
PROXYは使わないのでコメントアウト
---
186行目
前   join-interval: 1
後   join-interval: 5
1秒→5秒
---
227,228行目
前   name: ircnet
前   name: 2ch
後   name: ngircd
後   #name: ircnet
後   #name: 2ch
不要なnetworkを削除。ngircdというnetworkを追加。
---
268,271行目
前     channel: #てすとちゃんねる@ircnet
前     channel: #てすと@localserver
前     channel: *@localserver
前     channel: *@localserver:*.jp
後     #channel: #てすとちゃんねる@ircnet
後     #channel: #てすと@localserver
後     #channel: *@localserver
後     #channel: *@localserver:*.jp
不要なchannelをコメントアウト
---
281行目
前 ircnet {
後 ngircd {
ircnetはコメントアウトしたので、ngircdに変更
---
284,286行目
前   server: irc.ircnet.ne.jp 6667
前   server: irc.media.kyoto-u.ac.jp 6662 6663
前   server: irc.huie.hokudai.ac.jp 6667
後   #server: irc.ircnet.ne.jp 6667
後   #server: irc.media.kyoto-u.ac.jp 6662 6663
後   #server: irc.huie.hokudai.ac.jp 6667
不要なのでコメントアウト
---
290,291行目
前   #host: irc.media.kyoto-u.ac.jp
前   #port: 6663
後   host: 192.168.0.32
後   port: 6667
接続するircサーバとポートを設定
---
295行目
前   #user: hoge
後   user: tiarra
ユーザはtiarraにしました
---
298行目
前   #name: hoge
後   name: tiarra
ユーザはtiarraにしました
---
301行目
前   #password: hoge
後   password: Secret
ircサーバはパスワードが必要になっているのでパスワードを設定
---
316,323行目
前 2ch {
前   server: irc.2ch.net 6667
前   server: irc2.2ch.net 6667
前   server: irc.juggler.jp 6667
前
前   in-encoding: jis
前   out-encoding: jis
前 }
後 #2ch {
後 #  server: irc.2ch.net 6667
後 #  server: irc2.2ch.net 6667
後 #  server: irc.juggler.jp 6667
後 #
後 #  in-encoding: jis
後 #  out-encoding: jis
後 #}
不要なのでコメントアウト
---
532行目
前 - Channel::Join::Connect {
後 + Channel::Join::Connect {
この設定を使うので - から + へ変更
---
544行目
後   channel: #Test@ngircd TestTest
Joinするチャンネルとパスワード
---
659行目
前 - Log::Channel {
後 + Log::Channel {
この設定を使うので - から + へ変更
---
681行目
前   filename: %Y.%m.%d.txt
後   filename: %Y%m%d.log
ログファイル名はYYYYMMDD.logにしました
---
734,735行目
前   channel: priv priv
前   channel: #(lc_channel) *
後   #channel: priv priv
後   #channel: #(lc_channel) *
不要なチャンネルを削除
---
736行目
後   channel: Test #Test@ngircd
ログを取るチャンネルを設定
---
873行目
前 - User::Nick::Detached {
後 + User::Nick::Detached {
この設定を使うので - から + へ変更
---
879行目
前   detached: PHO_d
後   detached: tiarra
ニックネームもtiarra



ログディレクトリを作成します。
[root@ngircd tiarra]# mkdir log



実行できるかテストしましょう。起動したら、ircクライアントからJoinして何か書き込みましょう。
[root@ngircd tiarra]# ./tiarra
- T i a r r a - :::version #0.1+svn-36726:::
Copyright (c) 2008 Tiarra Development Team. All rights reserved.
This is free software; you can redistribute it and/or modify it
  under the same terms as Perl itself.

Reading configuration from tiarra.conf... ok
[pid:4245 2012/11/24 14:15:19] network/ngircd: Connecting to 192.168.0.32/6667 (IPv4)
[pid:4245 2012/11/24 14:15:19] network/ngircd: Opened connection to 192.168.0.32/6667 (IPv4).
[pid:4245 2012/11/24 14:15:19] network/ngircd: Logged-in successfuly into 192.168.0.32/6667 (IPv4).

Ctrl+C

[pid:4245 2012/11/24 14:16:08] SIGINT received.
[pid:4245 2012/11/24 14:16:08] Shutting down... [Tiarra 0.1+svn-36726: SIGINT received; exit]
[pid:4245 2012/11/24 14:16:08] network/ngircd: Disconnected from 192.168.0.32/6667 (IPv4).
Tiarra successfully finished.




ログを確認してください。ログは/usr/local/tiarra/logにチャンネル名のディレクトリができ、その下にYYYYMMDD.logファイルがあるはずです。
OKであれば、自動起動の設定をします。

自動起動スクリプトを作成します。(自己責任でお願いします。)
[root@ngircd ~]# cd /etc/init.d
[root@ngircd init.d]# vi tiarrad
[root@ngircd init.d]# cat tiarrad
#!/bin/bash
#
# Init file for tiarra
#
# chkconfig: 2345 99 01
# description: tiarra
# processname: tiarra
# config: /etc/tiarra.conf
# pidfile: /var/run/tiarra.pid

# Source function library.
. /etc/rc.d/init.d/functions

prog=tiarra
config="/etc/tiarra.conf"
pidfile="/var/run/tiarra.pid"
RETVAL=0

start() {
    echo -n $"Starting $prog: "
    if [ ! -e ${pidfile} ]; then
        /usr/local/tiarra/tiarra --config=${config} >/dev/null 2>&1 & echo $! > ${pidfile}
        if [ -s ${pidfile} ]; then
            echo_success
            RETVAL=0
            echo
        else
            echo_failure
            RETVAL=1
            echo
        fi
    else
        echo_failure
        RETVAL=1
        echo
    fi
    return $RETVAL
}

stop() {
    echo -n $"Stopping $prog: "
    killproc tiarra
    RETVAL=$?
    echo
    [ $RETVAL = 0 ] && rm -f ${pidfile}
    return $RETVAL
}

restart() {
  stop
  start
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    stop
    start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
    ;;
esac

exit $RETVAL

[root@ngircd init.d]# chmod 755 tiarrad
[root@ngircd init.d]# mv /usr/local/tiarra/tiarra.conf /etc/tiarra.conf
[root@ngircd init.d]# chkconfig --add tiarrad
[root@ngircd init.d]# chkconfig tiarrad on
[root@ngircd init.d]# chkconfig --list tiarrad
tiarrad         0:off   1:off   2:on    3:on    4:on    5:on    6:off




profileに追加します。
[root@ngircd ~]# vi /etc/profile
以下を追加します。
# Add tiarra Start
export PATH=$PATH:/usr/local/tiarra
# Add tiarra End



次回もお楽しみに!!