Elastic Stack (別名 Elasticsearch、別名 ELK) での機械学習を理解する

Elastic Stack (別名 Elasticsearch、別名 ELK) での機械学習を理解する

Elastic Stack は、非リレーショナル Elasticsearch データベース、Kibana Web インターフェース、データ コレクターとプロセッサ (最も有名な Logstash、さまざまな Beats、APM など) に基づいていることを思い出してください。上に挙げた製品スタック全体への優れた追加機能の 1 つは、機械学習アルゴリズムを使用したデータ分析です。この記事では、これらのアルゴリズムがどのようなものであるかを見ていきます。以下をご覧ください。

機械学習は、フリーミアム Elastic Stack の有料機能であり、X-Pack に含まれています。使用を開始するには、インストール後に 30 日間の試用版を有効にするだけです。試用期間が終了したら、サポートに延長を依頼するか、サブスクリプションを購入することができます。サブスクリプションコストは、データの量ではなく、使用されるノードの数に基づいて計算されます。いいえ、もちろん、データの量は必要なノードの数に影響しますが、それでも、ライセンスに対するこのアプローチは、会社の予算に関してより人道的です。高いパフォーマンスを必要としない場合は、コストを節約できます。

Elastic Stack の ML は C++ で記述されており、Elasticsearch 自体が実行される JVM の外部で実行されます。つまり、プロセス (ちなみに、これは自動検出と呼ばれます) は、JVM が処理しないすべてのものを消費します。デモスタンドではこれはそれほど重要ではありませんが、実稼働環境では ML タスクに個別のノードを割り当てることが重要です。

機械学習アルゴリズムは2つのカテゴリーに分けられます。 сучителем и 教師なしで。 Elastic Stack では、アルゴリズムは「教師なし」カテゴリに属します。による このリンク 機械学習アルゴリズムの数学的装置を見ることができます。

分析を実行するために、機械学習アルゴリズムは Elasticsearch インデックスに保存されたデータを使用します。分析用のタスクは、Kibana インターフェースと API の両方から作成できます。 Kibana を通じてこれを行う場合、知っておく必要のない事項がいくつかあります。たとえば、アルゴリズムが操作中に使用する追加のインデックスなどです。

分析プロセスで使用される追加の指標.ml-state — 統計モデルに関する情報(分析設定)
.ml-anomalies-* — ML アルゴリズムの結果
.ml-notifications — 分析結果に基づいた通知の設定。

Elastic Stack (別名 Elasticsearch、別名 ELK) での機械学習を理解する

Elasticsearch データベースのデータ構造は、インデックスとそこに保存されるドキュメントで構成されます。これをリレーショナル データベースと比較すると、インデックスはデータベース スキーマに、ドキュメントはテーブル内のレコードに相当します。この比較は条件付きであり、Elasticsearch について聞いたことがあるだけの人がさらに詳しい内容を理解しやすくするために提供されています。

Web インターフェース経由と同じ機能が API 経由で利用できるため、概念を明確に理解するために、Kibana 経由で構成する方法を示します。左側のメニューには、新しいジョブを作成できる機械学習セクションがあります。 Kibana インターフェースでは、下の画像のようになります。ここで、各タイプのタスクを分析し、構築できる分析のタイプを示します。

Elastic Stack (別名 Elasticsearch、別名 ELK) での機械学習を理解する

単一メトリック - 1 つのメトリックの分析、複数メトリック - 2 つ以上のメトリックの分析。どちらの場合も、各メトリックは分離された環境で分析されます。つまり、アルゴリズムは、マルチメトリックの場合のように、並列に分析されたメトリックの動作を考慮しません。さまざまなメトリックの相関関係を考慮した計算を実行するには、人口分析を使用できます。高度では、特定のタスク用の追加オプションを使用してアルゴリズムを微調整します。

単一メトリック

ここで実行できる最も簡単なことは、単一のメトリックの変化を分析することです。 「ジョブの作成」をクリックすると、アルゴリズムが異常を探します。

Elastic Stack (別名 Elasticsearch、別名 ELK) での機械学習を理解する

