Y-Ken Studio

新しもの好きのデータエンジニアが四方山話をお届けします。

不正バイト文字列対策済の fluent-plugin-rewrite-tag-filter v1.4.1 をリリースしました #fluentd

ログ収集ツールFluentdに、Apachemod_rewriteのようにtagを自在に書き換える機能を追加する、fluent-plugin-rewrite-tag-filterのv1.4.1をリリースしました。

前回記事はv1.3.1の紹介でしたので、それ以降にリリースしたv1.4.0とv1.4.1のリリースノートをまとめたいと思います。

お知らせ

今回は4点、嬉しいお知らせがあります。

Fluentd公式プラグイン

fluentdプロジェクトにリポジトリを移動し、引き続きメンテナンスして行きます。

Fluentd公式ドキュメントへの掲載

プラグインの利用ガイドを、公式ドキュメントへ寄稿しました。
アクセスログを集計して通知するというユースケースも紹介しております。

td-agentへのバンドル開始

2013年12月5日リリースのtd-agent v1.1.18より、rewrite-tag-filterが内包されました。
これには、fluent-plugin-rewrite-tag-filter v1.3.1がバンドルされております。

30,000ダウンロード達成 @ rubygems.org

お陰様で3万ダウンロードを達成しました。今後ともよろしくお願いします。

アップデート方法

次の手順でアップデート後、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

リリースノート

それでは続きましてリリースノートを、修正履歴より紹介します。

新機能「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についてはこちらのブログが詳しいです。

あとがき

invalid byte sequence in UTF-8エラーはFluentdに渡された構造化ログの中身を見て何らかの処理を行うプラグイン全てに影響しうるため、修正が必要なプラグインが他にもあると見ています。
これはログ欠損が起きる事象に繋がるため、プラグイン開発者の皆様、是非とも状況の確認と対応をお願いします。