Үндсэн агуулга руу алгасах

Cookie

Сайтаа сайжруулж, танд тохирох хямдрал, санал харуулахад тусална. Дэлгэрэнгүй

BD Systems AsiaАлбан ёсны түншBitdefender Country Partner (шинэ цонхонд)

Security Data Lake-ийн Search Scripting API-г хэрхэн ашиглах вэ?

Bitdefender-ийн албан ёсны баримтаас орчуулавАнгли эх (EN) · Орчуулсан: 2026.11.10

Энэ хуудсыг AI-аар орчуулж, автоматаар шалгасан. Нарийн тохиргоо хийхээсээ өмнө англи эхтэй тулгаж болно.

Scripting API нь API дуудлагаар хайлт болон aggregation (нэгтгэл) функцэд хялбар хандах зорилгоор бүтээгдсэн. Scripting API нь нэг дор зөвхөн нэг өгөгдлийн багц, нэг мессежийн жагсаалт, эсвэл нэг aggregation-ий үр дүнг өгдөг. Хүсэлтийн ихэнх параметр нь заавал биш бөгөөд ингэснээр процесс бүр хялбар болдог.

Хариултын контентын төрөл нь өгсөн accept header-ээс хамаарна. Дэмжигдэх утгууд:

  • text/plain
  • text/csv
  • application/json

Plaintext болон CSV хариултын формат өөр боловч агуулах өгөгдлийн хэмжээ ижил. Харин JSON хариулт нь schema property дахь баганын талаарх болон metadata property дахь хүчинтэй хугацааны завсрын талаарх нэмэлт мэдээллийг агуулна.

Мессеж хайх (Search Messages)

Энэ endpoint нь хайлтын хуудасны мессежүүдэд шууд хандах боломж олгоно. Мессежүүд анхдагчаар timestamp-аар эрэмбэлэгдэж, хамгийн сүүлийнх нь эхэнд байна. Ердийн хэрэглээ нь сүүлийн X ширхэг (анхдагч нь 10) мессежийг авах бөгөөд хариуд аль талбар хамааралтайг та тодорхойлно.

GET https://example.org/api/search/messages?fields=source,
http_method,http_response_code,took_ms
POST https://example.org/api/search/messages
{
    "query": "http_method:POST",
    "streams": ["620f890b70fb980467aca611"],
    "fields": [
        "timestamp",
        "source",
        "http_method",
        "http_response_code",
        "took_ms"
    ],
    "from": 2,
    "size": 15,
    "timerange": {
        "type": "keyword",
        "keyword": "last five minutes"
    },
    "sort": "took_ms",
    "sort_order": "desc"
}

GET хүсэлт нь POST хүсэлттэй ижил параметр хүлээн авна. Цорын ганц ялгаа нь зөвхөн POST хүсэлт хугацааны завсар хүлээн авдаг. Хугацааны завсрын параметр нь relative, absolute, keyword гэсэн утгуудыг хүлээн авна. Дэлгэрэнгүй мэдээллийг time frame selector-ийн талаарх энэ нийтлэлээс үзнэ үү.

Тэмдэглэл: streams, sources, inputs endpoint-уудын анхдагч утга нь title байна. ID-г харуулахын тулд нэрний ард .id залгана.

Хүсэлт ба хариултын жишээ

Дараах нь хүсэлт, хариултын зарим жишээ. accept header дахь text/csv, text/plain, application/json утгууд нь хариултын форматыг тодорхойлно.

