めも帖

「めも帖」代わりにダラダラと書いていったり、めもしたりしているだけです。

Rails 4.0 + fluentd を利用してみる(1)

Mac OS X に fluentd をインストールしてみたので、Rails アプリからログを残すようにしてみようと思います。 テスト用のアプリを作ってみるところから

Rails のアプリを作る

環境

アプリを作る

fluentd のテスト用のアプリを作ります。 一応、scaffold で、少しだけ用意します。

$ rails new fluentd_app_1
$ cd fluentd_app_1
$ bundle install
$ rails g scaffold book title:string price:integer
$ rake db:migrate
$ rails s

fluentd のインストール

fluentd のインストールは、終了済み

Gemfile に追記

追記内容

gem 'td-logger'

gem をインストール

$ bundle install

設定をする

config/treasure_data.yml

development:
  agent: localhost:24224
  tag: fluentd_app_1
  debug_mode: true

production:
  agent: localhost:24224
  tag: fluentd_app_1

test:

fluentd の設定

ディレクトリを用意して、ファイルを用意します

fluentd/fluentd.conf

<source>
  type forward
  port 24224
</source>
 
<match fluentd_app_1.**>
   type stdout
</match>

fluentd の起動

$ fluentd -c fluentd/fluentd.conf
2014-02-14 00:40:42 +0900 [info]: starting fluentd-0.10.43
2014-02-14 00:40:42 +0900 [info]: reading config file path="fluentd/fluentd.conf"
2014-02-14 00:40:42 +0900 [info]: gem 'fluentd' version '0.10.43'
2014-02-14 00:40:42 +0900 [info]: using configuration file: <ROOT>
  <source>
    type forward
    port 24224
  </source>
  <match fluentd_app_1.**>
    type stdout
  </match>
</ROOT>
2014-02-14 00:40:42 +0900 [info]: adding source type="forward"
2014-02-14 00:40:42 +0900 [info]: adding match pattern="fluentd_app_1.**" type="stdout"
2014-02-14 00:40:42 +0900 [info]: listening fluent socket on 0.0.0.0:24224

アプリからfluentd に送信(っていうのかな)

app/controllers/books_controller.rb

  def index
    @books = Book.all
    TD.event.post('books', {:action=>:index})
  end

下記にアクセスすると起動していたfluentd の画面にログが流れます

流れたログ

2014-02-14 00:50:52 +0900 fluentd_app_1.books: {"action":"index"}

参考

書籍

データサイエンティスト養成読本 [ビッグデータ時代のビジネスを支えるデータ分析力が身につく! ] (Software Design plus)

データサイエンティスト養成読本 [ビッグデータ時代のビジネスを支えるデータ分析力が身につく! ] (Software Design plus)