困っていること
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