天然パーマです。

daemontoolsで起動しているstarmanのログをfluentdで

fluentdが面白そうなんで、散らばっているAppサーバのログを集計してみたい。 アプリケーションは

  • 基本、Perlで書かれてる
  • Starmanで動かす
  • .psgiで「enable "Plack::Middleware::AccessLog", format => "combined";」してる
  • daemontoolsでデーモン化

という条件で、fluentdに付属のサンプル設定ファイルをほんの少しいじる。 tailして標準出力に出すだけだけど、いい感じです。

<source>
  type tail
  path /service/bokete_web/log/main/current
  format /^@[0-9a-z]+ (?<host>[^ ]*) [^ ]* (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^ ]*) +\S*)?" (?<code>[^ ]*) (?<size>[^ ]*)(?: "(?<referer>[^\"]*)" "(?<agent>[^\"]*)")?$/
  time_format %d/%b/%Y:%H:%M:%S %z                                                                                      
  tag starman.access
</source>
<match starman.access>
   type stdout
</match>

これをmongodbに入れてごにょる!