第一回Web技術勉強会 efkスタック編

12
第一回Web技術勉強会 EFKスタック編 田実

Transcript of 第一回Web技術勉強会 efkスタック編

Page 1: 第一回Web技術勉強会 efkスタック編

第一回Web技術勉強会EFKスタック編

田実 誠

Page 2: 第一回Web技術勉強会 efkスタック編

EFK• スタックElasticSearch•

RDB• のIndex全文検索• エンジンのIndex(転置Index)形態素解析•

Fluentd•

Kibana•

デモ•

アジェンダ

Page 3: 第一回Web技術勉強会 efkスタック編

EFKスタック• ElasticSearch, Fluentd, Kibanaによる分析基盤のこと

→手軽に良い感じに導入できるのが人気

• ElasticSearch→全文検索エンジン

• Fluentd→ログ収集、集約のOSS

• Kibana→Webベースのビジュアライゼーションツール(BIツール的な)

• Fluentdを使って任意のデータソースからElasticSearchにデータを集めて、Kibanaでビジュアライズする、というアーキテクチャ

Page 4: 第一回Web技術勉強会 efkスタック編

ElasticSearch• 全文検索エンジンのOSS。Javaで作られている。

→Apache Lucene(全文検索ライブラリ)をベースに作られている• 全文検索?

→複数の文書(ファイル)から特定の文字列を検索。Webの検索やSFDCのグローバル検索にも使われている。

• スキーマフリー→JSONを入力値としてデータ型を推測して型定義を自動的に行なってくれる。事前定義も可能。

• HTTP APIベースで操作可能

• 転置Indexによる高速な全文検索

• HerokuのAddonとしてはSearchBox/Bonsaiなどがある。

ElasticSearch RDB

ドキュメント レコード(タプル)

フィールド カラム

インデックス データベース

Page 5: 第一回Web技術勉強会 efkスタック編

RDBのIndexIndex• の種類は色々あるが大抵B-tree Index• B-tree Indexは完全一致検索、前方一致検索で効果を発揮するが、あいまい検索は苦手。

ディレクトリで• 例えると、アルファベット順にドキュメントを並べて管理しているようなイメージ

出展:http://ja.wikipedia.org/wiki/B%2B%E6%9C%A8

Page 6: 第一回Web技術勉強会 efkスタック編

転置Index• 対象のキーワードがどのドキュメント(レコード)に入っているかどうかを検索するためのIndex• イメージ的には本の索引

1. カツオはサザエの弟 → カツオ、は、サザエ、の、弟2. サザエはワカメの姉 → サザエ、は、ワカメ、の、姉3. ワカメはカツオの妹 → ワカメ、は、カツオ、の、妹

1. 「カツオ&弟」で検索2. 「カツオ」は”1”, “3”にある3. 「弟」は”1”にある4. 共通する要素の”1”を返す

カツオ→1, 3サザエ→1, 2ワカメ→2, 3姉→2妹→3弟→1

Page 7: 第一回Web技術勉強会 efkスタック編

形態素解析そもそも• 、この単語(=term)分割(analysis)ってどうやる?• N-gram

→単語単位ではなく文字単位での区切りカツオはサザエの弟 → カツオ、ツオは、オはサ、はサザ、サザエ、ザエの、エの弟

形態素解析•

→解析用の辞書を使って品詞分解を行う→英語はスペース区切り+αで大体うまくいくが、日本語は難しい

Page 8: 第一回Web技術勉強会 efkスタック編

Fluentd• ストリーム(リアルタイム)なログコレクタ(転送・集約)※ログ用のETL• C+RubyなOSS• Pluggable• シンプルな設定ファイル(Apacheに似ている)• Bufferingによる信頼性、Retry処理• 柔軟なシステム構成• TreasureDataが担っているOSS

出展:http://www.fluentd.org/architecture 出展:http://www.fluentd.org/architecture

Page 9: 第一回Web技術勉強会 efkスタック編

Kibana• ElasticSearch社が開発するOSSの分析、ビジュアライゼーションツール(Webアプリ)

• 中身はHTML/JS/CSSなので簡単に設置可能

• ElasticSearchがバックエンド(Luceneクエリが使える)→JavaScriptでESのAPIを叩いている

• 基本的にはログの解析に利用される

• Tableauや他のBIツールと比べて無料で手軽に導入出来る点が魅力

出展:https://www.elastic.co/blog/kibana-4-beta-3-now-more-filtery

Page 10: 第一回Web技術勉強会 efkスタック編

デモFluentd• の設定ファイル

ElasticSearch• の設定

Kibana• の良い感じなビジュアライゼーション

Page 11: 第一回Web技術勉強会 efkスタック編

• EFKスタックは手軽に導入できる便利な分析基盤→Fluentdを使って任意のデータソースからElasticSearchにデータを集めて、Kibanaでビジュアライズする、というアーキテクチャ

• ElasticSearchは全文検索エンジン

• Fluentdはログ収集、集約のOSS

• Kibanaを使ってElasticSearchに溜めたデータを手軽にビジュアライズできる

まとめ

Page 12: 第一回Web技術勉強会 efkスタック編

• ElasticSearchhttps://www.elastic.co/jp/products/elasticsearchhttp://www.slideshare.net/JunOhtani/elasticsearch-pyfes-201207http://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-tech-webinar-2016-amazon-cloudsearch-amazon-elasticsearch-service

• Fluentdhttp://www.fluentd.org/

• Kibanahttps://www.elastic.co/jp/products/kibana

• B-tree Indexhttp://qiita.com/kiyodori/items/f66a545a47dc59dd8839

• EFK関連http://www.slideshare.net/keisuke69/aws-night

• 設定参考資料程度にhttp://freedom-man.com/blog/fluentd-elasticsearch-kibana-idle/

参考URL