Fluentd
td-agent

RUBYOPT="" でtd-agent3を動かすと死ぬ

タイトルが全てです

可能ならunsetしましょう

ElasticBeanstalkのruby環境を使ってる場合は注意


一応経緯など

awsのElasticBeanstalkのruby環境にtd-agent3をインストールして

$ curl -L https://toolbelt.treasuredata.com/sh/install-amazon1-td-agent3.sh | sh

confもデフォルトのまま起動するも

$ sudo /etc/init.d/td-agent start

どうも動いてないみたい

ログを確認すると


/var/log/td-agent/td-agent.log(抜粋)

2019-05-10 12:45:05 +0000 [info]: Worker 0 finished unexpectedly with status 0

2019-05-10 12:45:05 +0000 [info]: Worker 0 finished unexpectedly with status 0
2019-05-10 12:45:06 +0000 [info]: Worker 0 finished unexpectedly with status 0
2019-05-10 12:45:06 +0000 [info]: Worker 0 finished unexpectedly with status 0
2019-05-10 12:45:07 +0000 [info]: Worker 0 finished unexpectedly with status 0
2019-05-10 12:45:07 +0000 [info]: Worker 0 finished unexpectedly with status 0
2019-05-10 12:45:08 +0000 [info]: Worker 0 finished unexpectedly with status 0
2019-05-10 12:45:08 +0000 [info]: Worker 0 finished unexpectedly with status 0
2019-05-10 12:45:09 +0000 [info]: Worker 0 finished unexpectedly with status 0
2019-05-10 12:45:10 +0000 [info]: Worker 0 finished unexpectedly with status 0
2019-05-10 12:45:10 +0000 [info]: Worker 0 finished unexpectedly with status 0
2019-05-10 12:45:11 +0000 [info]: Worker 0 finished unexpectedly with status 0

-vv 付けても何も出ない。全然わからん。

foregroundで動かすとエラーも出ず、しかし何も始まらない。全然わからん。

で、調べたところ、環境変数 RUBYOPT が空文字になっていると、worker processをspawnする際、argsに余計な "" が入ってバグるっぽい。

先述のElasticBeanstalkのruby環境は初期化スクリプトで export RUBYOPT= などとしていた

ruby素人なのでRUBYOPTのことはよくわからないです。

export RUBYOPT= とやるのが大事なことならごめんなさい。

とにかくぼくはElasticBeanstalk使うのをやめたい