第一回web技術勉強会 efkスタック編
TRANSCRIPT
第一回Web技術勉強会EFKスタック編
田実 誠
EFK• スタックElasticSearch•
RDB• のIndex全文検索• エンジンのIndex(転置Index)形態素解析•
Fluentd•
Kibana•
デモ•
アジェンダ
EFKスタック• ElasticSearch, Fluentd, Kibanaによる分析基盤のこと
→手軽に良い感じに導入できるのが人気
• ElasticSearch→全文検索エンジン
• Fluentd→ログ収集、集約のOSS
• Kibana→Webベースのビジュアライゼーションツール(BIツール的な)
• Fluentdを使って任意のデータソースからElasticSearchにデータを集めて、Kibanaでビジュアライズする、というアーキテクチャ
ElasticSearch• 全文検索エンジンのOSS。Javaで作られている。
→Apache Lucene(全文検索ライブラリ)をベースに作られている• 全文検索?
→複数の文書(ファイル)から特定の文字列を検索。Webの検索やSFDCのグローバル検索にも使われている。
• スキーマフリー→JSONを入力値としてデータ型を推測して型定義を自動的に行なってくれる。事前定義も可能。
• HTTP APIベースで操作可能
• 転置Indexによる高速な全文検索
• HerokuのAddonとしてはSearchBox/Bonsaiなどがある。
ElasticSearch RDB
ドキュメント レコード(タプル)
フィールド カラム
インデックス データベース
RDBのIndexIndex• の種類は色々あるが大抵B-tree Index• B-tree Indexは完全一致検索、前方一致検索で効果を発揮するが、あいまい検索は苦手。
ディレクトリで• 例えると、アルファベット順にドキュメントを並べて管理しているようなイメージ
出展:http://ja.wikipedia.org/wiki/B%2B%E6%9C%A8
転置Index• 対象のキーワードがどのドキュメント(レコード)に入っているかどうかを検索するためのIndex• イメージ的には本の索引
1. カツオはサザエの弟 → カツオ、は、サザエ、の、弟2. サザエはワカメの姉 → サザエ、は、ワカメ、の、姉3. ワカメはカツオの妹 → ワカメ、は、カツオ、の、妹
1. 「カツオ&弟」で検索2. 「カツオ」は”1”, “3”にある3. 「弟」は”1”にある4. 共通する要素の”1”を返す
カツオ→1, 3サザエ→1, 2ワカメ→2, 3姉→2妹→3弟→1
形態素解析そもそも• 、この単語(=term)分割(analysis)ってどうやる?• N-gram
→単語単位ではなく文字単位での区切りカツオはサザエの弟 → カツオ、ツオは、オはサ、はサザ、サザエ、ザエの、エの弟
形態素解析•
→解析用の辞書を使って品詞分解を行う→英語はスペース区切り+αで大体うまくいくが、日本語は難しい
Fluentd• ストリーム(リアルタイム)なログコレクタ(転送・集約)※ログ用のETL• C+RubyなOSS• Pluggable• シンプルな設定ファイル(Apacheに似ている)• Bufferingによる信頼性、Retry処理• 柔軟なシステム構成• TreasureDataが担っているOSS
出展:http://www.fluentd.org/architecture 出展:http://www.fluentd.org/architecture
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
デモFluentd• の設定ファイル
ElasticSearch• の設定
Kibana• の良い感じなビジュアライゼーション
• EFKスタックは手軽に導入できる便利な分析基盤→Fluentdを使って任意のデータソースからElasticSearchにデータを集めて、Kibanaでビジュアライズする、というアーキテクチャ
• ElasticSearchは全文検索エンジン
• Fluentdはログ収集、集約のOSS
• Kibanaを使ってElasticSearchに溜めたデータを手軽にビジュアライズできる
まとめ
• 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