フィールドで アグリゲーション 異常を検索するためのアプローチを選択できます。例えば、 最小値 標準値を下回る値は異常とみなされます。食べる 最大値、高平均、低値、平均、個別 その他。すべての機能の説明を見ることができます リンク.

フィールドで フィールド 分析を実行するドキュメント内の数値フィールドが示されます。

フィールドで バケットスパン — 分析が実行されるタイムライン上の間隔の粒度。自動化を信頼することも、手動で選択することもできます。下の画像は粒度が低すぎる例を示しています。異常を見逃してしまう可能性があります。この設定により、異常に対するアルゴリズムの感度を変更できます。

Elastic Stack (別名 Elasticsearch、別名 ELK) での機械学習を理解する

収集されたデータの期間は、分析の有効性に影響を与える重要な要素です。分析中、アルゴリズムは繰り返し間隔を識別し、信頼区間 (ベースライン) を計算し、異常 (メトリックの通常の動作からの異常な偏差) を識別します。たとえば次のようになります。

小さなデータ セグメントのベースライン:

Elastic Stack (別名 Elasticsearch、別名 ELK) での機械学習を理解する

アルゴリズムが学習するものがある場合、ベースラインは次のようになります。

Elastic Stack (別名 Elasticsearch、別名 ELK) での機械学習を理解する

タスクが開始されると、アルゴリズムは標準からの異常な偏差を識別し、異常の確率によってランク付けします (対応するラベルの色が括弧内に示されます)。

警告(青):25未満
マイナー(黄色): 25~50
メジャー(オレンジ):50~75
クリティカル(赤): 75~100

以下のグラフは、発見された異常の例を示しています。

Elastic Stack (別名 Elasticsearch、別名 ELK) での機械学習を理解する

ここでは、異常の確率を示す数字 94 が表示されています。値が 100 に近いので、異常があることがわかります。グラフの下の列には、そこに出現するメトリック値の確率が 0.000063634% と非常に小さいことが示されています。

異常の検索に加えて、Kibana で予測を実行することもできます。これは基本的な方法で行われ、異常と同じプレゼンテーションから - ボタン 予想 右上隅にあります。

Elastic Stack (別名 Elasticsearch、別名 ELK) での機械学習を理解する

予測は最大8週間先まで行われます。本当にそうしたいとしても、設計上もうそれはできません。

Elastic Stack (別名 Elasticsearch、別名 ELK) での機械学習を理解する

状況によっては、インフラストラクチャ上のユーザー負荷を監視する場合など、予測が非常に役立ちます。

マルチメトリック

Elastic Stack の次の ML 機能、つまり 1 つのバッチで複数のメトリックを分析する機能に進みましょう。しかし、これは、ある指標が別の指標にどのように依存しているかを分析することを意味するものではありません。これは単一メトリックと同じですが、1 つの画面に複数のメトリックが表示されるため、メトリック間の影響を簡単に比較できます。人口セクションでは、ある指標が別の指標にどのように依存しているかの分析について説明します。

Multi Metric の四角をクリックすると、設定ウィンドウが表示されます。詳しく見てみましょう。

Elastic Stack (別名 Elasticsearch、別名 ELK) での機械学習を理解する

まず、データの分析と集計を行うフィールドを選択する必要があります。ここでの集計オプションは、単一メトリック(最大値、高平均、低値、平均、個別 など)。さらに、データはフィールド(フィールド 分割データ)。この例ではフィールドごとに実行しました 出発空港ID。右側のメトリック グラフが複数のグラフとして表示されるようになったことに注意してください。

Elastic Stack (別名 Elasticsearch、別名 ELK) での機械学習を理解する

フィールド 主要分野(影響力のある人物) 発見された異常に直接影響します。デフォルトでは、ここには常に少なくとも 1 つの値が含まれますが、さらに値を追加することもできます。アルゴリズムは分析中にこれらのフィールドの影響を考慮し、最も「影響力のある」値を表示します。

起動すると、Kibana インターフェースに次のようなものが表示されます。

Elastic Stack (別名 Elasticsearch、別名 ELK) での機械学習を理解する

これは、各フィールド値の異常のいわゆるヒートマップです。 出発空港ID、これは 分割データ。単一メトリックと同様に、色は外れ値のレベルを示します。同様の分析は、例えばワークステーション上で、疑わしいほど多くの権限を持つユーザーを追跡するのに便利です。 イベントログの不審なイベントについて Windowsこれもここで収集および分析できます。

