LoginSignup
7
6

More than 5 years have passed since last update.

td-agentで使うプラグインのgemをbundlerで管理する

Last updated at Posted at 2014-12-12

環境

  • CentOS release 6.5 (Final)
  • td-agent-1.1.20をyumでインストール済み
  • serviceでtd-agentを起動したい

やりかた

下記のような事を書く。

/etc/sysconfig/td-agent
TD_AGENT_ARGS="/usr/sbin/td-agent --group td-agent --log /var/log/td-agent/td-agent.log --gemfile /etc/td-agent/Gemfile"
PATH="${PATH}:/usr/lib64/fluent/ruby/bin"
DAEMON_ARGS="--user root"
/etc/td-agent/Gemfile
source 'https://rubygems.org'

gem 'fluentd'
# 例えば下記のような感じに、必要なプラグインを書く
gem 'fluent-plugin-bigquery', github: 'groovenauts/fluent-plugin-bigquery', branch: 'auto_create_table'

解説

service td-agent startの挙動

  • 環境変数をほぼリセットした上で、/etc/init.d/td-agent startを実行する
  • /etc/init.d/td-agent startでは、TD_AGENT_ARGSの内容で、td-agentをdaemon起動する
  • TD_AGENT_ARGSを設定するのは、コマンドから与えるのは(リセットされるから)ダメで、/etc/sysconfig/td-agentに書けば、/etc/init.d/td-agentの中から読み込まれるので、そうすればよい

bundlerにパスが通ってないと、何も言わずに落ちる件

td-agentユーザーではbundle installが通らなかった件

  • 指定しなかった場合、td-agentユーザーで起動しようとする
  • 存在しない/var/lib/td-agentにアクセスしようとして許可がないエラーになる
  • 詳細未調査 調べてわかったら書くかも
7
6
0

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
7
6