你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure Monitor 日志中的查询包

查询包将在 Azure Monitor 中充当日志查询的容器。 借此,你可以保存日志查询,并在 Log Analytics 中跨工作区和其他上下文共享它们。

权限

可以在 Azure 门户中查看查询包时设置其权限。 你需要拥有以下权限才能使用查询包:

  • 读取者:用户可以查看和运行查询包中的所有查询。

  • 参与者:用户可以修改现有查询,以及向查询包中添加新查询。

    重要

    当用户需要修改或添加查询时,请始终授予用户对 DefaultQueryPack 的参与者权限。 否则,用户将无法将任何查询保存到订阅,包括保存在其他查询包中。

查看查询包

可以在 Azure 门户中通过“Log Analytics 查询包”菜单查看和管理查询包。 选择一个查询包可查看和编辑其权限。 本文介绍了如何使用 API 创建查询包。

Screenshot that shows query packs.

默认查询包

Azure Monitor 会在你保存第一个查询时自动在名为 LogAnalyticsDefaultResources 的资源组中的每个订阅中创建一个名为 DefaultQueryPack 的查询包。 你可以将查询保存到此查询包,或者创建其他查询包,这具体取决于你的需求。

使用多个查询包

对于大多数用户而言,默认查询包就足以保存和重复使用查询。 你可能需要为组织中的用户创建多个查询包,例如,为了在不同的 Log Analytics 会话中加载不同的查询集并为不同的查询集合提供不同的权限。

创建新的查询包时,可以添加标记,以便根据业务需求对查询进行分类。 例如,可以标记某个查询包,以将它关联到组织中的特定部门,或者关联到包含的查询所要解决的问题的严重性。 通过使用标记,便可以创建用于不同用户集和不同情况的各种查询集。

要将查询包添加到 Log Analytics 工作区:

  1. 打开 Log Analytics 并选择右上角的“查询”。
  2. 在“查询”对话框的左上角,单击“查询包”旁边的“选择查询包“选择 0”。
  3. 选择要添加到工作区的查询包。

Screenshot that shows the Select query packs page in Log Analytics, where you can add query packs to a Log Analytics workspace.

重要

最多可将五个查询包添加到 Log Analytics 工作区。

创建查询包

你可以使用 REST API 或者通过 Azure 门户中的“Log Analytics 查询包”窗格创建查询包。 若要在门户中打开“Log Analytics 查询包”窗格,请依次选择“所有服务”>“其他”。

注意

查询包保存的查询不会使用客户管理的密钥进行加密。 改为在保存查询时选择“ 另存为旧查询 ”,以使用客户管理的密钥对其进行保护。

创建令牌

你必须拥有用于针对 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"
            ]
        }
    }
}

查询包中的每个查询都具有以下属性:

属性 说明
displayName Log Analytics 中为每个查询列出的显示名称。
description Log Analytics 中为每个查询显示的查询说明。
body 用 Kusto 查询语言编写的查询。
related 查询的相关类别、资源类型和解决方案。 供用户用于在 Log Analytics 中进行分组和筛选以帮助找到其查询。 每个查询可以在每个类型中最多有 10 个值, 用于检索 https://api.loganalytics.io/v1/metadata?select=resourceTypes、solutions 和 categories 中的允许的值。
tags 其他可供用户在 Log Analytics 中进行排序和筛选的标记。 在对查询进行分组和筛选时,每个标记都将添加到类别、资源类型和解决方案。

创建请求

请使用以下请求通过 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

通过一个可以提交 REST API 请求的工具(例如 Fiddler 或 Postman),使用上一部分所述的有效负载来提交请求。 将在有效负载中生成并返回查询 ID。

更新查询包

若要更新查询包,请使用更新的有效负载提交以下请求。 需在此命令中指定查询包 ID。

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

后续步骤

请参阅在 Azure Monitor Log Analytics 中使用查询,了解用户如何在 Log Analytics 中与查询包交互。