LoginSignup
0
0

More than 5 years have passed since last update.

fluentd でマッチしなかったレコードを再送したい

Posted at

例えば、こんなコンフィグがあって、

<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_fileformat とか delimiter が違ってたらそれに合わせて変更する必要あり)

cat /tmp/td-agent.log* | grep hgoe | ruby retry.rb みたいに実行する。

0
0
0

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
0
0