fluent-plugin-rewrite-tag-filter v1.2.1 をリリースしました。設定サンプルと共にプレースホルダ機能強化内容を紹介します。 #fluentd
ログ収集ツールFluentdに、Apacheのmod_rewriteのようにtagを自在に書き換える機能を追加する、fluent-plugin-rewrite-tag-filterのv1.2.1を先日リリースしました。
- https://github.com/y-ken/fluent-plugin-rewrite-tag-filter
- http://rubygems.org/gems/fluent-plugin-rewrite-tag-filter
今回は、プレースホルダの機能改善を行いました。
こちらは m.yuzuki (@ephemeralsnow)さんによる提案です。ありがとうございます。
v1.2.1の新機能紹介
hostname_command
というオプションを追加しました。
これは、書き換え後のタグに使えるプレースホルダである${hostname}
や
__HOSTNAME__
の中身を任意のコマンドで置き換えることの出来るオプションです。
このオプションの利用有無での動作の違いを、設定例と共に紹介します。
ホスト名がapp145.foo.com
のマシンで実行した場合を想定して見ていきましょう。
設定例1
access.example.app145.foo.com
というタグに書き換わります。
続く後処理によっては末尾の.foo.com
が余計になることもあります。
<match example1.access> type rewrite_tag_filter rewriterule1 domain (example).com access.$1.${hostname} </match>
設定例2
access.example.app145
というタグに書き換わります。
タグの区切りにも用いるドット(.)とホスト名が混じる事象が解決しますね。
<match example2.access> type rewrite_tag_filter rewriterule1 domain (example).com access.$1.${hostname} hostname_command hostname -s </match>
まとめ
ホスト名のプレースホルダには完全修飾ドメイン名(FQDN)をデフォルトで利用しています。
もし短縮表記のホスト名をプレースホルダに利用したい場合には、hostname_command hostname -s
と設定しましょう。
これはFluentd起動時に実行して変数に格納するため、多少重たい任意のコマンドを指定しても稼働中のパフォーマンスに影響は出ませんのでご安心ください。
お知らせ
近日リリース予定の v1.3.0では、除外指定のサポートを強化します。 正規表現でマッチ「しない」もののタグを書き換えたいパターンにも対応出来ます。 楽しみですね。