Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

fluentdでout_fileで出力されるファイルのパスを固定する方法

More than 5 years have passed since last update.

困っていること

fluentdのout_fileを使っているときに、pathのオプションでパスを指定しても、タイムスタンプや連番を付いて出力されてしまうので、出力するパスを固定することができません。

例えば以下のように設定すると、

<match td.test>
   type file
   path /tmp/out
</match>

以下のようなログが出て、パスを固定できません。

/tmp/out.20140919_0.log
/tmp/out.20140919_1.log

パスが固定できないと運用監視ツールでログ監視ができないのでこまります

解決法

で、出力するファイルのパスを固定する方法を考えてみました。
というかプラグインを作ってみました

Fluent::Plugin::FileOutputWithFixPath

使い方は簡単。

まずfluentで使うgemでfluent-plugin-out-file-with-fix-pathというgemをインストールします

# /opt/td-agent/embedded/bin/gem install fluent-plugin-out-file-with-fix-path

/opt/td-agent/embedded/bin/gemの部分はお使いの環境に合わせてください。

設定に以下のように書きます

<match td.test>
   type file_with_fix_path
   path /tmp/out
</match>

すると、出力されるファイルのパスが以下のように固定されます

/tmp/out

弊害として、out_fileでは使えたtime_formatやらcompressやらのオプションが使えなくなります。

もしよければ使ってみてください。
「gemの名前が長い!」というツッコミは勘弁してくださいw

fetaro
データエンジニア
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away