オープンソースソフトウェア(OSS)の全文検索エンジン「Elasticsearch」を開発するElasticは2016年9月に行動分析技術を手掛けるPrelertを買収。その成果として、Elasticは、Elasticsearchなどで構成されるソフトウェア群「Elastic Stack」にPrelertの技術を応用した機能「Machine Learning」を2017年5月に追加した。現在はベータ版(製品版は2017年上半期にリリース予定)だが、時系列データの異常検知が今までより簡単になるというユニークな特徴がある。
全文検索エンジンというと、対象となるデータはWordやExcel、PowerPointなどのファイル、テキストを思い浮かべる。しかし、OSSの全文検索エンジン「Apache Lucene」をベースにしているElasticsearchの場合、こうしたデータに加えて、システムが吐き出すログなども対象にしている。さまざまなデータのフォーマットに対応し、データの構造を定義せずに格納できるスキーマレスで組むことができる。
こうした技術的特性からElasticsearchはさまざまな分野に応用できる。例えば、ある商品の売上実績のデータがあれば、ビジネス分析として活用できる。IoTでのセンサならば、温度や人の動態などを計測できる。
セキュリティの分野であれば、ウェブサーバやファイアウォールなどのログを分析することもできる。つまり、セキュリティ情報イベント管理(Security Information Event Management:SIEM)としても活用できる。米国の軍人や軍属などに金融商品などを販売するUSAAはSIEMとしてElasticsearchを活用している。
日本企業でも採用
Elasticsearchを中核とするElastic Stackは、「Kibana」「Beats」「Logstash」で構成される。Kibanaは管理ツールであり、Elasticsearchが対象とするデータの可視化や分析などの機能を搭載している。
BeatsはデータソースからElasticsearchにデータを取り込むためだけの収集ツール。システムログを取り込むためのFilebeat、CPUなどの状況を取り込むためのMetricbeat、ネットワークを流れるデータを取り込むPacketbeat、Windowsのイベントログを取り込むWinlogbeat、システム全体の稼働状況を監視するHeartbeatなどがある。
Beatsはデータを転送するだけだが、転送されたデータを変換したり、Elasticsearch以外の任意の場所に格納したりなどのパイプラインデータ処理プログラムがLogstashだ。Logstashは統合基幹業務システム(ERP)などの基幹系システムからデータウェアハウス(DWH)などの情報系システムにデータを抽出、変換して、格納させるETL的な役割といえば、イメージしやすいだろうか。
Logstashには、データを取り込むためのInput、データを解析したり変換したりするためのFilter、格納場所を選んでデータを転送するためのOutputのプラグインが用意されている。これらのプラグインを選ぶことで、さまざまなデータを好きなように取り込み、変換、格納できる。
「Logstashを活用すれば、商品コードを示すデータを商品名とマッチングさせた上でElasticsearchに格納することができる」(日本法人のソリューションアーキテクトを務める大輪弘詳氏)
Kibanaは、Elastic Stackの管理ツールだが、データの可視化や分析などの機能も搭載しており、重宝されている。
ソフトバンクは、サーバ群のリソース使用状況をリアルタイムに見るためにElastic Stackを活用。Elastic StackのダッシュボードからITリソースを動的に割り当てる仕組みを構築している。
日本経済新聞もElastic Stackを活用。電子版の記事検索でElasticsearch、ログ解析でElasticsearchとKibanaを活用している。同紙の場合、クラスタの数は5、ドキュメント総数は50億、データサイズの総量は2Tバイトとしている。
これまでにないホテル運営で有名な星野リゾートもElasticsearchを活用している。従来使っていたビジネスインテリジェンス(BI)ツールはリレーショナルデータベース(RDB)をベースにしていたため、データの量が多くなると、検索の速度に問題が発生していた。スキーマレスのElasticsearchであれば、データがどれだけ増えても、高速に検索できるようになっているというメリットを感じているという。