Azure 監視器記錄檔中的查詢套件 (預覽)

查詢套件是 Resource Manager 物件,可作為 Azure 監視器中記錄查詢的容器,以提供儲存記錄查詢的方法,並在 Log Analytics 中的多個工作區和其他內容之間共用記錄查詢。

視圖查詢套件

您可以從 Log Analytics 的 [查詢套件 ] 功能表中,查看並管理 Azure 入口網站中的查詢套件。 選取查詢套件以查看和編輯其許可權。 如需使用 API 建立查詢套件的詳細資訊,請參閱下文。

視圖查詢套件

權限

當您在 Azure 入口網站中查看查詢套件時,可以設定該查詢套件的許可權。 使用者需要下列許可權才能使用查詢套件:

  • 讀者 -使用者可以查看並執行查詢套件中的所有查詢。
  • 參與者 -使用者可以修改現有的查詢,並將新的查詢加入至查詢套件。

預設查詢套件

儲存第一個查詢時,會在名為 LogAnalyticsDefaultResources 的資源群組中的每個訂用帳戶中,自動建立稱為 DefaultQueryPack 的查詢套件。 您可以在此查詢套件中建立查詢,或根據您的需求建立額外的查詢套件。

使用多個查詢套件

單一預設查詢套件將足以讓大部分的使用者儲存和重複使用查詢。 不過,您可能會想要為組織中的使用者建立多個查詢套件,包括在不同的 Log Analytics 會話中載入不同的查詢集,以及為不同的查詢集合提供不同的許可權。

當您使用 API 建立新的查詢套件時,您可以根據您的商務需求,加入可分類查詢的標記。 例如,您可以標記查詢套件,使其與組織中的特定部門產生關聯,或將包含的查詢所要解決的問題嚴重性標示為相關。 這可讓您針對不同的使用者集合和不同的情況,建立一組不同的查詢。

查詢套件定義

每個查詢套件都是在 JSON 檔案中定義,其中包含一個或多個查詢的定義。 每個查詢都是由區塊表示,如下所示:

{
    "properties":
       {
        "displayName": "Query name that will be displayed in the UI",
        "description": "Query description that will be displayed in the UI",
        "body": "<<query text, standard KQL code>>",
        "related": {
            "categories": [
                "workloads"
            ],
            "resourceTypes": [
                "microsoft.insights/components"
            ],
            "solutions": [
                "logmanagement"
            ]
        },
        "tags": {
            "Tag1": [
                "Value1",
                "Value2"
            ]
        },
   }
}

查詢屬性

查詢套件中的每個查詢都有下列屬性。

屬性 描述
displayName 在 Log Analytics 中針對每個查詢列出的顯示名稱。
description 每個查詢的 Log Analytics 中所顯示的查詢描述。
body 以 KQL 撰寫的查詢。
相關 查詢的相關類別、資源類型和解決方案。 用於使用者的 Log Analytics 中進行群組和篩選,以協助找出其查詢。 每個查詢最多可以有10個型別。 從 https://api.loganalytics.io/v1/metadata?select=resourceTypes 、解決方案、類別取出允許的值。
tags 使用者用來排序和篩選 Log Analytics 中的其他標記。 群組和篩選查詢時,每個標記都會加入至類別目錄、資源類型和方案。

建立查詢套件

您可以在 Log Analytics 查詢套件分頁的 Azure 入口網站中建立查詢套件,也可以使用 REST API。

建立權杖

您需要權杖以驗證 API 要求。 有多種方法可取得權杖,包括使用 armclient

首先,使用下列命令登入 Azure:

armclient login

然後使用下列命令建立權杖。 權杖會自動複製到剪貼簿,讓您可以將它貼到另一個工具中。

armclient token

建立承載

要求的承載是定義一或多個查詢的 JSON,以及應儲存查詢套件的位置。 查詢套件的名稱是在下一節所述的 API 要求中指定。

{
    "location": "eastus",
    "properties":
    {
        "displayName": "Query name that will be displayed in the UI",
        "description": "Query description that will be displayed in the UI",
        "body": "<<query text, standard KQL code>>",
        "related": {
            "categories": [
                "workloads"
            ],
            "resourceTypes": [
                "microsoft.insights/components"
            ],
            "solutions": [
                "logmanagement"
            ]
        },
        "tags": {
            "Tag1": [
                "Value1",
                "Value2"
            ]
        }
    }
}

建立要求

使用下列要求,利用 REST API 建立新的查詢套件。 要求應使用持有人權杖授權。 內容類型應該是 application/json。

POST https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/Microsoft.Insights/querypacks/my-query-pack?api-version=2019-09-01-preview

使用可提交 REST API 要求(例如 Fiddler 或 Postman)來提交要求的工具,並使用上一節所述的承載來提交要求。 將會產生查詢識別碼,並在裝載中傳回。

更新查詢套件

若要更新查詢套件,請使用更新的承載提交下列要求。 此命令需要查詢套件識別碼。

POST https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/Microsoft.Insights/querypacks/my-query-pack/queries/query-id/?api-version=2019-09-01-preview

下一步