LoginSignup
11

More than 5 years have passed since last update.

td-agent(fluend)からelasticsearchをつなぎこむ際のデバッグ方法

Last updated at Posted at 2015-09-08

独立したアプリケーションをつなぎこむのは、大変です。それは、エラーが出た時にどっちのアプリケーションの設定が間違っているのか?を判断するのも大変だからです。
ということで、td-agent(fluentd)とelasticsearchをつなぎこむ際に打ったコマンドを掲載しておきます。
前提として、elasticsearchにはlogstashのフォーマットで、logstash_prefixをtest、2015年9月8日に行っていると仮定します。

elasticsearchのdebug

1. elasticsearchのログをtailする

tail -f /var/log/elasticsearch/elasticsearch.log

2. elasticsearchにレコードが登録されたか確認する

まずはindex(データベースでいうテーブル)ができたか確認

curl 'localhost:9200/_cat/indices?v'

レコードが入っているか確認

curl 'localhost:9200/test-2015.09.08/_search?q=*&pretty'

td-agentのdebug

1. td-agentをデバッグモードで立ち上げておく

sudo td-agent -vv

/var/log/td-agent/td-agent.logにもログは出るんですが、もっと詳細なログを出したい時は、一旦daemonを止めて、上記コマンドで起動するのがよいみたいです。

自分がはまったところ

td-agentにおいて、matchを**nginx**としてたら、ltsv.nginxもこれに引っかかってしまい、ltsv**が実行されなかった。
解決方法としては、**nginx**ltsv**の下に持っていくか、もっと限定的なmatchにするか?ですが、自分は後者を採用しました。

td-agent.conf
<match **nginx**>
  type copy
  <store>
    type parser
    format ltsv
    time_format %d/%b/%Y:%H:%M:%S %z
    add_prefix ltsv
    key_name message
  </store>
  <store>
    type file
    path /tmp/fluent.log
  </store>
</match>

<match ltsv**>
  type elasticsearch
  host localhost
  port 9200
  index_name fluentd
  type_name fluentd
  logstash_format true
  logstash_prefix test
</match>

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11