読者です 読者をやめる 読者になる 読者になる

Studio3104::BLOG.new

uninitialized constant Studio3104 (NameError)

gemで #fluentd を入れてあるサーバに、td-agentを入れるべからず



最新のtd-agentのはずなのに・・・?

自分の開発端末はUbuntu12.04です。こいつにtd-agent1.1.7を入れています。
開発端末でテストしてバッチリ動いたtd-agent.confを、同じくtd-agent1.1.7を入れたCentOSにまんま食わせて動かそうとしたのだが、オプションが足りないとか言われて起動しない・・・

[root@centos ~]# /etc/init.d/td-agent start
Starting td-agent: 2012-06-14 00:20:49 +0900: fluent/supervisor.rb:177:rescue in main_process: config error file="/etc/td-agent/td-agent.conf" error="'in_keys' parameter is required"
                                                           [FAILED]
[root@centos ~]#

debrpmで内容とか挙動とか違うのかなーと、バージョンを確認してみると、rpmのtd-agentに含まれるfluentdのバージョンが古いんじゃないか疑惑が浮上。
※ 後述しますが、そんなことはありませんでした。最新のfluentdがちゃんと入ってます!!
(fluentd0.10.20から追加された、out_exec_filterの「in_format json」「out_format json」を使おうとしていたのです。)
Google グループ

ubuntuでバージョン確認
studio@precise:~$ /usr/lib/fluent/ruby/bin/fluentd --version
fluentd 0.10.22
studio@precise:~$ td-agent --version
td-agent 0.10.22
studio@precise:~$
CentOSでバージョン確認
[root@centos ~]# /usr/lib64/fluent/ruby/bin/fluentd --version
fluentd 0.10.14
[root@centos ~]# td-agent --version
td-agent 0.10.14
[root@centos ~]#

中身のfluentdも含め、間違いなく最新のtd-agentでした!!

@さんが気付かせてくれました。
ありがとうございました。oranie△、oranie++


つまりこういうこと
  • CentOSのサーバには、td-agentを入れる前に、gemでfluentd0.10.14を入れていた。(忘れてた)
  • rubyのパスがRVMのほうのrubyに通っているから、「/usr/lib64/fluent/ruby/bin/fluentd --version」でも0.10.14のほうを見てしまっていた。
[root@centos ~]# which fluentd
/usr/local/rvm/gems/ruby-1.9.3-p125/bin/fluentd
[root@centos ~]# which ruby
/usr/local/rvm/rubies/ruby-1.9.3-p125/bin/ruby
[root@centos ~]# 


fluentdのためだけにセットアップしたRVMだったので、rvm resetして回避しました。
gemでfluentdを入れてあるサーバに、td-agentを入れるべからず!!

[root@centos ~]# rvm reset
[root@centos ~]# td-agent --version
td-agent 0.10.22
[root@centos ~]#

ハッシュタグつけて嘘ついて申し訳ありませんでした