2015年10月28日 リリース

Logstash 2.0.0リリース(日本語訳)

By Suyog Rao

Logstash 2.0.0が本日(10/28)リリースされました。 この リリースは いくつかの設定に関する重要な変更があります。 詳細については、 changelogまたは、新しいbreaking changesドキュメントをご覧下さい。

これまでの2.0.0直前のリリースに関する変更点はこちらをご覧ください。

ここでは、2.0の主な変更点の概要を説明します。

Elasticsearch 2.0との互換性

多くの機能および改善を含んだElasticsearch 2.0がリリースされました。 Logstash 2.0はこのリリースに対応しています。 Logstashのこれまでのリリースでは、デフォルトで、Javaの node clientをElasticsearchとの通信として 使用してきました。 2.0では、HTTPクライアントがデフォルトになります。 これにより、シームレスにユーザのデータを取り込み、付加価値をつけ、Elasticsearchに保存して解析することができます。

HTTPは他のプロトコル(nodetransport)同等の機能を持っていますが、 単一のクライアントに接続する時に、少しだけ遅いですが、管理や動作がより簡単です。 HTTPプロトコルを使うことで、Elasticsearchのバージョンのアップグレードが、Logstashのアップグレードすることなく 行うことができます。 デフォルトをHTTPに変更したさらに詳しい情報については beta1のブログをご覧ください。

他のプロトコル(nodetransport)もサポートしますが、これらを利用する場合には、 プラグインを別途インストールする必要があります。

bin/plugin install --version 2.0.0 logstash-output-elasticsearch_java

互換性のマトリックス

LogstashとElasticsearchのバージョンの互換性は次のようになります。

enter image description here

Shield 2.0との互換性

このリリースはShield 2.0リリースにも対応しています。 HTTPプロトコルで、追加のプラグインは必要ありません。 こちらのドキュメントをご覧ください。 transportプロトコルでは、Shield 2.0対応のプラグインを個別にインストールする必要があります。

bin/plugin install --version 2.0.0 logstash-output-elasticsearch_java_shield

パフォーマンスの改善

このリリースはまた、多くの部分のパフォーマンスの改善を含んでおり、Logstashを利用してデータをより早く処理することができます。 いくつかをここで説明します。

  • UserAgentとGeoIPフィルタ:これらのフィルタで、LRUキャッシュを追加して改善しています。 これにより、IPとユーザエージェントがまとまって現れるというWebリクエストの特性を用いています。 ユーザエージェントフィルタのケースでは、サンプルデータセットにおいて3.7倍ほど早くなりました。 GeoIPでは、1.69倍早くなっています。
  • JSONプロセシング:LogstashでJSONのsiriaraizu/でシリアライズに利用しているJrJacksonを新しいバージョンにしました。 これにより、JSONの処理が改善されています。
  • フィルタワーカーのより良い値をデフォルトに:以前のリリースでは、filter_workersの設定は1がデフォルトでした。 これは、フィルタの処理を行うワーカーが1つであるという意味です。 filter_workersの設定のデフォルト値はCPUコア数の半分の値を設定します。フィルタ実行の並列性が上がります。 ですので、複雑なgrokパターンやuseragentフィルタの処理がにとっては重要です。

Filebeat Support

Filebeatのベータバージョンを先日リリースしました。 これは、Logstash Forwarderの次期バージョンです。 Filebeatはファイルベースのログをさらに処理するためにLogstashに送るためのエージェントです。 2.0.0は logstash-input-beatsプラグインを使えばFilebeat 1.0.0-beta4とすぐに動作します。

シャットダウン操作

これまでのLogstashでは、シャットダウンが開始した時に、例外の機構でシャットダウンが開始したことを プラグインに通知していました。 この処理はサードパーティのコードを使ったプラグインで問題を起こしていました。 Logstashはどの例外を処理するか知らないため、予期しない動作をしていました。 これを修正するためにAPI呼び出し(例えば stop)を各プラグインにシャットダウンのイベントを通知し、 プラグイン自身がきちんと停止するようにしました。 これは、200以上のプラグインに新しいAPIを利用するように修正しないといけないことを意味しました。 しかし、Logstashの停止についてはまだ完全にはフィックスしていません。 とちゅうでおわっているoutputがシャットダウンを遅らせる可能性があるからです。 2.0でAPIの破壊的な変更は適切なリリースでの変更を繰り返すことができる出発点です。

プラグインの開発者へ:もし、Logstash 1.5のプラグインを開発しているなら、 シャットダウンに関する新しいAPIのリストに関するbreaking changesのドキュメントに助言をください。 また、 example inputリポジトリにて、新しいシャットダウンメカニズムの使い方のサンプルコードを提供しています。

ドキュメント

2.0に更新されたドキュメントはこちらです。設定の変更についてもこちらをご覧ください。

2.0へのアップデート

2.0へアップデートする前に、アップデートガイドもご覧ください。

フィードバック

2.0のリリースできたことに、多くのコントリビューター、ユーザに感謝しています。 このリリースに含まれている多くのパッチと全てのプレリリースのテストにも感謝しています。 将来の修正やリリースなどについては ロードマップをご覧ください。 2.0は 今日リリースされました。 ご意見ご感想は Webフォーラムで!