td-agent 3.0 for Windows


fluentdがv0.14からWindowsで動くようになりました.それにともない,fluentd v0.14を使うtd-agent 3.0もWindows用のmsiパッケージを提供することにしました!
で,msiパッケージを作ってみたので,興味のある方に試してもらいたく,使い方を書きます.

正式版リリース時には,fluentdの公式ドキュメントにもちゃんとした手順は追加する予定です.これらの手順は管理者権限を持ったアカウントで実行しているのを想定しています.

インストール

msiパッケージをダウンロードしてクリックすればインストール出来ます.パッケージのURIは以下です.

beta1とついている通り,まだbetaです.今後いくつか変更予定がありますが,それは最後に書きます.

Fluentdを動かす

プロンプトを起動する

msiパッケージをインストールすると,Td-agent Command Promptというのも一緒にインストールされます.

Windows Server 2012だとこんな感じの表示です.これをクリックすると,td-agentのrubyとかにPATHが入った状態でプロンプトが起動します.

設定ファイルとログのディレクトリを用意する

まだスクリプトの修正が完全ではなく,td-agent.confとかを勝手に作らないので,ここは現状自前で用意する必要があります.

  • C:/opt/td-agent/conf/td-agent.conf

テスト用なのでin_forwardout_stdoutを使ってみます.

<source>
  @type forward
</source>

<match test.**>
  @type stdout
</match>

fluentdコマンドで動かす

プロンプトが起動したらC:/opt/td-agentに最初からいるので,以下のコマンドでfluentdを起動させます.

> fluentd -c conf\td-agent.conf

これでfluentdが起動するはずです.

fluent-catで動作確認

新しくTd-agent promptを立ち上げ,以下のコマンドを入力すれば,fluentd側で受け取れているのが確認できます.

> echo {"message":"hello"} | fluent-cat test.event

スクリーンショットだけ貼っておきますが,in_tailも基本的な動作は確認しています.

Fluentdをサービスとして登録する

手順は下記の記事と同じ流れになります.

fluentd Windows版をWindowsサービスとして動かす

fluentdをサービスとして登録する

Td-agent promptから以下のコマンドを入力します

> fluentd --reg-winsvc i

そうすると,サービスとしてFluentd Windows Serviceが登録されます.これは管理ツールから確認出来ます.

fluentdの起動オプションを設定する

プロンプト上で以下のコマンドを入力してください

> fluentd --reg-winsvc-fluentdopt '-c C:/opt/td-agent/conf/td-agent.conf -o C:/opt/td-agent/log/td-agent.log

ログディレクトリは現状インストール時に自動で作られないので,C:/opt/td-agent/logを作ってから実行してください.

また,トラブルを回避するため,fluentdのオプションで指定するパスは\区切りではなく,/区切りで指定してください.これはfluentdの設定ファイル内のファイルパスも同じです.

Fluentd Windows Serviceからfluentdを起動する

Fluentd Windows Serviceのプロパティを開き,Startを押せば走るようになります.上記の記事にスクリーンショットがあるので,そちらも参考にしてみてください.

これらが基本的な操作になります.また,Td-agent promptからfluent-gemを使えば,プラグインもインストール可能です.

今後のタスク

いくつか追加・変更が入る予定です

  • Rubyを2.4にする.現状ruby 2.4に対応していないgemを回避するため2.3.3を使っていますが,正式版の時には2.4.0にする予定です.
  • ヘルパーとなるスクリプト群を用意する.上記のサービス登録やオプション追加などを一発でやるスクリプトを入れます.
  • Windowsのイベントログを集めるプラグインを同梱する.okahashiさんが作ってくれたプラグインがあるので,これを叩き台にしてmsiパッケージに同梱しようと思ってます.必要な機能など,イベントログ周りに詳しい人に色々と教えてもらいたいです.

以上です.是非試してフィードバックを貰えると嬉しいです.また,Linux/Mac向けのtd-agent 3.0.0もすぐリリースします.その時にもまた変更点など記事を書く予定です.