例えば、こんなコンフィグがあって、
<source>
@type forward
</source>
<match hoge.**>
# ...
</match>
<match **>
@type file
path /tmp/td-agent.log
</match>
タグを typo するとかして /tmp/td-agent.log.*
に
2016-12-25T12:34:56+09:00 hgoe {"merry":"xmas"}
こんなログが吐き出された時に、これを再送するための雑なコードがこちら。
retry.rb
require 'time'
require 'json'
require 'fluent-logger'
logger = Fluent::Logger::FluentLogger.new
STDIN.each_line do |l|
time, tag, msg = l.split("\t")
time = Time.parse(time)
map = JSON.load(msg)
logger.post_with_time(tag.sub(/hgoe/, 'hoge'), map, time)
end
(※out_file
の format
とか delimiter
が違ってたらそれに合わせて変更する必要あり)
cat /tmp/td-agent.log* | grep hgoe | ruby retry.rb
みたいに実行する。