ヒート マップの下には異常のリストがあり、それぞれを単一メトリック ビューに切り替えて詳細に分析できます。

人口

さまざまなメトリック間の相関関係における異常を検索するために、Elastic Stack には特殊な Population 分析があります。これを利用すると、たとえばターゲット システムへのリクエスト数が増加したときなど、他のサーバーと比較した任意のサーバーのパフォーマンスの異常値を検索できます。

Elastic Stack (別名 Elasticsearch、別名 ELK) での機械学習を理解する

この図では、Population フィールドは分析されたメトリックが適用される値を指定します。この場合はプロセスの名前です。その結果、各プロセスの CPU 負荷が互いにどのように影響したかがわかります。

分析されたデータのグラフは、単一メトリックの場合と複数メトリックの場合で異なることに注意してください。これは、分析されたデータの値の分布の認識を向上させるために、Kibana で意図的に行われます。

Elastic Stack (別名 Elasticsearch、別名 ELK) での機械学習を理解する

グラフから、プロセスが異常な動作をしたことが明らかです。 ストレス (ちなみに、特別なユーティリティによって生成された)サーバー上 ポイプこの異常現象の発生に影響を与えた(あるいは影響を与えた人物であることが判明した)。

高機能

細かく調整された分析。 Kibana の高度な分析では追加の設定が提供されます。作成メニューの「詳細」タイルをクリックすると、次のようなタブのあるウィンドウが表示されます。タブ ジョブの詳細 意図的に省略されている場合もありますが、分析設定とは直接関係のない基本設定があります。

Elastic Stack (別名 Elasticsearch、別名 ELK) での機械学習を理解する

В 集計カウントフィールド名 オプションで、集計値を含むドキュメントのフィールドの名前を指定できます。この例では、1 分あたりのイベント数です。で 分類フィールド名 特定の変数値を含むドキュメントのフィールド値の名前が示されます。このフィールドにマスクを使用すると、分析されたデータをサブセットに分割できます。ボタンに注目してください 検出器を追加 前の図のとおりです。以下はこのボタンをクリックした結果です。

Elastic Stack (別名 Elasticsearch、別名 ELK) での機械学習を理解する

特定のタスクの異常検出器を構成するための追加の設定ブロックを次に示します。具体的なユースケース(特にセキュリティ関連)については、次の記事で解説する予定です。例えば、 見て 分解されたケースの一つ。これは稀に発生する値の検索に関連しており、実装されています まれな機能.

フィールドで function 特定の機能を選択して異常を検索できます。を除外する 珍しいさらに興味深い機能がいくつかあります。 時刻 и 曜日。これらは、それぞれ 1 日または 1 週間にわたるメトリックの動作の異常を識別します。その他の分析機能 ドキュメントに記載されています.

В フィールド名 分析が実行されるドキュメント フィールドが示されます。 フィールド名別 ここで指定されたドキュメント フィールドの個々の値ごとに分析結果を分離するために使用できます。記入すると オーバーフィールド名 上で説明した人口分析が得られます。値を指定する場合 パーティションフィールド名の場合、このドキュメント フィールドの値ごとに個別のベースラインが計算されます (たとえば、サーバーの名前やサーバー上のプロセスが値として機能する場合があります)。で 頻繁に除外する 選択できます または なしこれは、頻繁に発生するドキュメント フィールド値を除外 (または含める) することを意味します。

この記事では、Elastic Stack における機械学習の機能について非常に簡潔に説明しようとしましたが、舞台裏ではまだ多くの詳細が残されています。 Elastic Stack を利用して解決できたケースや、Elastic Stack をどのようなタスクに使用したかをコメント欄で教えてください。お問い合わせには、Habrのプライベートメッセージまたは ウェブサイト上のフィードバックフォーム.

出所: habr.com

DDoS 保護機能を備えた信頼性の高いサイト用ホスティング、VPS VDS サーバーを購入する 🔥 DDoS攻撃対策付きの信頼性の高いウェブサイトホスティング、VPS/VDSサーバーを購入しましょう | ProHoster