SSブログ

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



次回もお楽しみに!!

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。