読者です 読者をやめる 読者になる 読者になる

tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

td-agent(fluentd)で日付指定のログをtailする②-tail_exプラグインでやる

はじめに

他のエントリのための補足エントリとしても使いたかったので書きました

また、シンボリックリンクとちょっとした仕組みでもできます。それについてはこちら   →td-agent(fluentd)で日付指定のログをtailする①-シンボリックリンクでやる

補足

そんなにテクニカルでも有用でもないカモですがこちらにメモまとめをメモっておきました →td-agent(fluentd)を本番サ―ビスで小さく使ってみたメモ-まとめ

ながれ

作業は短いですがこんな感じです

  1. tail_exプラグインをインストール
  2. td-agent.confのsourceディレクティブにtail_exを指定する
  3. 試してみる

ってことで作業

1. tail_exプラグインをインストール

プラグインをgemインストールします

# sudo /usr/lib64/fluent/ruby/bin/gem install fluent-plugin-tail-ex
2.td-agent.confのsourceディレクティブにtail_exを指定する

sourceディレクティブはこんな感じになります
※aclog.login.2014-05-15みたいなファイルを指定したい

<source>
  type tail_ex
  format json
  path /hoge/fuga/piyo/aclog/aclog.*.%Y-%m-%d
  pos_file /hoge/fuga/piyo/pos/aclog.pos
  tag project.aclog.*
</source>

※後述しますが、emitされるタグはこんな感じになります

project.aclog.hoge.fuga.piyo.aclog.aclog.point.2014-05-15

3.試してみる
  • tailするファイル用意
# pwd
/hoge/fuga/piyo/aclog

# ls -l
合計 8
-rw-r--r-- 1 root wheel 552  5月 15 18:36 2014 aclog.login.2014-05-15
-rw-r--r-- 1 root wheel 887  5月 15 18:36 2014 aclog.point.2014-05-15
  • 確認用にoutputしてみるためのフォルダ用意
# pwd
/hoge/fuga/piyo

# mkdir out
  • tail_exの後にoutputするconfigを追記
# sudo vi /etc/td-agent/td-agent.conf
----vi追記----
<match project.aclog.**>
  type forest
  subtype file
  remove_prefix project.aclog
  <template>
    time_slice_format %Y_%m_%d
    path /home/hoge/fuga/piyo/out/__TAG__
    compress gzip
  </template>
</match>
--------------

*お試し実行 うまくtail_ex→outしてみるとこんな感じで出力されます

# pwd
/hoge/fuga/piyo/out

# ls
hoge.fuga.piyo.aclog.aclog.point.2014-05-15.2014_05_15.b4f96d2c9ef14ac19

# cat hoge.fuga.piyo.aclog.aclog.point.2014-05-15.2014_05_15.b4f96d2c9ef14ac19
2014-05-15T18:46:42+09:00       hoge.fuga.piyo.aclog.aclog.point.2014-05-15    {"info":{"uid":"001","func":2,"func_detail":1,"rid":"97c7c2bf9eb8b7a759f6b9e76763bb48","pid":16552,"hn":"sv1.co.jp","ts":"2014-05-15 18:46:42"},"val":{"total":10,"add":[10,0]}}

ファイル名の後ろに日付が2つくっついちゃってますが、
前半はtail_exで指定した日付、後者はtime_slice_formatの日付です。
time_slice_formatは省略してもデフォルトの%Y%m%dの形で付加されます。

ってことで、こちらもこれだけですが切り出せてよかったーver.2