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で聞いて貰えればと思います!