📝

いまさら fluentd をはじめてみたLTSV なにそれ美味しいの?、その3

2021/04/05に公開

いまさら 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

td-agent.conf
<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

GitHubで編集を提案

Discussion