Elasticsearchを使った大容量ログ検索の紹介ページ

~Elasticsearchを使った大容量ログ検索~

今月の気になるオープンソース情報(2016年5月号)

OSS研究室 倉田 隆規

最近、「ビッグデータを扱いたい」「ビッグデータから情報を取り出したい」という声をよく聞くようになってきました。そこで今回は、大量データを扱える全文検索エンジンのElasticsearchについて紹介します。

Elasticsearchとは、大容量データを扱うことを想定した全文検索エンジンです。オープンソースソフトウェアとして提供されています。Elasticsearchを使用すると、数百台で構成するような大規模検索システム、ショッピングサイト等のたくさんの商品から関連する商品を検索するシステム等を構築することが可能です。

Elasticsearchには、主に以下の特長があります。

  • 検索性能
  • 全文検索に特化しており、検索速度を向上させるように設計されています。事前に検索対象となるデータを検索し易い形式で保存するため、高速な検索ができます。

  • 検索エンジン
  • Elasticsearchでは、大量のデータから指定したキーワードに一致するデータを抽出することができます。この機能は大量のログデータから特定のキーワードを含むログだけを検索するような時に利用できます。また、指定したキーワードに関連するデータを抽出する機能もあります。この機能を利用すると、ショッピングサイトで過去に購入した商品に関連する商品を抽出して表示するといったことを行うこともできます。

  • ハイアベイラビリティ
  • Elasticsearchは、複数のサーバに分散して構成することが想定されており、冗長性に優れています。Elasticsearchに登録するデータは、複数のサーバにレプリカを作成することで、冗長性を保っており、サーバの1台が障害で停止しても、データを失うことなく利用ができます。

  • スケーラビリティ
  • 大規模データに対応するために検索処理やデータ配置を分散することができます。また、システムを拡張する時は、システムを停止することなくサーバを追加できます。導入時はスモールスタートで始め、利用者が増えてきたらサーバを追加するというようにシステム拡張を容易に行なうことができます。サーバを追加した時、データは自動的に各サーバに分散して再配置されます。

  • Restful API
  • Restful API を使用することができます。Restful APIを使用すると、外部システムからElasticsearchとの連携をシームレスに行なうことができます。そのため、検索に対する結果を他の機能と連携することが容易にできます。

大容量のデータから特定のデータを検索する必要があり、検索操作には手間も時間もかかって困っているというような状況において、Elasticsearchを有効に利用することができます。

例えば、ISPでは、IPアドレスから利用ユーザを特定するということがよくあります。大量に出力されているDHCPサーバのログからIPアドレスを検索してMACアドレスを特定し、そこから利用ユーザを特定するという操作が必要になります。こんな時、大量のDHCPサーバのログをElasticsearchに登録しておけば、利用ユーザをいち早く特定できるようになります。

デージーネットでは大容量ログ検索システムにElasticsearchを採用しています。ビッグデータからデータを取り出すシステムでは、Elasticsearchの採用を検討されてみてはいかがでしょうか。

関連ページ

デージーネットマガジン2016年5月号記事一覧

~Elasticsearchを使った大容量ログ検索~の先頭へ