ircのlogを収集してweb上で確認できるものを作ってみた

エンジニアの@soplanaです。

最近jmtyエンジニアのコミュニケーションツールとして、ircを導入しました。
社内のコミュニケーションツールとしてircを使うにあたって、”ログが残らない”点が結構ツライなと感じたので、ログを収集してwebで閲覧できるツールを、まぁかなり簡単にですけど作ってみたので、今日はその紹介を。
ちなみにrubyからircを扱うにはcinchというgemが大変便利でした。



■railsで作った

ソースはgithubで公開してるので自由に使って下さい。
https://github.com/soplana/irclog

勢いに任せて作ったので色々荒いですが、今後カスタマイズしていくと思います。
logの保存にmongoDBうようになっています。



■導入ガイド

READMEにも一応書いていますが、以下導入手順です。
まずはgithubからソースをcloneしてきて、bundle installを走らせます。

$ git clone https://github.com/soplana/irclog.git
Cloning into 'irclog'...
remote: Counting objects: 77, done.
remote: Compressing objects: 100% (62/62), done.
remote: Total 77 (delta 0), reused 77 (delta 0)
Unpacking objects: 100% (77/77), done.
$ cd irclog/
$ bundle install --path vendor/bundle
Fetching gem metadata from https://rubygems.org/.........
Fetching gem metadata from https://rubygems.org/..
Installing rake (10.0.3)
Installing i18n (0.6.1)



次にDBやircの接続先を設定します。
まずはmongoidの設定ファイルを作成。

$ bundle exec rails g mongoid:config

Mongoid config not found. Create a config file at: config/mongoid.yml
to generate one run: rails generate mongoid:config

create config/mongoid.yml


mongoid.ymlにproductionの設定を追記。

production:
sessions:
default:
database: irclog
hosts:
- xx.xx.xx.xx:27017


script/lognyan.rbにircの情報を設定。
必要な項目は、c.server、c.password、c.channelsです。
serverにpasswordが設定されてない場合はc.passwordの省略が可能です。

# -*- coding: utf-8 -*-
require 'cinch'

bot = Cinch::Bot.new do
configure do |c|
c.server = "irc.xxxx.com"
c.password = "xxxxx"
c.channels = ["#xxxxx"]
c.nick = "lognyan"
end

on :message do |m|
Log.create({
name: m.user.nick,
text: m.message,
time: Time.now.to_s
})
end

end

bot.start



■起動する

ircに常駐してログを収集するlognyanを走らせるのと、それを確認するrails appを起動する必要があります。
まずはログを収集するlognyanをnohupとかで適当に動かしましょう。


$ nohup bundle exec rails r script/lognyan.rb -e production > /dev/null 2>&1 &


で、rails serverを立ち上げるとログが確認できるはずです。



ircbotは、gitでpushがあれば通知する事や、命令をトリガーにしてプログラムを起動したりすることも容易だし、エンジニアにircが長く愛されてるのがやっと分かった気がします。
恥ずかしながら僕はircデビューしたばかりなのですが、botを作るのがかなり楽しかったので、これからどんどんくだらないbotを作っていこうと思います。

投稿者: ジモティー | 2012年12月25日 | スタッフブログ - 最新の記事: 社内で出産ラッシュが続いています!... 記事一覧ページTopへ