Mac上のVirtualBoxにFluentd(td-agent)を入れる

コマンドひとつで好き勝手にマシンが作れるのは便利だけれど、
いちいちリモートにログインしてログを見るのがどうにも面倒くさい・・・。

ログをホストに持ってきたら、楽ちんじゃん!!
ということで、仮想マシン作成時にfluentd(td-agent)を入れてログを飛ばすことにしました。
開発機のMacに、VagrantVirtualBoxを入れています。 f:id:d10gkotatsu:20150805175453p:plain
 

fluentdインストール

クイックスタードガイドによると、色々とインストール方法があるみたいですが、
今回は何度も潰して建てる環境なので、chefでインストールが楽ですかね。
Quickstart Guide | Fluentd

 

Berksfileでtd-agentを落としてくる。

$ echo 'cookbook "td-agent"' >> Berksfile
$ berks install

ついでに knifhプラグインの chef-td-agent も持ってくる。

$ gem install knife-github-cookbooks
$ knife cookbook github install treasure-data/chef-td-agent

 

Vagrant仮想マシン起動時にインストールされるよう追加。

$ cat Vagrantfile
    (略)
config.vm.provision :chef_solo do |chef|
    chef.cookbooks_path = "./cookbooks"
    chef.run_list = %w[
        recipe[td-agent]
    ]
end
(略)

以上でインストール完了。

vargrant up で起動。勝手に追加してくれます。

ゲストのtd-agent

ゲストにログインして、ローカルのファイルから、ローカルのファイルへ転送をしてみます。
設定は以下の通り。

# cat /etc/td-agent/td-agent.conf
<source>
    type tail
    format none
    path /var/log/example
    tag example.hoge
</source>

<match example.*>
    type file
    path /var/log/td-agent/example
</match>

td-agentユーザーで動作するようなので、パーミッションにはご注意ください。
あとは出力先をゲストの/vagrant/にすれば終了です。 vagrantのおかげで、ホストとのファイル共有も楽ちん。

fluentd と td-agent

そういやfluentdとtd-agentの関係がよく分かりませんでした。
古い記事だと、fluentdの安定版がtd-agentみたいな事が書いてましたけど・・・

fluentdの公式で、td-agentのインストール手順しか書いていないってことは、
fluentdの実装が td-agent になったって認識でいいんですかね?