➜  curl  -H 'Accept: text/csv' -H 'X-Requested-By: cli'  -u username:password 'https://example.org/api/search/messages?fields=source,http_method,http_response_code,took_ms'
"field: source","field: http_method","field: http_response_code","field: took_ms"
"example.org","GET","200","36"
"example.org","GET","200","36"
"example.org","GET","200","48"
"example.org","PUT","200","129"
"example.org","POST","201","134"
"example.org","POST","201","134"
"example.org","GET","200","52"
"example.org","GET","200","48"
"example.org","GET","200","48"
"example.org","GET","200","63"
➜  curl  -H 'Accept: text/plain' -H 'X-Requested-By: cli'  -u username:password 'https://example.org/api/search/messages?fields=source,http_method,http_response_code,took_ms'
┌────────────────────────┬────────────────────────┬────────────────────────┬───────────────────────┐
│field: source           │field: http_method      │field:                  │field: took_ms         │
│                        │                        │http_response_code      │                       │
├────────────────────────┼────────────────────────┼────────────────────────┼───────────────────────┤
│example.org             │GET                     │200                     │56                     │
│example.org             │GET                     │200                     │45                     │
│example.org             │GET                     │200                     │44                     │
│example.org             │GET                     │200                     │56                     │
│example.org             │GET                     │200                     │42                     │
│example.org             │DELETE                  │204                     │89                     │
│example.org             │DELETE                  │204                     │89                     │
│example.org             │GET                     │200                     │38                     │
│example.org             │GET                     │200                     │38                     │
│example.org             │DELETE                  │204                     │95                     │
└────────────────────────┴────────────────────────┴────────────────────────┴───────────────────────┘%
➜  curl  -H 'Accept: application/json' -H 'X-Requested-By: cli'  -u username:password 'https://example.org/api/search/messages?fields=source,http_method,http_response_code,took_ms'
{
  "schema": [
    {
      "column_type": "field",
      "type": "unknown",
      "field": "source",
      "name": "field: source"
    },
    {
      "column_type": "field",
      "type": "string",
      "field": "http_method",
      "name": "field: http_method"
    },
    {
      "column_type": "field",
      "type": "unknown",
      "field": "http_response_code",
      "name": "field: http_response_code"
    },
    {
      "column_type": "field",
      "type": "numeric",
      "field": "took_ms",
      "name": "field: took_ms"
    }
  ],
  "datarows": [
    [
      "example.org",
      "GET",
      200,
      50
    ],
    [
      "example.org",
      "GET",
      200,
      50
    ],
    [
      "example.org",
      "GET",
      200,
      55
    ],
    [
      "example.org",
      "GET",
      200,
      63
    ],
    [
      "example.org",
      "GET",
      200,
      63
    ],
    [
      "example.org",
      "GET",
      200,
      63
    ],
    [
      "example.org",
      "GET",
      200,
      37
    ],
    [
      "example.org",
      "GET",
      200,
      46
    ],
    [
      "example.org",
      "GET",
      200,
      59
    ],
    [
      "example.org",
      "GET",
      200,
      52
    ]
  ],
  "metadata": {
    "effective_timerange": {
      "from": "2023-04-05T09:08:23.193Z",
      "to": "2023-04-06T09:08:23.193Z",
      "type": "absolute"
    }
  }
}

Aggregation (Нэгтгэл)

Энэ endpoint нь хэд хэдэн бүлэглэлт болон metric-тэй нэг aggregation-ийг ажиллуулах боломж олгоно. Жишээ нь HTTP хүсэлттэй мессежүүдийг HTTP method болон хариултын кодоор бүлэглэж болно. Мөн эдгээр бүлгүүдийн хамгийн бага, хамгийн их хариу өгөх хугацааг олж болно.

GET болон POST хэлбэрийн хүсэлт ижил өгөгдөл авна. POST хүсэлт нь GET хэлбэрт байхгүй нэмэлт тохиргоо хийх боломж олгоно. Жишээ нь POST хүсэлтээр бүлэглэх aggregation-ы limit болон sort-ыг тодорхойлж болно.

