Fluentdのプラグインが動作しなかったのでメモ
nginxのログをFluentdで収集したいけど、timestampフィールドはログを収集するサーバ側の時刻timeを適用するっぽいので、fluent-plugin-record-reformerプラグインを入れてイベントレコードを置換えたいと思った。
サーバ側が何らかの問題により停止していたり、ログを受け取れなかった場合に時刻がずれる(復旧した後のサーバの時刻になる)のを心配していたため。
上手くいかなかった手順
fluent-plugin-record-reformerプラグインのサイトのREADMEの通りコマンドを実施。
gem install fluent-plugin-record-reformer
同じくREADMEをまねして /etc/td-agent/td-agent.conf に定義。
(source タグの定義部分は省略しています)
<match foo.**>
type record_reformer
remove_keys remove_me
renew_record false
enable_ruby false
tag reformed.${tag_prefix[-2]}
<record>
hostname ${hostname}
input_tag ${tag}
last_tag ${tag_parts[-1]}
message ${record['message']}, yay!
</record>
</match>
テストしてみたけど動作しない。
エラーログも無い。
上手くいった手順
いろいろ調べてみると fluentd が使用している Ruby と OS にインストールされている Rubyは違うらしい。
私の環境では以下のコマンドで成功しました。
/opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-record-reformer
おしまい