ここを参考にさせてもらいました(ほぼ一緒)。
http://qiita.com/nurse/items/8bbb194982c685f1e795
環境は以下の通り
・ Windows8.1(x64)
・ Ruby 2.2.3(x64) + devkit(Cコンパイル環境)
・ fluentd 0.14.0.pre.1
・ Git for Windows
1.Ruby のインストール
ここからインストーラをダウンロードし、インストールする。
ここでは、「c:\Ruby22-x64」にインストールする。
途中のオプション指定で、PATHに追加する。
2.devkit
このモジュールも上記と同じサイトから入手する。
入手したモジュールを実行すると、展開先を聞かれるので、「c:\ruby」としておく。
展開し終わったら、以下を実施。
$ cd c:\ruby
$ ruby dk.rb init
config.ymlgが生成されるので、そのファイルに1のrubyインストールパスを記載する- C:/Ruby22-x64
編集が終わったら、
$ ruby dk.rb install
を実行する。
3.Git
git レポジトリからfluentdを入手。zip出ダウンロードでもいいかなと思ったのですが、
fluentdのgemfileの中身で改行がLFとなっていたので、動作しなかった。これだけなら、
ファイルを改修すればよいかもしれないけど、、他でも問題がでるかもしれないので、、
素直にgitを入れて、同梱のgit-bashを使うことにする。
http://www.git-scm.com/download/win
からダウンロードする。
サーバ利用などを考慮すると何かとインストールされるのは気持ち悪いので、portableで進める(c:\git)。
4.fluentdのインストール
以下は、c:\git\bash.exeを実行し、その上で進める。
gitをProxy環境下で使用する場合、以下の設定をしておく
これで基本のセットアップ完了。
これでうまく動けばテスト完了。
5.pluginのインストール
試しに、複数のログをtailで読み取り、mongodbに送り込むという処理を実装してみる。
・ 複数のファイルを読み取るには、fluent-plugin-tail-exを使う
・ 読み取ったログのフォーマットに型を割り当てるのに、fluent-plugin-typecastを使う
3.Git
git レポジトリからfluentdを入手。zip出ダウンロードでもいいかなと思ったのですが、
fluentdのgemfileの中身で改行がLFとなっていたので、動作しなかった。これだけなら、
ファイルを改修すればよいかもしれないけど、、他でも問題がでるかもしれないので、、
素直にgitを入れて、同梱のgit-bashを使うことにする。
http://www.git-scm.com/download/win
からダウンロードする。
サーバ利用などを考慮すると何かとインストールされるのは気持ち悪いので、portableで進める(c:\git)。
4.fluentdのインストール
以下は、c:\git\bash.exeを実行し、その上で進める。
$ cd /c
$ git clone https://github.com/fluent/fluentd.git
$ cd fluentd
$ gem install bundler
$ bundle
$ bundle exec rake build
$ gem install pkg/fluentd-0.14.0.pre.1.gem
$ git config --global http.proxy http://proxy.example.com:8080
$ git config --global https.proxy http://proxy.example.com:8080
同様にgemも使うので、下の設定をしておく$ export HTTP_PROXY=http://proxy.example.com:8080
これで基本のセットアップ完了。
$ fluentd -c ./example/in_forward.conf
これでうまく動けばテスト完了。
5.pluginのインストール
試しに、複数のログをtailで読み取り、mongodbに送り込むという処理を実装してみる。
・ 複数のファイルを読み取るには、fluent-plugin-tail-exを使う
・ 読み取ったログのフォーマットに型を割り当てるのに、fluent-plugin-typecastを使う
・ mongodbに入れるのに、 fluent-plugin-mongoを使う
ということで、以下を実行する。
$ ./bin/fluent-gem install fluent-plugin-tail-ex
$ ./bin/fluent-gem install fluent-plugin-typecast
$ ./bin/fluent-gem install fluent-plugin-mongo
とここで問題が。
installすると、fluentdの0.12.19が一緒にインストールされてしまい、fluentd自体が
そちらを参照しに行ってしまう。
$ fluentd --version
fluentd 0.12.19
結果として、
$ fluentd -c ./example/in_tail.conf
2015-12-24 00:45:48 +0900 [info]: reading config file path="./example/in_tail.conf"
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/fluentd-0.12.19/lib/fluent/supervisor.rb:387:in `trap': unsupported signal SIGHUP (ArgumentError)
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/fluentd-0.12.19/lib/fluent/supervisor.rb:387:in `install_supervisor_signal_handlers'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/fluentd-0.12.19/lib/fluent/supervisor.rb:139:in `start'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/fluentd-0.12.19/lib/fluent/command/fluentd.rb:171:in `<top (required)>'
from C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:69:in `require'
from C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:69:in `require'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/fluentd-0.12.19/bin/fluentd:6:in `<top (required)`>'
from C:/Ruby22-x64/bin/fluentd:23:in `load'
from C:/Ruby22-x64/bin/fluentd:23:in `<main>'
こんなエラーがでるようになる。0.12.19はWindowsに対応していないが原因。
とりあえず、0.12.19をアンインストールしてみる
$ ./bin/fluent-gem uninstall fluentd
Select gem to uninstall:
1. fluentd-0.12.19
2. fluentd-0.14.0.pre.1
3. All versions
> 1
Successfully uninstalled fluentd-0.12.19
これで動くかどうか・・ですね。
で設定は以下の通り(ログは適当)。
test.conf
<source>
type tail_ex
path c:\fluentd\data\*.tsv
pos_file c:\fluentd\data\fluentd-tsv.pos
tag tail_ex.a
format tsv
keys time,name,counterobject,counter,value
time_key time
refresh_interval 30
</source>
<match tail_ex.*>
type typecast
item_types time:string,name:string,counterobject:string,counter:string,value:float
tag mongo.data
</match>
<match mongo.data>
# plugin type
type mongo
# mongodb db + collection
database test
tag_mapped
emove_tag_prefix mongo.
# mongodb host + port
host 192.168.33.207
port 27017
# interval
flush_interval 10s
#include_time_key true
</match>
あと今はgit-bash.exe上でテストをしているが、バッチとして実行したいので、コマンドプロンプト
から実行するには、、
$ c:\git\bin\bash -c "/C/fluentd/bin/fluentd -c /C/fluentd/test.conf"
これで実施できる。
で、試してみたが、、エラーだ・・tail_exが引っかかっているみたい。
tailであれば、動く。
tail _exは引き続き調査してみることにしよう・・
tail _exは引き続き調査してみることにしよう・・