不正バイト文字列対策済の fluent-plugin-rewrite-tag-filter v1.4.1 をリリースしました #fluentd
ログ収集ツールFluentdに、Apacheのmod_rewriteのようにtagを自在に書き換える機能を追加する、fluent-plugin-rewrite-tag-filterのv1.4.1をリリースしました。
- https://github.com/y-ken/fluent-plugin-rewrite-tag-filter
- http://rubygems.org/gems/fluent-plugin-rewrite-tag-filter
前回記事はv1.3.1の紹介でしたので、それ以降にリリースしたv1.4.0とv1.4.1のリリースノートをまとめたいと思います。
お知らせ
今回は4点、嬉しいお知らせがあります。
Fluentd公式プラグイン化
fluent-plugin-rewrite-tag-filterですが,ユーザも多くユースケースがたくさんあるので,公式リポジトリ以下でメンテされることになりました.メンテナは変わってませんのでご心配なく > https://t.co/TqaLlt5mdK #fluentd
— Mr. Fiber (@repeatedly) 2013, 11月 21
fluentdプロジェクトにリポジトリを移動し、引き続きメンテナンスして行きます。
- Recent Fluentd updates - Google グループ
https://groups.google.com/d/topic/fluentd/CiWv-Bcj0AU/discussion
Fluentd公式ドキュメントへの掲載
プラグインの利用ガイドを、公式ドキュメントへ寄稿しました。
アクセスログを集計して通知するというユースケースも紹介しております。
- rewrite_tag_filter Output Plugin | Fluentd
http://docs.fluentd.org/ja/articles/out_rewrite_tag_filter
td-agentへのバンドル開始
2013年12月5日リリースのtd-agent v1.1.18より、rewrite-tag-filterが内包されました。
これには、fluent-plugin-rewrite-tag-filter v1.3.1がバンドルされております。
- td-agent 1.1.18 - Google グループ
https://groups.google.com/d/topic/fluentd/M8IDg7y3HU8/discussion
30,000ダウンロード達成 @ rubygems.org
お陰様で3万ダウンロードを達成しました。今後ともよろしくお願いします。
- fluent-plugin-rewrite-tag-filter | RubyGems.org | your community gem host
http://rubygems.org/gems/fluent-plugin-rewrite-tag-filter
アップデート方法
次の手順でアップデート後、fluentd (td-agent)を再起動してください。
# for fluentd $ gem install fluent-plugin-rewrite-tag-filter --no-ri --no-rdoc # for td-agent $ sudo /usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-rewrite-tag-filter --no-ri --no-rdoc
リリースノート
それでは続きましてリリースノートを、修正履歴より紹介します。
v1.4.0 のリリース内容
- [新機能] tag_partsプレースホルダ対応 Thanks futoase!!
https://github.com/fluent/fluent-plugin-rewrite-tag-filter/pull/8 - [改修]存在しないプレースホルダが指定された際のWARNログ出力を追加
https://github.com/fluent/fluent-plugin-rewrite-tag-filter/commit/5685a35 - [改修]Travis-CIへの対応
https://github.com/fluent/fluent-plugin-rewrite-tag-filter/commit/df46153
- [新機能] tag_partsプレースホルダ対応 Thanks futoase!!
v1.4.1 のリリース内容
- [不具合] 不正なバイト文字列を評価した場合のinvalid byte sequence in UTF-8エラーを修正 Reported by bluewhale07
https://github.com/fluent/fluent-plugin-rewrite-tag-filter/pull/12
- [不具合] 不正なバイト文字列を評価した場合のinvalid byte sequence in UTF-8エラーを修正 Reported by bluewhale07
新機能「tag_parts」プレースホルダ
v1.4.0より機能追加となったtag_partsは、ドットで区切ったタグの一部を使ってタグを再構築するプレースホルダです。
詳細な利用方法やユースケースについては次のブログ記事が参考になります。
http://y-ken.hatenablog.com/entry/fluentd-how-to-use-tag_parts-placeholder
依存関係の追加
不正なバイト文字列を評価した場合に例外エラーが発生し、ログの欠損が起きる事象を確認しました。この例外エラーを修正する際にstring-scrub
というgemの依存が増えております。
string-scrubについてはこちらのブログが詳しいです。
- Ruby 2.1.0 に追加される不正なバイト列を除去する String#scrub の紹介 - sonots:blog
http://blog.livedoor.jp/sonots/archives/34702351.html
あとがき
invalid byte sequence in UTF-8エラーはFluentdに渡された構造化ログの中身を見て何らかの処理を行うプラグイン全てに影響しうるため、修正が必要なプラグインが他にもあると見ています。
これはログ欠損が起きる事象に繋がるため、プラグイン開発者の皆様、是非とも状況の確認と対応をお願いします。