Taste of Tech Topics

Acroquest Technology株式会社のエンジニアが書く技術ブログ

Elastic Stack Advent Calendar 2020(2020年のElastic Stackを振り返る)

こんにちは、アクロクエストテクノロジー株式会社でElastic Stackのコンサルティング業務を担当している吉岡です。本記事は、Elastic Stack (Elasticsearch) Advent Calendar 2020 の1日目の内容になります。

目次は以下です。

Elastic Stackリリース概要

  • Elastic Stack Version 7.6.0リリース(2020年2月)
  • Elastic Stack Version 7.7.0リリース(2020年5月)
  • Elastic Stack Version 7.8.0リリース(2020年6月)
  • Elastic Stack Version 7.9.0リリース(2020年8月)
  • Elastic Stack Version 7.10.0リリース(2020年11月)

2020年1月時点での最新バージョンはVer.7.5.1、2020年12月1日時点での最新版はVer.7.10.0です。メジャーバージョンは変わっていないので、たった5回マイナーバージョンアップしただけのように見えますが、マイナーチェンジとは思えない多くの機能が盛り込まれています。

Elastic Stackのユースケース

Elastic Stackは、Search(検索)、Observe(ログ監視)、Protect(セキュリティ)という3つのユースケースで利用されます。以降は、ユースケース別に特徴的な機能強化/新機能をまとめてみます。

■Search(1)検索機能

検索の高速化

  • Ver.7.0で一部のクエリに導入されたblock-max WANDが、Ver.7.6では日付や数値のソート処理にも適用されました。結果、ソート付きクエリのパフォーマンスが10倍以上になりました。Elasticsearchの根幹である検索が速くなるのは、クエリを利用するKibanaや各種アプリにとっても嬉しいですね。

ヒープメモリ使用量の大幅削減(同時検索性能の向上)

  • セグメント内のTerm Indexはすべての検索可能フィールドの情報を含みますが、相対的に「_id」フィールドの占めるサイズが大きくなります。Ver.7.7では「_id」のTerm Indexがヒープからディスクへ移動。ヒープメモリ使用量を大幅に削減しました。その結果、Ver.7.6以前と7.7以降ではクエリの同時検索性能が大きく改善しています。

非同期検索のサポート

  • Elasticsearchは高速検索が求められるケースでよく利用されますが、高速検索を必要としないユースケースも存在します。例えば、大量データをフィルタリングなしで集計するような重いバッチ統計処理であったり、安価なストレージ(HDD)を搭載したDataNodeに対する検索などです。Ver.7.7で登場した非同期検索は、これらのユースケースに最適です。
  • 非同期検索のタイムアウトはデフォルトで5日間(長い!)。クエリが完了しなくても途中までの結果を部分的に取得することも可能。ちなみに、Kibana Ver.7.7から、DashboardとDiscoverは非同期検索に対応しています。(一定時間内にクエリが完了しないと、処理が完了するまで非同期検索を続けるかどうかの確認ダイアログが表示される)

■Search(2)エンタープライズ検索

エンタープライズ検索ソリューションの整理

  • Ver.7.6において、SaaSサービス検索を実現する「Enterprise Search」を「Workplace Search」に名称変更。
  • エンタープライズ検索のソリューション名を「Elastic Enterprise Search」とし、これまでバラバラだった3つの製品をElastic Enterprise Searchの下に位置付けるように変更。(ようやくElasticの検索製品群がきれいに整理されました)

- App Search(アプリ検索)
- Site Search(Webサイト検索)
- Workplace Search(SaaSサービス検索)

Enterprise SearchがKibana UIと統合

  • Kibana Ver.7.9から、Enterprise SearchがKibana UIから利用可能になりました。(Kibanaのメニューがさらに縦長に・・・)

■Observe(1)ログ監視/可視化

新アラートフレームワークの統合

  • これまでElastic StackのAlertingはすべてWatcherが担っていました。が、利用した方は分かると思いますが、シンプルな閾値通知以外は複雑なJsonを実装する必要があり、生産性も保守性も高くありません。そこで、Kibanaに新しいアラートフレームワークが導入されました。このアラートフレームワークは、Kibanaの各種機能と統合され、SIEM、APM、Metrics、Uptimeなどの各機能画面からアラートをUIから簡易に作成することができるため非常に便利です。

