Treasure Agent(td-agent)の1と2の今後


Treasure Dataが提供しているFluentdの配布パッケージであるtd-agentの今後について書く.この記事は

とかMLでのアナウンスを日本語でまとめたような感じの記事です.

現在は1と2の二つのバージョンが並行してリリースされているので,まずそれぞれの違いについて書きます.

td-agent 1

今までのメインバージョンであり,現在はold stable.同梱ライブラリの大きなバージョンアップはありません.最新版の1.1.21では以下のものが同梱されています

  • Ruby 1.9.3
  • jemallocやmsgpackなど,コアライブラリ群
  • Fluentdとよく使われるプラグイン群

サポート環境は以下.これらが増えることはないです

  • CentOS 5, 6
  • Ubuntu 10.04, 12.04

td-agent 1の懸念点は,同梱しているRuby 1.9.3が2015年2月にサポートが終了したところです.もちろんこれ以降もtd-agent 1のリリースは続きますが,クリティカルなバグが1.9.3に見つかった場合の対応は,その時のコミュニティの判断によります.現状td-agent 1でそのような事例は聞いたことがないので,可能性は低いとは思っていますが…

td-agent 2

現在リリースされているstable版.同梱されているコアライブラリがアップデートされることもあります.最新版の2.1.2では以下のものが同梱されています

  • Ruby 2.1.3
  • jemallocやmsgpackなど,コアライブラリ群の最新版
  • Fluentdとよく使われるプラグイン群の最新版
  • Fluentd UI

サポート環境は以下.今後も要望によって増える可能性があります

  • CentOS 5, 6, 7
  • Ubuntu 10.04, 12.04, 14.04 (14.04は64bitのみ)
  • Debian 6.0.10, 7.5 (どちらも64bitのみ.Treasure Dataで検証はしていない)
  • Mac OS X 10.9.x or later

Rubyのバージョンが上がっているので,プラグインの再インストールが必要です.が,必要な人は独自にパッケージをビルドしているし,Chefなどのツールを使っていればこの辺は勝手にやってくれるので,今まで大きな問題を聞いたことはありません.

td-agent 1からの更新

td-agent 2の問題点として,パッケージスクリプトやインストール先をガラッと変えたので,td-agent 1からそのままアップデート出来ないという点があります.もしtd-agent 1から更新する時には,unisntall -> installという手順が必要です.他の有名なパッケージ群に倣ってメジャーバージョン毎にURLを分けているので,リポジトリのパスも修正が必要です.

rpm

baseurl: http://packages.treasuredata.com/2/redhat/$releasever/$basearch

deb

apt-line:

  • trusty: deb [arch=amd64] http://packages.treasuredata.com/2/ubuntu/trusty/ trusty contrib
  • precise: deb http://packages.treasuredata.com/2/ubuntu/precise/ precise contrib
  • lucid: deb http://packages.treasuredata.com/2/ubuntu/lucid/ lucid contrib

それぞれのパッケージマネージャがキャッシュを持っている場合には,installの前にキャッシュを削除して,リポジトリ情報を更新してください.

td-agent 1との運用上の違い

  • インストール先が/opt/td-agentに統一された
  • v1の設定がデフォルトで利用される.include周りなどで警告が出る可能性がある
  • gemのインストールは/usr/sbin/td-agent-gemコマンドを使う(rvmがGEM関係のパスを書き換える問題を回避)

2.1.1からはtd-agent 1と設定ファイルの互換性が保たれるようになったので,よほど怪しい設定ファイルを書いてない限りは,既存の設定ファイルを使い回せるはずです.

どちらを使うべきか

Rubyやコアライブラリのバージョンアップによりパフォーマンスの改善が見込めるtd-agent 2を,新しい環境ではオススメします.実際td-agent 1だとRuby本体の問題で上手く行かなかったがtd-agent 2で解決した,というユーザもいます.td-agent 1は最新のOS向けのパッケージを提供する予定はないので,今後はtd-agent 2への移行が進むでしょう.

Fluentdの公式ドキュメントでは,すでにインストール対象がtd-agent 2になっているので,初めての方は意識しなくてもtd-agent 2になっています.

td-agent 2のパッケージングで問題があったら,td-agent 2のリポジトリにissueを投げてもらえれば対処します.疑問などがあれば@repeatedlyにでもmentionを飛ばすか,英語になりますがFluentdのMLで聞いて貰えればと思います!