使用 Azure 数据资源管理器查询 Azure Monitor 中的数据
Azure 数据资源管理器支持在 Azure 数据资源管理器、Application Insights (AI) 资源和 Log Analytics (LA) 工作区之间跨服务查询。 你可使用 Azure 数据资源管理器查询工具和在跨服务查询中查询 Log Analytics 工作区或 Application Insights 资源。 本文介绍如何创建跨服务查询,以及如何将 Log Analytics 工作区或 Application Insights 资源添加到 Azure 数据资源管理器 Web UI。
Azure 数据资源管理器跨服务查询流:
将 Log Analytics 工作区/Application Insights 资源添加到 Azure 数据资源管理器客户端工具
将 Log Analytics 工作区或 Application Insights 资源添加到 Azure 数据资源管理器客户端工具,来实现对群集的跨服务查询。
在连接到 Log Analytics 工作区或 Application Insights 资源之前,请先确认 Azure 数据资源管理器本机群集(例如 help 群集)是否显示在左侧菜单中。
在 Azure 数据资源管理器 UI 中,依次选择“+ 添加”和“连接”。
在“添加连接”窗口中,添加 Log Analytics (LA) 工作区或 Application Insights (AI) 资源的 URL 和显示名称。
- 对于 Log Analytics (LA) 工作区:
https://ade.loganalytics.io/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>
- 对于 Application Insights (AI) 资源:
https://ade.applicationinsights.io/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.insights/components/<ai-app-name>
注意
指定
https://ade.applicationinsights.io/subscriptions/<subscription-id>
以查看订阅中的所有数据库。 此语法也适用于 Log Analytics 工作区群集。- 对于 Log Analytics (LA) 工作区:
选择 添加 。
注意
- 以下项有不同的终结点:
- Azure 政府 -
adx.monitor.azure.us/
- 由世纪互联运营的 Microsoft Azure -
adx.monitor.azure.cn/
- 如果将连接添加到多个 Log Analytics 工作区/Application Insights 资源,请为每个工作区指定不同的名称。 否则它们全部以相同的名称显示在左窗格。
建立连接后,Log Analytics 工作区或 Application Insights 资源将随同 Azure 数据资源管理器本机群集显示在左侧窗格。
注意
从 Azure 数据资源管理器对 Azure Monitor 中的数据运行的查询具有跨资源查询限制。
运行查询
可使用支持 Kusto 查询的客户端工具来运行查询,这些工具包括:Kusto 资源管理器、Azure 数据资源管理器 Web UI、Jupyter Kqlmagic、Flow、PowerQuery、PowerShell、Lens、REST API。
注意
跨服务查询仅用于数据检索。 有关详细信息,请参阅函数可支持性。
提示
- 数据库应与跨服务查询中指定的资源同名。 名称区分大小写。
- 在跨服务查询中,请确保 Application Insights 资源和 Log Analytics 工作区的名称正确。
- 如果名称包含特殊字符,这些字符会在跨服务查询中替换为 URL 编码。
- 如果名称包含不符合 KQL 标识符名称规则的字符,它们将被短划线 - 字符替换。
通过 Azure 数据资源管理器客户端工具直接查询 Log Analytics 工作区或 Application Insights 资源
可通过 Azure 数据资源管理器客户端工具对 Log Analytics 工作区或 Application Insights 资源运行查询。
验证是否已在左侧窗格中选择你的工作区。
运行以下查询:
Perf | take 10 // Demonstrate cross-service query on the Log Analytics workspace
交叉查询 Log Analytics 工作区或 Application Insights 资源和 Azure 数据资源管理器本机群集
运行跨群集服务查询时,请验证是否已在左侧窗格中选择 Azure 数据资源管理器本机群集。 以下示例演示了如何(使用 union
)将 Azure 数据资源管理器群集表与 Log Analytics 工作区组合在一起。
运行以下查询:
union StormEvents, cluster('https://ade.loganalytics.io/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>').database('<workspace-name>').Perf
| take 10
let CL1 = 'https://ade.loganalytics.io/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>';
union <ADX table>, cluster(CL1).database(<workspace-name>).<table name>
将一个租户的 Azure 数据资源管理器群集中的数据与另一个租户的 Azure Monitor 资源联接
不支持在服务之间跨服务查询。 你已登录到单个租户,以跨两个资源运行查询。
如果 Azure 数据资源管理器资源位于 tenant-name-a 中,Log Analytics 工作区位于 tenant-name-b 中,则使用下述两种方法之一:
通过 Azure 数据资源管理器,可以为不同租户中的主体添加角色。 在 Azure 数据资源管理器群集上将用户 ID 作为授权用户添加到租户 tenant-name-b 中。 验证 tenant-name-b 中包含的 Azure 数据资源管理器群集上的“TrustedExternalTenant”属性。 在 tenant-name-b 中完全运行交叉查询。
使用 Lighthouse 将 Azure Monitor 资源投射到 tenant-name-a 中。
从不同租户连接到 Azure 数据资源管理器群集
Kusto Explorer 会自动将你登录到用户帐户最初所属的租户。 若要使用同一用户帐户访问其他租户中的资源,必须在以下连接字符串中显式指定 tenantId
:Data Source=https://ade.applicationinsights.io/subscriptions/SubscriptionId/resourcegroups/ResourceGroupName;Initial Catalog=NetDefaultDB;AAD Federated Security=True;Authority ID=<TenantId>
函数可支持性
Azure 数据资源管理器跨服务查询支持同时适用于 Application insights 资源和 Log Analytics 工作区的函数。 此功能允许跨群集查询直接引用 Azure Monitor 表格函数。 跨服务查询支持下列命令:
.show functions
.show function
[FunctionName].show database
[DatabaseName]schema as json
限制
跨服务查询仅支持
.show functions
。 此功能允许跨群集查询直接引用 Azure Monitor、Azure 数据资源管理器或 Azure Resource Graph 表格函数。 跨服务查询支持下列命令:.show functions
.show function
[FunctionName].show database
[DatabaseName]schema as json
专用链接(专用终结点)和 IP 限制不支持跨服务查询。
其他语法示例
调用 Application Insights 资源或 Log Analytics 工作区时,可使用以下语法选项:
语法说明 | Application Insights 资源 | Log Analytics 工作区 |
---|---|---|
仅包含此订阅中所定义资源的群集中的数据库(建议用于跨群集查询) | cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.insights/components/<ai-app-name>').database('<ai-app-name>') |
cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>').database('<workspace-name> ') |
包含此订阅中所有应用/工作区的群集 | cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>') |
cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id> ') |
包含订阅中所有应用/工作区且属于此资源组的群集 | cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>/resourcegroups/<resource-group-name> ') |
cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>') |
仅包含此订阅中定义的资源的群集 | cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.insights/components/<ai-app-name> ') |
cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>') |
对于 UsGov 中的终结点 | cluster('https://adx.monitor.azure.us/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>') |
|
对于中国世纪互联中的终结点 | cluster('https://adx.monitor.azure.cn/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>') |