ダッシュボード連携機能

  • Kibana Ver.7.8でダッシュボード間のドリルダウン機能が実装され、複数ダッシュボードを活用したデータ分析が容易になりました。また、Ver.7.10ではドリルダウン機能にWebアプリへのURL連携機能が追加されました。

■Observe(2)機械学習による異常検知

教師あり機械学習の強化

  • これまではモデル構築/評価までしか対応できませんでしたが、Ver.7.6で「Inference Processor」が実装され、推論も可能になりました。例えば、Ver.7.6で標準搭載の109言語に対応した「言語識別モデル」を利用すると、多言語のテキストデータをElasticsearchに登録するタイミングで言語を推論し、言語毎に別のインデックスに登録するなどが非常に簡単に実現できます。

サービスヘルス監視機能

  • Ver.7.8から、Elastic APM機械学習が算出するヘルス指標を各種サービスマップに追加する機能が新規追加。

■Protect(1)セキュリティ分析

プレビルド検知ルール

  • Elastic SIEMはVer.7.6から大きく進化します。このバージョンでは機械学機能が統合されたSIEM検知エンジンおよびMITRE ATT&CK™ナレッジベース準拠のプレビルド検知ルールがリリース。クエリ/モデルベースの異常検知によりマルウェア等の自動検知ができるようになりました。以降、バージョンアップの度に様々なルールが追加され、Ver.7.10時点で316個のプレビルドルールが搭載されています。

ケースマネジメント機能

  • SIEMのTimeline機能で脅威の調査を行い、必要に応じてKibanaから外部のインシデント管理システムに起票や更新ができます。Ver.7.7では対応ツールはServiceNowITSMだけですが、以降のバージョンでJIRA/IBM Resilientにも対応します。

Elastic Agent

既存のBeatsの統合エージェントとして、Ver.7.9からElastic Agentが導入されました。Elastic AgentはElastic Securityの要となる重要機能で、3つの特徴があります。

  1. セットアップコストが低い:1種類のエージェントで40種類以上のデータを収集可能であり、1コマンドでセットアップ可能(収集データに合わせて必要ファイルを自動ダウンロード)
  2. メンテナンスコストが低い:全てのエージェントをKibanaで一元管理可能であり、Kibanaからエージェントのバージョンアップ/設定変更(例:取得データの追加)が可能
  3. データ加工処理を自動実行: データ送信時にElastic Common Schemaへ自動でデータ加工し、多様なデータソースを横断的に検索可能

Endpoint Securityの一部がBASICライセンスで利用可能に

  • Ver.7.9から、Endpoint Securityの一部がBASICライセンスで利用可能になりました。

Event Query Language(EQL)の導入

  • Ver.7.9でセキュリティイベント検索用言語としてEQLを導入。EQLは時系列の複数ドキュメントに跨った条件を検索することができ、サイバー攻撃をしかけるマルウェア等の特徴的な活動をルール化/検知が可能になります。Ver.7.10では検知ルールの定義にEQLがサポートされ、柔軟に検知ルールをカスタマイズすることができます。

まとめ

2020年のElastic Stackを振り返って、特徴的な機能強化/新機能をピックアップしてみました。Search(検索)、Observe(ログ監視)、Protect(セキュリティ)、3つのユースケースが満遍なく強化されていますが、特にセキュリティに関しては機能追加のスピードが速く、目が離せません。

Elastic Stack

Acroquest Technologyでは、キャリア採用を行っています。

  • ディープラーニング等を使った自然言語/画像/音声/動画解析の研究開発
  • Elasticsearch等を使ったデータ収集/分析/可視化
  • マイクロサービス、DevOps、最新のOSSを利用する開発プロジェクト
  • 書籍・雑誌等の執筆や、社内外での技術の発信・共有によるエンジニアとしての成長

 
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。

【データ分析】
Kaggle Masterと働きたい尖ったエンジニアWanted! - Acroquest Technology株式会社のデータサイエンティストの求人 - Wantedlywww.wantedly.com