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に入れてごにょる!