(レポート) Elastic{ON} 2016: What’s the Latest in Logstash #elasticon

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

藤本@サンフランシスコです。

Elastic{ON}2日目です。1つ目のセッション「What's the Latest in Logstash」のレポートです。

スピーカー

  • Suyog Rao, Logstash Team Lead, Elastic
  • Jordan Sissel, Logstash Creator & Tech Lead, Elastic

まずはJordan SisselからLogstashの歴史とロードマップの発表がありました。

IMG_0893

Elasticが提供するIngestの歴史

  • 2009年 Logstashリリース
  • 2012年 logstash-forwaderリリース
  • 2013年 Pocket Beatリリース
  • 2015年 Beatsリリース
  • 2016年 Ingest Node

IMG_0896

最近のLogstash

リリース

v1.5まではリリースペースはそこまで早くなかった。
開発体制(リリースツール導入・自動試験)が効率的となり、v1.5からより高速なリリースが可能となった。

Logstash Pipeline

v1.0 - v2.1

Input -> Filter -> Outputにそれぞれキューイングの仕組みを設けていた。

IMG_0913

v2.2

FilterとOutputのキュー統合され、更に同時並行INPUTに耐えられるようになった。

IMG_0915

Logstashのロードマップ

Logstashの今後追加される機能の発表がありました。

Persistented Queue

なんといっても、これが目玉ではないでしょうか。キューのデータを永続化できます。キューのディスク書き込みは実装予定の話を聞いていましたが、ついにv5.0で実装されるようです。Logstashはキューをメモリで持つことでプロセスダウンによるデータロストする問題がありました。よくこの点がFluentdと比較されてきました。ついにLogstashもディスクによるキューデータを永続化し、データをロストせずに済むようになります。ただ、ディスク管理となることでパフォーマンスがどうなるのか気になるところです。

IMG_0920

IMG_0921

Java for Serialization

IMG_0917

Output Acknowledgements

FilterとOutputが統合され、FilterキューからOuputの処理が効率化されます。

IMG_0919

Dead letter queue

Output処理失敗を制御できなかったものが、制御可能となります。

ここからはLogstashチームのリーダーであるSuyog Raoにバトンタッチです。

IMG_0922

Logstashの機能紹介

ユーザーからLogstashについて日々色々な質問をいただいています。

IMG_0923

Logstashのモニタリング

LogstashはAPIにより様々なリソース状況を得ることができます。

IMG_0925

今後、GUIによるリソースモニタリングも実装されます。

IMG_0926

設定のリロード

Logstashは起動時に設定ファイルを指定し、設定ファイルを読み込み起動します。
設定ファイルの変更にはLogstashの再起動が必要です。

Logstashは起動オプション指定によりリアルタイムに設定ファイルの更新を検知し、自動で設定ファイルをリロードする機能を持っています。

IMG_0929

設定ファイルの管理

LogstashにRoleを割り当てることで設定ファイルを統合管理でき、設定ファイルを対象のRoleのみに配信することができます。設定のリロードと組み合わせることでLogstashの構成管理が楽になりますね。

IMG_0934

Logstash Plugins

現在、203のプラグインが公開されており、8000以上のコミットがされていて、1900以上のバージョンがリリースされています。非常に開発は活発です。

IMG_0943

例えば、以下の様な利用方法があります。

  • Salesforce Plugin
    Salesforce Object Query LanguageによりSalesforceから情報を取得することができます。
    詳細はこちら

  • HTTP Plugin
    HTTPリクエストを直接取得することで、Webサービスをモニタリングすることができます。
    詳細はこちら

  • JDBC Plugin
    定期的にSQLでクエリすることにより、DBデータをElasticsearchなどに同期することができます。
    詳細はこちら