なっく日報

技術やら生活やらのメモ

fluentd経由でlogをMongoDBに突っ込む

諸事情により、fluentd経由でlogをMongoDBに突っ込むのを試してみたので、そのメモ(人生初。最近多い)

1時間程度しか触ってないし、個人的なメモなので、ツッコミどころあればコメントしてください(おてやわらかに🙏)

なお、インストールしたのはFluentd v0.12.19。

動かすまでの手順

インストール

gem install fluentd --no-ri --no-rdoc
gem install fluent-plugin-mongo

起動

fluentd --setup ./fluent
fluentd -c ./fluent/fluent.conf -vv

設定ファイル

fluentd.conf

<source>
  @type tail
  format json
  path /tmp/hoge.log
  pos_file /tmp/fluentd.log
  tag mongomongo.test
</source>

<filter mongomongo.**>
  @type record_transformer
  <record>
    _id "${code}.aaa.${time}"
  </record>
</filter>        

<match mongomongo.**>
  @type copy
  <store>
    @type stdout
  </store>

  <store>
    @type mongo
    host localhost
    port 27017
    database test
    collection fluentd_test

    # key name of timestamp
    time_key time

    # flush
    flush_interval 10s
  </store>
</match>

何をしたか?

JSON形式の/tmp/hoge.logをtailして、codetimeというフィールドから_idという新しいフィールドを作って、Mongoに流した。

覚えたモノ

この辺。

http://docs.fluentd.org/articles/in_taildocs.fluentd.org

http://docs.fluentd.org/articles/out_copydocs.fluentd.org

今日はここまで!

明日もうちょい真面目に調べます・・・