

現状は、Ruby on Railsを使って、アプリケーションを創っております。

そのアプリケーションの機能で、ランキングを作成しようと考えています。

現状は、今後user_id、categoryなどの属性を付ける可能性が高いので拡張性の高いfluentdを入れて、logを出力する所までは出来ている状態です。現状のlogは下記のような状態となっております。

[code]

    2015-10-28T21:38:05+09:00   rails.log   {"messages":"{\"method\":\"GET\",\"path\":\"/\",\"format\":\"html\",\"controller\":\"index\",\"action\":\"index\",\"status\":200,\"duration\":305.17,\"view\":291.93,\"db\":1.54}","level":"INFO"}
    
[/code]

このあと、fluent.confの書き方がわからず、CSV形式で1行毎に3つめの`messages:`の中身を下記の様なCSVの形に分けたいのですが、分けられない状態となっています。

|path |action|  
/ index  
about show  
posts/1 show

[code]

    <source>
      type tail
      format csv
    </source>
    
[/code]

こういったアクセスログは通常dbに保存しないと思うので、  
出来ればlogを監視してアクセスランキングのような機能を作成したいと考えております。  
また、dbに保存して定期的に削除するという方法は考えておりません。

何か良い方法がありましたら、ご教授頂ければ幸いです。


CC BY-SA 3.0
2015-10-28T13:56:38.520
18178
2015-10-29T05:15:57.653
2015-10-29T05:15:57.653
3639
5969
question
ruby-on-rails linux fluentd
Railsでfluentdを使ってログをCSV形式にする方法がわかりません。