Elasticsearchとは
Elasticsearchとは、大容量データを扱うことを想定した全文検索エンジンである。Elastic Stackの中でデータの検索を行う機能を担当している。Elasticsearchは、Elastic社が提供しApache2ライセンスの下で公開されているオープンソースソフトウェアで、AWSなどのクラウド環境でも利用することができる。
Elasticsearchを利用すると、大容量のデータから必要なデータを素早くに取り出すことができる。例えば、大量に出力されているDHCPサーバのログからIPアドレスやMACアドレスを抽出し、そこから利用ユーザを特定するといったことができる。
Elasticsearchは、Fess(ドキュメントやWEBサイトの検索)、Graylog(ログ管理)など、様々なOSSの全文検索エンジンとしても使われている。
Elasticsearchには、以下のような特徴がある。
全文検索
Elasticsearchは、指定したキーワードに一致するデータを大量のデータから高速に抽出することができる。また、ElasticSearchでは、指定したキーワードに関連するデータを抽出することもできる。この機能は大量の商品リストから特定のキーワードを含む商品だけを検索するような時に利用できる。ElasticSearchでは高速に検索の処理を行うため、入力された文字列のテキストを正規化してインデックスを作成する。
分散構成
Elasticsearchは、複数のサーバをひとつの クラスタとして構成することができる。Elastcisearchで扱うデータは、クラスタに所属する各サーバに分散して保存される。ひとつのデータを複数のElasticserachサーバに配置することも可能となっており、データ冗長化を行うこともできる。
スケーラビリティ
システムを停止することなくサーバを追加してシステムを拡張することができ、大規模なシステムを構成することができる。導入時は最小構成で始め、データ量やアクセス量が増加してきた時に、規模に合わせてサーバを追加するというようなシステム拡張が可能となっている。サーバを追加した時、Elasticsearchが持っているデータは各サーバに自動的に再配置される。
ハイアベイラビリティ
クラスタを構成するひとつのサーバが停止してしまった時、そのサーバを切り離した状態でサービスを継続することができる。データを複数のサーバに配置する構成にしておけば、データが失われることもなく、完全な冗長化システムを構築することができる。
Restful API
データ登録やデータ検索は、Elasticsearchが提供するAPIを通して行う。APIはRestful APIの形式となっている。APIを使用することで、外部システムからのデータの登録、検索、分析を容易に行える。
「Elasticsearch〜OSSの全文検索エンジン〜」へ
Elasticsearchの使い方
近年、ビッグデータを扱うことが増えているが、そのデータ配置方法や高速に検索する仕組みが課題となっている。Elasticsearchを利用すれば、大量データを複数サーバに分散して配置したり、複数のサーバにデータを配置することでデータ冗長化をしたりすることができる。また、高速に全文検索を行うこともできるため、安全で便利にビッグデータを扱うシステムを構築することができるようになる。
Elasticsearchと連携ツール
Elasticsearchにはいくつかのツールを連携することができる。ここでは、ElasticsearchとKibana、Logstash、Kuromojiの連携について紹介する。
Kibana
Kibanaとは、Elastic社が開発したログデータの可視化ツールである。Elasticsearchに保存されているデータを、時系列や属性に合わて抽出できる。そして、Elasticsearchから抽出したデータをグラフィカルに表示することが可能である。リアルタイム解析も可能なため、Kibanaは非常に強力なログ解析ツールである。
Logstash
Logstashとは、ログデータだけではなく様々な形式のデータを収集・変換し、任意の場所に保管することができるオープンソースソフトウェアである。Logstashを利用すると、ログファイルに溜まっているデータを解析して、データベースへ格納するなど、用途にあった形にデータを変換・保存することができる。ElasticsearchにLogstashで解析した情報を保存し、Kibanaを使って可視化することも可能である。
Logstashについての詳しい情報は「Logstash調査報告書」に記載されている。
Kuromoji
Kuromojiは、Elasticsearchで日本語データの解析を行う場合に利用されるオープンソースの日本語形態素解析エンジンである。KuromojiはElasticsearchのベースであるApache Luceneへの日本語のサポートを提供している。Kuromojiは、複合語の分割、品詞のタグ付け、見出し化、読みの抽出などの機能がある。
ElasticsearchにKuromojiをインストールすることで日本語データの全文解析が可能になる。
Elasticsearchを利用しているOSS
ここでは、Elasticsearchを使って実現されているOSSのアプリケーションについて紹介する。
Fess
Fessは、OSSの全文検索システムである。Wikiや掲示板など、組織内の様々なWeb上のデータをクロールし、検索することができる。また、ファイルサーバにも対応していて、組織内の文書を効率よく探すことができる。さらに、見つかった情報を種類別にカテゴライズすることもできる。そのため、ファイルサーバに蓄積された膨大なナレッジをスムーズに活用することができるようになる。Microsoft Office文書、PDF、TEXT、HTMLなどのデータ形式に対応している。標準で用意されている検索インタフェースは、Googleを使うのと同様の操作感で情報を検索することができる。APIを利用して、独自の検索ページを作ることも可能である。Fessは、LDAPやActiveDiretoryを利用した認証やアクセス制限にも対応している。
Graylog
Graylogは、オープンソースのログ管理ソフトウェアである。様々なログを蓄積し、高速な全文検索を行うことができる。また、ログの内容を自動的に解析し、管理者へ通知を行ったり、ランキングやグラフなどの形式で表示したりすることができる。大量のログを管理する必要がある場合に利用する。
デージーネットの取り組み
デージーネットでは、システムログから指定したキーワードで検索を行うためのオープンソースソフトウェア SyLAS を開発して公開している。SyLAS 6.00では、ログ検索先としてElasticsearchを選択できるようになった。これにより、大量に出力されるログから欲しい情報を高速に抽出できるようになった。
【カテゴリ】:ビッグデータ  情報共有  オープンソースソフトウェア  
【Webセミナー】脱PPAPへ、パスワード付きZIPファイルに代わるセキュリティ対策セミナー
日程: | 5月19日(木)Webセミナー「BigBlueButton」を使用します。 |
内容: | パスワード付きZIPファイルのメール送信(PPAP)の代替となるセキュリティ対策をご紹介します。 |
ご興味のあるかたはぜひご参加ください。 |