GET https://example.org/api/search/aggregate?groups=http_method&metrics=avg:took_ms&metrics=count
POST https://example.org/api/search/aggregate
{
    "query": "source:example.org",
    "streams": [
        "620f890b70fb980467aca611"
    ],
    "timerange": {
        "type": "keyword",
        "keyword": "last five minutes"
    },
    "group_by": [
        {
            "field": "http_method"
        },
        {
            "field": "http_response_code",
            "limit": 2
        }
    ],
    "metrics": [
        {
            "function": "min",
            "field": "took_ms"
        },
        {
            "function": "max",
            "field": "took_ms",
            "sort": "desc"
        }
    ]
}

Metric-үүдийг function:field_name хос хэлбэрээр тодорхойлно. POST хүсэлтээр metric-үүдийг sort-той нь нэмж тодорхойлж болно. POST хүсэлтэд GET хүсэлтээс илүү их мэдээлэл оруулах боломжтой.

Percentile metric-ийг дараах байдлаар нэмж тохируулж болно:

{
        "function": "percentile",
        "field": "took_ms",
        "configuration":
        {"percentile": 90}
}

Бусад боломжит metric функцүүд: average, count, latest, max, min, percentile, stdDev, sum, sumOfSquares, variance.

Хүсэлт ба хариултын жишээ

Дараах нь aggregation-ий хүсэлт, хариултын зарим жишээ. Accept header дахь text/plain, text/csv, application/json утгууд нь хариултын форматыг тодорхойлно.

➜  curl  -H 'Accept: text/plain' -H 'X-Requested-By: cli'  -u username:password 'https://example.org/api/search/aggregate?groups=http_method&metrics=avg:took_ms&metrics=count'
┌────────────────────────┬────────────────────────┬───────────────────────┐
│grouping: http_method   │metric: avg(took_ms)    │metric: count()        │
├────────────────────────┼────────────────────────┼───────────────────────┤
│GET                     │84.59519448510214       │3326553                │
│DELETE                  │96.02973055642204       │330199                 │
│POST                    │170.11398232130765      │329323                 │
│PUT                     │132.19959919839678      │154690                 │
└────────────────────────┴────────────────────────┴───────────────────────┘
➜  curl  -H 'Accept: text/csv' -H 'X-Requested-By: cli'  -u username:password 'https://example.org/api/search/aggregate?groups=http_method&metrics=avg:took_ms&metrics=count'
"grouping: http_method","metric: avg(took_ms)","metric: count()"
"GET","84.58997204888469","3326522"
"DELETE","96.02450487553752","330220"
"POST","170.08947537817832","329342"
"PUT","132.2030966157029","154685"
➜ curl  -H 'Accept: application/json' -H 'X-Requested-By: cli'  -u username:password 'https://example.org/api/search/aggregate?groups=http_method&metrics=avg:took_ms&metrics=count'
{
  "schema": [
    {
      "column_type": "grouping",
      "type": "string",
      "field": "http_method",
      "name": "grouping: http_method"
    },
    {
      "column_type": "metric",
      "type": "numeric",
      "function": "avg",
      "field": "took_ms",
      "name": "metric: avg(took_ms)"
    },
    {
      "column_type": "metric",
      "type": "numeric",
      "function": "count",
      "name": "metric: count()"
    }
  ],
  "datarows": [
    [
      "GET",
      84.6043288978779,
      3326528
    ],
    [
      "DELETE",
      96.02355285311111,
      330236
    ],
    [
      "POST",
      170.09012904205252,
      329350
    ],
    [
      "PUT",
      132.20231038249952,
      154693
    ]
  ],
  "metadata": {
    "effective_timerange": {
      "from": "2023-04-05T09:14:39.731Z",
      "to": "2023-04-06T09:14:39.731Z",
      "type": "absolute"
    }
  }
}

Энэ хуудсанд гарсан нэр томъёо

Endpoint
Хамгаалж буй компьютер, сервер, виртуал машин
Асуулт байна уу?AI туслах GravityZone-ийн монгол баримтаас хайна. Нарийн асуудлыг таны гэрээт борлуулагч, Bitdefender Mongolia-ийн инженер шийднэ.