大规模监视委托资源

作为服务提供商,你可能已经将多个客户租户载入了 Azure Lighthouse。 Azure Lighthouse 允许服务提供商同时在多个租户之间大规模执行操作,从而提高管理任务的效率。

本主题介绍如何在你管理的客户租户之间以可伸缩方式使用 Azure Monitor 日志。 尽管本主题中提及的是服务提供商和客户,但本指南同样适用于使用 Azure Lighthouse 管理多个租户的企业

注意

请确保已在委托客户订阅上向你管理的租户中的用户授予管理 Log Analytics 工作区所需的角色

创建 Log Analytics 工作区

为了收集数据,需要创建 Log Analytics 工作区。 这些 Log Analytics 工作区是针对 Azure Monitor 所收集数据的唯一环境。 每个工作区都有其自己的数据存储库和配置,并且数据源和解决方案均配置为将其数据存储在特定工作区中。

建议直接在客户租户中创建这些工作区。 这样,它们的数据将保留在其租户中,而不是导出到您的租户中。 在客户租户中创建工作区便于集中监视 Log Analytics 支持的任何资源或服务,从而更灵活地选择所监视的数据类型。 要通过诊断设置收集信息,需要在客户租户中创建工作区。

提示

必须在与工作区相同的租户中创建用于访问 Log Analytics 工作区中数据的所有自动化帐户。

可以通过使用 Azure 门户Azure 资源管理器模板Azure PowerShell 来创建 Log Analytics 工作区。

重要

如果在客户租户中创建了所有工作区,也必须在管理租户的订阅中注册 Microsoft Insights 资源提供程序。 如果你的管理租户没有现有的 Azure 订阅,可以使用以下 PowerShell 命令手动注册资源提供程序:

$ManagingTenantId = "your-managing-Azure-AD-tenant-id"

# Authenticate as a user with admin rights on the managing tenant
Connect-AzAccount -Tenant $ManagingTenantId -Environment AzureChinaCloud

# Register the Microsoft.Insights resource providers Application Ids
New-AzADServicePrincipal -ApplicationId 1215fb39-1d15-4c05-b2e3-d519ac3feab4 -Role Contributor
New-AzADServicePrincipal -ApplicationId 6da94f3c-0d67-4092-a408-bb5d1cb08d2d -Role Contributor
New-AzADServicePrincipal -ApplicationId ca7f3f0b-7d91-482c-8e09-c5d840d0eac5 -Role Contributor

部署记录数据的策略

创建 Log Analytics 工作区后,可以在客户层次结构之间部署 Azure 策略,以便将诊断数据发送到每个租户中的相应工作区。 根据要监视的资源类型,部署的确切策略可能会有所不同。

若要了解有关创建策略的详细信息,请参阅教程:创建和管理策略以强制实施符合性。 此社区工具提供了一个脚本,用于帮助你创建策略来监视所选的特定资源类型。

确定要部署的策略后,可以将它们大规模部署到委托订阅

分析收集的数据

部署策略后,会将数据记录在每个客户租户中创建的 Log Analytics 工作区中。 若要深入了解所有受管理客户,可以使用 Azure Monitor 工作簿之类的工具从多个数据源收集和分析信息。

跨客户工作区查询数据

可以通过创建包含多个工作区的并集,运行日志查询以在不同客户租户的 Log Analytics 工作区中检索数据。 通过包含 TenantID 列,可以查看哪些结果属于哪些租户。

以下示例查询在 AzureDiagnostics 表上跨两个单独客户租户中的工作区创建并集。 结果会显示 Category、ResourceGroup 和 TenantID 列。

union AzureDiagnostics,
workspace("WS-customer-tenant-1").AzureDiagnostics,
workspace("WS-customer-tenant-2").AzureDiagnostics
| project Category, ResourceGroup, TenantId

有关跨多个 Log Analytics 工作区的查询的更多示例,请参阅在 Azure Monitor 中跨多个工作区和应用创建日志查询

重要

如果使用用于从 Log Analytics 工作区查询数据的自动化帐户,则该自动化帐户必须在与工作区相同的租户中进行创建。

跨客户查看警报

可以在你管理的客户租户中查看委派订阅的警报

在你管理的租户中,你可以通过 Azure 门户或 API 和管理工具来创建、查看和管理活动日志警报

若要跨多个客户自动刷新警报,请使用 Azure Resource Graph 查询来筛选警报。 可以将查询固定到仪表板,并选择所有相应的客户和订阅。 例如,下面的查询将显示严重性为 0 和 1 的警报,每 60 分钟刷新一次。

alertsmanagementresources
| where type == "microsoft.alertsmanagement/alerts"
| where properties.essentials.severity =~ "Sev0" or properties.essentials.severity =~ "Sev1"
| where properties.essentials.monitorCondition == "Fired"
| where properties.essentials.startDateTime > ago(60m)
| project StartTime=properties.essentials.startDateTime,name,Description=properties.essentials.description, Severity=properties.essentials.severity, subscriptionId
| sort by tostring(StartTime)

后续步骤