目次
※この記事は次のブログを翻訳したものになります。
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は他のプロトコル(node
やtransport
)同等の機能を持っていますが、
単一のクライアントに接続する時に、少しだけ遅いですが、管理や動作がより簡単です。
HTTPプロトコルを使うことで、Elasticsearchのバージョンのアップグレードが、Logstashのアップグレードすることなく
行うことができます。
デフォルトをHTTPに変更したさらに詳しい情報についてはbeta1のブログをご覧ください。
他のプロトコル(node
とtransport
)もサポートしますが、これらを利用する場合には、
プラグインを別途インストールする必要があります。
bin/plugin install --version 2.0.0 logstash-output-elasticsearch_java
互換性のマトリックス
LogstashとElasticsearchのバージョンの互換性は次のようになります。
画像あり。 ※画像に関しては原文をご覧ください。 #Image https://www.elastic.co/assets/bltde5b69e2164aa82f%2Fcompat_matrix.png
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フォーラムで!
comments powered by Disqus
See Also by Hugo
- Logstash 1.5.0 Beta1リリース(日本語訳)
- Logstashプラグインのエコシステムの変更(日本語訳)
- 2015年のElasticsearch
- Release, we have(日本語訳)
- Elasticsearch 2.0.0-beta1リリース(日本語訳)