Taste of Tech Topics

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

Elastic{ON} Tokyo 2016レポート ~ Elastic Stackを用いた異常検知 〜 #elasticon

こんにちは、新人エンジニアの菅野です

今日はElasticの機械学習を用いたの異常検知についてのセッションを聞いてきました。

f:id:acro-engineer:20161215164500j:plain:h400


このセッションで紹介されたのが、新しいプロダクトであるPrelertです。
PrelertについてはPrelertでプログラミングレスな異常検知に挑戦! - Taste of Tech Topics
の記事でも紹介させていただきましたが
2016年9月にElastic社が機械学習を用いた行動予測、異常検知の会社であるprelertを買収しました。

もともと、Elastic Stackでは、大量データに対して
Elasticsearchによる検索(Search)と集約(Aggregation)、あるいはKibanaを用いた可視化(Visualisation)を提供していましたが、
このprelertによって、Machine Learningによる異常検知もできるようになります。

prelertはKibanaのプラグインとして提供され
GUIベースでプログラミングレスに異常検知を行うことができます。

セッションで行われたデモ

セッションではprelertを用いた異常検知2パターンのデモが行われました。

1.ECショップのトランザクション異常検知

f:id:acro-engineer:20161215230836p:plain:h200

 ECサイトの一分毎のトランザクション(購買成立件数)ログデータに対し異常検知を行い、
 購買におけるブラウンアウト(瞬断)を検出するものでした。
 
f:id:acro-engineer:20161215224656p:plain:h400
 
 このデモでは、データの特性(夜の購買が少なく、昼の購買が多い)という
 データのパターンをprelertの学習できちんと認識し、
 起こりうる値からどれだけ離れているかで異常検知ができることが示されていました。
 
 また、トランザクションの異常検知データと、サーバのエラーログの異常検知データとを同時に表示することで
 「DBの異常により、売り上げが異常に低下している」といった原因の分析も可能であることが示されていました。
 
2.Webシステムのセキュリティ異常検知
f:id:acro-engineer:20161215231041p:plain:h200

 次のデモでは、ECサイトのWebサーバのログに異常検知を行い、
 短期間のうちに100回ものPasswordエラーを起こしているユーザを検出するものでした。
 
 検出したユーザに絞り込み、アクセスログの異常検知をおこなうことで、
 不正アクセスしたユーザが、他のユーザがアクセスしない場所にアクセスしていたり、
 大量のデータをWebメールサービスを用いて外部に送付していることが判明しました。

 セキュリティの異常を検出したのちに、そのユーザに絞り込んで異常な行動を検出することで、
 不正アクセスの検知だけでなくその結果どういった行動が行われていたのかまで検知することができることを示したデモでした。

 以下は、発表を聴いての私の感想です。

prelertのすごい点

1.お手軽に異常検知をすることができる
 prelertでは、教師なし学習によりモデルを作成するので、
 GUIで学習対象のデータ、学習対象にかける関数を選択するだけで異常検知をしてくれます。
 どういったものが異常で、どういったものが正常であるのかをユーザがいちいち入力しなくても異常検知を行うことができます。


2.豊富な事前処理関数
 prelertでの機械学習では、事前に実行する関数を選択することで、検知観点を選択することができます。
 例えば、最大値、平均値、普段出てこない文言等、様々な観点での異常検知を行うことができます。

prelertを使ってもまだ困る点

1.原因分析にはデータに対する洞察が必要
 異常検知後の追加の分析では、
 検知した事象から、異常が起きうるであろう部分にアタリを付けて分析する必要があり
 データに対する知識のある人でないと分析が難しいのかなと感じました。

 例えば前述のECサイト異常検知では、
 トランザクションの異常検知から、DBサーバで異常な値が出ているはずだと思いつかない場合には、
 様々なデータに対して、手あたり次第で異常検知を行う必要が出てきそうです。

 この辺りは、異常検知をした後に参照できるようなダッシュボードを自分で用意する必要がありそうです。
 あるいは、Prelertで検知した異常と、他のデータとの相関分析のようなことができれば、問題の検出ができそうだと思いました。
 って言うのは簡単なのですけどね!


そんなprelertですが、現在活発に開発がおこなわれているようです。
現在はβ版であれば触ることができます。

2017年上半期にリリース予定、
2017年3月のElasic{on}サンフランシスコでも大きな発表がなされるようですよ。

これはもうサンフランシスコ、行くしかないですね! 現地でブログを書きます!!

それでは!

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


  • ビッグデータHadoop/Spark、NoSQL)、データ分析(Elasticsearch、Python関連)、Web開発(SpringCloud/SpringBoot、AngularJS)といった最新のOSSを利用する開発プロジェクトに関わりたい。
  • マイクロサービスDevOpsなどの技術を使ったり、データ分析機械学習などのスキルを活かしたい。
  • 社会貢献性の高いプロジェクトや、顧客の価値を創造するようなプロジェクトで、提案からリリースまで携わりたい。
  • 書籍・雑誌等の執筆や、対外的な勉強会の開催・参加を通した技術の発信、社内勉強会での技術情報共有により、エンジニアとして成長したい。

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

【Elastic search 関連】
Elasticsearchを仕事で使いこみたいデータ分析エンジニア募集中! - Acroquest Technology株式会社のエンジニア中途・インターンシップ・契約・委託の求人 - Wantedlywww.wantedly.com

【データ分析】
データ分析案件の急増に伴い実践的なデータ分析エンジニアWanted! - Acroquest Technology株式会社のエンジニア中途・インターンシップ・契約・委託の求人 - Wantedlywww.wantedly.com