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のパースのコストが都度かかる思われる(コードは読んでない)のでパフォーマンステストなどを行い問題がないことを確認すべき