うえるかむとぅあんだぁぐらうんど

世の中わからないことだらけだ.少し確かなことは検証をしたことだけ

Fluentdでログの中身からタグ付けする

Fluentdでログの中身からさらにタグ付けをしたいというユースケースがありました。

具体的には Docker log driver 経由でFluentdが受け取ったログをstderrとstdoutでタグ付けしなおしたい(re routeしたい)といったものがあり以下のように対応しました。

ここではFluentdや依存ライブラリのバージョンは以下で確認しました。

  • fluentd:v1.2.4
  • fluent-plugin-rewrite-tag-filter:2.1.0

match 部分のconf

expected  fluent tag : "docker.{{.ID}}"

<match docker.*>
    @type rewrite_tag_filter
    <rule>
        key     source
        pattern /^stdout$/
        tag stdout
    </rule>
    <rule>
        key     source
        pattern /^stderr$/
        tag stderr
    </rule>
</match>

ちなみに正規表現とjsonのパースのコストが都度かかる思われる(コードは読んでない)のでパフォーマンステストなどを行い問題がないことを確認すべき