LoginSignup
5
4

More than 5 years have passed since last update.

td-agentのgemのバージョンはtd-agentに管理させつつ、--gemfileオプションを使う

Last updated at Posted at 2016-03-15

以前以下のような記事を書きました。
それを少し改良した記事です。

td-agent2のfluent-pluginをbundlerで管理 - Qiita

上記のやり方の場合、td-agentをアップグレードした後自分でtd-agentに同梱されたpluginのGemfileを自分で書き換える必要があります。

またFluentdのバージョンが上がっても、td-agentに反映されるまでラグがあります。

td_agent_gemというmethodを定義してしまって、動的にgemのversionを取得しています。
TD_AGENT_GEM_HOMEは環境に合わせて定義する必要があります。

/etc/td-agent/Gemfile
source 'https://rubygems.org'

TD_AGENT_GEM_HOME = "/opt/td-agent/embedded/lib/ruby/gems"
def td_agent_gem(gem_name)
  gems = Dir.glob("#{TD_AGENT_GEM_HOME}/*/gems/#{gem_name}-[0-9]*").reverse
  return if gems.empty?
  gem gem_name, gems.first.split('-').last
end

gem "fluent-plugin-exec_cron", "0.0.3"
gem "fluent-plugin-forest", "0.3.0"
gem "fluent-plugin-record-reformer", "0.8.0"
gem "fluent-plugin-rewrite", "0.0.12"
gem "hipchat-api"

# td-agent preinstall
td_agent_gem "fluent-plugin-rewrite-tag-filter"
td_agent_gem "fluent-plugin-s3"
td_agent_gem "fluent-plugin-scribe"
td_agent_gem "fluentd"

以下のケースに有効です。

  • td-agentのアップグレードには勝手に追随して欲しい。
  • プラグイン管理は差分だけにしたいけど、いざというときは最新のFluentdをためしたい
  • td-agentでも必要なプラグインは選別したい
5
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4