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 ~]#
debとrpmで内容とか挙動とか違うのかなーと、バージョンを確認してみると、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△、oranie++
あれ、rpm最新版をincludeしていなかったっけ? RT @studio3104_com: rpmなtd-agent1.1.7にも #fluentd 0.10.22をください!
. @oranieご指摘いただいて改めて確認しました。当該のサーバにはgemで入れたfluentd0.10.14が入っていたのですが、td-agentさんはそっちを見ていたようです・・・
2012-06-13 23:35:18 via Hotot to @oranie
あれ、rpm最新版をincludeしていなかったっけ? RT @studio3104_com: rpmなtd-agent1.1.7にも #fluentd 0.10.22をください!
. @oranie念の為フルパスでバージョン確認していたんですけどね・・・それでも0.10.14と表示されたものでまったく騙されてしまいました・・・# /usr/lib64/fluent/ruby/bin/fluentd --versionfluentd 0.10.14
2012-06-13 23:36:58 via Hotot to @oranie
@studio3104_com あれ、普通はそこにrpm入れた時のrubyとかが入るはずなんですがねー。なんでやろ。
2012-06-13 23:41:39 via Tween to @studio3104_com
@oranie あー、システムのrubyにパスが通ってるからかも。
2012-06-13 23:45:59 via Hotot to @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 ~]#