いまさら fluentd はじめてみる2
最終的な構想は、「fluentd + Kibana + elasticsearch + MongoDB」の落としどころだけど、LTSV っていうキーワードに引っ掛かったので調査してみた。
LTSV って?
Labeled Tab-Separated Values というテキストのフォーマットの仕様らしい。発想そのものはGoodだと思いますが既存システムに対応しようとするとオッサンエンジニア群が理解できなくて拒否するに300点(古いね)。
と冗談っぽかったですね(汗) LTSV は可読性が落ちるって感じました。ただ人間の目から見ての可読性であってプログラムから見れば書式が統一されているので余計なロジックが不要になるので良い傾向です(こういうとこでbugがでないのはいいこと)。あと特に最近動きのない [ASF](Apache Software Foundation) あたりが積極的に動くべきだと思うのだけど・・・そこはまあいいかw
Apache, nginx で LTSV
ちょいと config をいじくる必要があるぐらい。
LogFormat "domain:%V\thost:%h\tserver:%A\tident:%l\tuser:%u\ttime:%{%d/%b/%Y:%H:%M:%S %z}t\tmethod:%m\tpath:%U%q\tprotocol:%H\tstatus:%>s\tsize:%b\treferer:%{Referer}i\tagent:%{User-Agent}i\tresponse_time:%D\tcookie:%{cookie}i\tset_cookie:%{Set-Cookie}o" combined
・ApacheログをLTSV形式にする際の2つの落とし穴と対処法+Apache&FluentdのLTSV設定サンプル
・サイトのレスポンスタイムをリアルタイムでグラフ表示する方法 nginx → LTSV → Fluentd(td-agent) → GrowthForecast
fluentd の設定
format ltsv
を指定するだけ。
ハマるとこは、 /var/log/httpd/access_log ファイルを td-agent
ユーザで参照できること。ここ大事w
<source>
type tail
path /var/log/httpd/access_log
format ltsv
time_key time
time_format %d/%b/%Y:%H:%M:%S %z
tag td.apache.access
pos_file /var/log/td-agent/apache_access.pos
</source>
次は
mongoDB を使った方法を勉強してみる(その3)の予定ですw