カテゴリ取得API

1つ以上のカテゴリの異常検出ジョブ結果を取得します。

リクエスト

GET _ml/anomaly_detectors/<job_id>/results/categories

GET _ml/anomaly_detectors/<job_id>/results/categories/<category_id>

前提条件

monitor_ml クラスター権限が必要です。この権限は machine_learning_user ビルトインロールに含まれています。

説明

categorization_field_name がジョブ設定で指定されている場合、結果カテゴリの定義を表示できます。カテゴリ定義は、一致した一般的な用語を説明し、一致した値の例を含みます。

カテゴリ分析からの異常結果は、バケット、インフルエンサー、およびレコード結果として利用可能です。たとえば、結果は16:45にログメッセージカテゴリ11の異常なカウントがあったことを示すかもしれません。その後、そのカテゴリの説明と例を調べることができます。詳細については、ログメッセージの分類を参照してください。

パスパラメータ

  • <job_id>
  • (必須、文字列) 異常検出ジョブの識別子。
  • <category_id>
  • (オプション、長整数) ジョブ内で一意のカテゴリの識別子。カテゴリIDまたは partition_field_value を指定しない場合、APIはすべてのカテゴリに関する情報を返します。partition_field_value のみを指定した場合、指定されたパーティションのすべてのカテゴリに関する情報を返します。

クエリパラメータ

  • from
  • (オプション、整数) 指定された数のカテゴリをスキップします。デフォルトは 0 です。
  • partition_field_value
  • (オプション、文字列) 指定されたパーティションのカテゴリのみを返します。
  • size
  • (オプション、整数) 取得するカテゴリの最大数を指定します。デフォルトは 100 です。

リクエストボディ

リクエストボディ内で partition_field_value クエリパラメータを指定することもできます。

  • page
  • page のプロパティ
    • from
    • (オプション、整数) 指定された数のカテゴリをスキップします。デフォルトは 0 です。
    • size
    • (オプション、整数) 取得するカテゴリの最大数を指定します。デフォルトは 100 です。

レスポンスボディ

APIは、次のプロパティを持つカテゴリオブジェクトの配列を返します:

  • category_id
  • (符号なし整数) カテゴリの一意の識別子。category_id は、パーティションごとの分類が有効になっている場合でも、ジョブレベルで一意です。
  • examples
  • (配列) カテゴリに一致した実際の値の例のリスト。
  • grok_pattern
  • [プレビュー] この機能は技術プレビュー中であり、将来のリリースで変更または削除される可能性があります。Elasticは問題を修正するために取り組みますが、技術プレビューの機能は公式GA機能のサポートSLAの対象ではありません。 (文字列) カテゴリに一致するメッセージからフィールドを抽出するためにLogstashまたはインジェストパイプラインで使用できるGrokパターン。このフィールドは実験的であり、将来のリリースで変更または削除される可能性があります。見つかったGrokパターンは最適ではありませんが、手動調整の良い出発点となることがよくあります。
  • job_id
  • (文字列) 異常検出ジョブの識別子。
  • max_matching_length
  • (符号なし整数) カテゴリに一致したフィールドの最大長。値は、分析されていない類似フィールドの一致を可能にするために10%増加します。

  • partition_field_name

  • (文字列) パーティションごとの分類が有効になっている場合、このプロパティは分類に使用されるフィールドを識別します。パーティションごとの分類が無効になっている場合は存在しません。
  • partition_field_value
  • (文字列) パーティションごとの分類が有効になっている場合、このプロパティはカテゴリの partition_field_name の値を識別します。パーティションごとの分類が無効になっている場合は存在しません。
  • regex
  • (文字列) カテゴリに一致する値を検索するために使用される正規表現。
  • terms
  • (文字列) カテゴリの値に一致する一般的なトークンのスペース区切りリスト。
  • num_matches
  • (長整数) このカテゴリに一致したメッセージの数。この数は、ジョブ _flush または _close の後に最新の正確なカウントが保証されます。
  • preferred_to_categories
  • (リスト) この現在のカテゴリが包含する category_id エントリのリスト。分類器によって処理される新しいメッセージは、このカテゴリに一致し、このリスト内のカテゴリには一致しません。このリストは、ジョブ _flush または _close の後に最新の正確なカテゴリリストが保証されます。

Python

  1. resp = client.ml.get_categories(
  2. job_id="esxi_log",
  3. page={
  4. "size": 1
  5. },
  6. )
  7. print(resp)

Ruby

  1. response = client.ml.get_categories(
  2. job_id: 'esxi_log',
  3. body: {
  4. page: {
  5. size: 1
  6. }
  7. }
  8. )
  9. puts response

Js

  1. const response = await client.ml.getCategories({
  2. job_id: "esxi_log",
  3. page: {
  4. size: 1,
  5. },
  6. });
  7. console.log(response);

コンソール

  1. GET _ml/anomaly_detectors/esxi_log/results/categories
  2. {
  3. "page":{
  4. "size": 1
  5. }
  6. }

Js

  1. {
  2. "count": 11,
  3. "categories": [
  4. {
  5. "job_id" : "esxi_log",
  6. "category_id" : 1,
  7. "terms" : "Vpxa verbose vpxavpxaInvtVm opID VpxaInvtVmChangeListener Guest DiskInfo Changed",
  8. "regex" : ".*?Vpxa.+?verbose.+?vpxavpxaInvtVm.+?opID.+?VpxaInvtVmChangeListener.+?Guest.+?DiskInfo.+?Changed.*",
  9. "max_matching_length": 154,
  10. "examples" : [
  11. "Oct 19 17:04:44 esxi1.acme.com Vpxa: [3CB3FB90 verbose 'vpxavpxaInvtVm' opID=WFU-33d82c31] [VpxaInvtVmChangeListener] Guest DiskInfo Changed",
  12. "Oct 19 17:04:45 esxi2.acme.com Vpxa: [3CA66B90 verbose 'vpxavpxaInvtVm' opID=WFU-33927856] [VpxaInvtVmChangeListener] Guest DiskInfo Changed",
  13. "Oct 19 17:04:51 esxi1.acme.com Vpxa: [FFDBAB90 verbose 'vpxavpxaInvtVm' opID=WFU-25e0d447] [VpxaInvtVmChangeListener] Guest DiskInfo Changed",
  14. "Oct 19 17:04:58 esxi2.acme.com Vpxa: [FFDDBB90 verbose 'vpxavpxaInvtVm' opID=WFU-bbff0134] [VpxaInvtVmChangeListener] Guest DiskInfo Changed"
  15. ],
  16. "grok_pattern" : ".*?%{SYSLOGTIMESTAMP:timestamp}.+?Vpxa.+?%{BASE16NUM:field}.+?verbose.+?vpxavpxaInvtVm.+?opID.+?VpxaInvtVmChangeListener.+?Guest.+?DiskInfo.+?Changed.*"
  17. }
  18. ]
  19. }