在 Azure Monitor 日志中创建和管理专用群集

Azure Monitor 中的专用群集可提供高级安全性和控制功能,并且有助于成本优化。 可以将新工作区或现有工作区链接到群集,且不会中断引入和查询操作。

高级功能

需要专用群集的功能:

  • 客户管理的密钥 - 使用自己提供和控制的密钥对数据进行加密
  • 双重加密 - 为数据增加一层加密。
  • 跨查询优化 - 跨工作区查询在同一群集上运行时,查询速度更快。
  • 成本优化 - 将同一区域中的工作区链接到群集,从所有链接的工作区引入的数据还可享受承诺层级折扣。
  • 可用性区域 - 通过不同物理位置的数据中心来保护数据,这些数据中心配备了独立的电源、冷却和网络。 Azure Monitor 可用性区域涵盖服务的更广泛部分,并且你所在区域可用时,它会自动扩展 Azure Monitor 复原能力。 Azure Monitor 在支持的区域中创建专用群集并默认启用可用性区域 (isAvailabilityZonesEnabled: 'true')。 目前,并非所有区域都支持专用集群可用性区域

群集定价模型

Log Analytics 专用群集采用承诺层级定价模型,起始用量为 100 GB/天。 超出承诺层级级别的引入量按每 GB 费率进行收费。 承诺层级可以随时增加,但在减少前有 31 天的承诺期。 有关承诺层级的详细信息,请参阅 Azure Monitor 日志定价详细信息

有两种计费类型值,用于确定引入数据的计费归属:

  • 群集(默认)- 群集的成本归属于群集资源。
  • 工作区 - 群集的成本按比例归属于群集中的工作区,如果一天中的引入数据总量低于承诺层级,则会向群集资源的部分使用量进行计费。 请参阅 Log Analytics 专用群集,以了解有关群集定价模型的更多信息。

所需的权限

若要执行与群集相关的操作,需要以下权限:

操作 所需的权限或角色
创建专用群集 例如,Log Analytics 参与者内置角色提供的 Microsoft.Resources/deployments/*Microsoft.OperationalInsights/clusters/write 权限
更改群集属性 例如,Log Analytics 参与者内置角色提供的 Microsoft.OperationalInsights/clusters/write 权限
将工作区链接到群集 例如,Log Analytics 参与者内置角色提供的 Microsoft.OperationalInsights/clusters/writeMicrosoft.OperationalInsights/workspaces/writeMicrosoft.OperationalInsights/workspaces/linkedservices/write 权限
检查工作区链接状态 例如,Log Analytics 读者内置角色提供的对工作区的 Microsoft.OperationalInsights/workspaces/read 权限
获取群集或检查群集的预配状态 例如,Log Analytics 读者内置角色提供的 Microsoft.OperationalInsights/clusters/read 权限
更新群集中的承诺层级或计费类型 例如,Log Analytics 参与者内置角色提供的 Microsoft.OperationalInsights/clusters/write 权限
授予所需权限 具有 */write 权限的所有者或参与者角色,或具有 Microsoft.OperationalInsights/* 权限的 Log Analytics 参与者内置角色
从群集中取消与工作区的链接 例如,Log Analytics 参与者内置角色提供的 Microsoft.OperationalInsights/workspaces/linkedServices/delete 权限
删除专用群集 例如,Log Analytics 参与者内置角色提供的 Microsoft.OperationalInsights/clusters/delete 权限

有关 Log Analytics 权限的更多信息,请参阅管理对 Azure Monitor 中的日志数据和工作区的访问

资源管理器模板示例

本文包含用于在 Azure 资源管理器 (ARM) 中创建和配置 Log Analytics 群集的 Azure 资源管理器模板示例。 每个示例都包含模板文件和参数文件,其中包含要提供给模板的示例值。

注意

有关可用示例的列表以及在 Azure 订阅中部署这些示例的指南,请参阅 Azure Monitor 的 Azure 资源管理器示例

模板参考

准备工作

群集承诺层级一旦创建就会开始计费,无论数据引入情况如何,建议在开始之前准备好以下各项。

  1. 有一个创建群集的订阅
  2. 准备好一份要链接到群集的工作区列表。 它们必须与群集位于同一区域
  3. 确定计费类型和归属,可以归属到群集(默认),也可以按比例分配到链接的工作区。
  4. 验证用于创建群集和链接工作区的权限

注意

  • 创建群集和链接工作区为异步操作,可能需要几个小时才能完成
  • 在操作期间,从群集链接或取消链接工作区不会影响引入或查询。

创建专用群集

新建专用群集时提供以下属性:

  • ClusterName:对于资源组必须是唯一的。
  • ResourceGroupName:使用中心 IT 资源组,因为组织中的许多团队通常共享群集。 有关更多设计注意事项,请查看设计 Log Analytics 工作区配置
  • 位置
  • SkuCapacity:可将承诺层设置为 100、200、300、400、500、1000、2000、5000、10000、25000、50000 GB/天。 CLI 中支持的最低承诺层级目前为 500。 使用 REST 配置最小值为 100 的承诺层级。 有关群集成本的详细信息,请参阅专用群集
  • 托管标识:群集支持两种托管标识类型
    • 系统分配的托管标识 - 当标识 type 设置为“SystemAssigned”时,在群集创建过程中自动生成。 此标识稍后可用于授予对 Key Vault 的存储访问权限,以便进行包装和展开操作。

      群集的 REST 调用中的标识

      {
        "identity": {
          "type": "SystemAssigned"
          }
      }
      
    • 用户分配的托管标识 - 让你可以在创建群集时配置客户管理的密钥(如果在创建群集之前在密钥保管库中向其授予权限)。

      群集的 REST 调用中的标识

      {
      "identity": {
        "type": "UserAssigned",
          "userAssignedIdentities": {
            "subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/UserAssignedIdentities/<cluster-assigned-managed-identity>"
          }
        }  
      }
      

创建群集资源后,可以编辑属性,如 sku、*keyVaultProperties 或 billingType。 参阅下面的更多详细信息。

删除的群集需要两周时间才能完全移除。 每个订阅和地区最多可以有七个集群,其中有五个处于活动状态,有两个是在过去的两周内删除的。

注意

创建群集涉及多项资源,操作通常在两小时内完成。 专用群集一旦预配就开始计费,不考虑数据引入情况;建议准备部署来更快预配群集并更快将其与工作区关联。 检查下列各项:

  • 确定要关联到群集的初始工作区列表
  • 你有权访问专用于该群集的订阅和所有要关联的工作区

在 Azure 门户的“Log Analytics 专用群集”菜单中单击“创建”。 系统会提示你提供详细信息,例如群集名称和承诺层级。

在 Azure 门户中创建专用群集的屏幕截图。

检查群集预配状态

Log Analytics 群集的预配需要一段时间才能完成。 使用以下方法之一检查 ProvisioningState 属性。 预配进行时此值是 ProvisioningAccount,预配完成后是 Succeeded

该门户将提供预配群集时的状态。

注意

  • 只有在完成 Log Analytics 群集预配之后才能执行工作区链接。
  • 将工作区链接到群集涉及同步多个后端组件和缓存合成,这通常在两小时内完成。
  • 链接 Log Analytics 工作区时,工作区计费计划更改为 LACluster,应在工作区模板中删除 SKU,以防止工作区部署期间发生冲突
  • 除了由群集计划管理的计费方面之外,链接期间和链接后所有工作区配置和查询方面都将保持不变。

需要同时具有对工作区和群集资源的“写入”权限才能执行工作区链接操作:

  • 在工作区中:Microsoft.OperationalInsights/workspaces/write
  • 在群集资源中:Microsoft.OperationalInsights/clusters/write

将 Log Analytics 工作区链接到专用群集后,发送到该工作区的新数据会引入专用群集,而之前引入的数据则保留在 Log Analytics 群集中。 链接工作区不会影响工作区操作,包括引入和查询体验。 Log Analytics 查询引擎可自动缝合新旧群集中的数据,并且查询结果完整。

群集是区域性的,最多可以链接到与群集位于同一区域中的 1,000 个工作区。 为了防止数据碎片,工作区每月链接到群集的次数不能超过两次。

链接的工作区可以位于与群集所在订阅不同的订阅中。 如果使用 Azure Lighthouse 将工作区和群集映射到一个租户,那么工作区和群集可能位于不同的租户中。

使用客户管理的密钥 (CMK) 配置专用群集时,新引入的数据会使用密钥进行加密,而旧数据仍然使用 Azure 管理的密钥 (MMK) 进行加密。 密钥配置由 Log Analytics 抽象化,并无缝执行跨新旧数据加密的查询。

使用以下步骤将工作区链接到群集。 你可以自动链接多个工作区:

在 Azure 门户的“Log Analytics 专用群集”菜单中选择群集,然后单击“链接的工作区”查看当前链接到专用群集的所有工作区。 单击“链接工作区”链接其他工作区

在 Azure 门户中将工作区链接到专用群集的屏幕截图。

工作区链接操作可能最多需要 90 分钟才能完成。 你可以在链接的工作区和群集上查看状态。 完成后,工作区资源将在 features 下包括 clusterResourceId 属性,群集将在 associatedWorkspaces 部分下包括链接的工作区。

使用客户管理的密钥配置群集时,链接操作完成后引入到工作区的数据将使用密钥进行加密存储。

在专用群集的“概览”页上,选择“JSON 视图”associatedWorkspaces 部分列出了链接到群集的工作区。

在 Azure 门户中查看专用群集的关联工作区的屏幕截图。

更改群集属性

创建群集资源并对其进行完全预配后,可以使用 CLI、PowerShell 或 REST API 编辑群集属性。 预配群集后可以设置的属性包括:

  • keyVaultProperties - 包含 Azure 密钥保管库中具有以下参数的密钥:KeyVaultUriKeyNameKeyVersion。 请参阅为群集更新密钥标识符详细信息
  • 标识 - 用于对密钥保管库进行身份验证的标识。 这可以是系统分配的或用户分配的。
  • billingType - 群集资源及其数据的计费归属。 包括以下值:
    • 群集(默认)- 群集的成本归属于群集资源。
    • 工作区 - 群集的成本按比例归属于群集中的工作区,如果一天中的引入数据总量低于承诺层级,则会向群集资源的部分使用量进行计费。 请参阅 Log Analytics 专用群集,以了解有关群集定价模型的更多信息。

重要

群集更新不应在同一个操作中同时包含标识和密钥标识符详细信息。 如果需要对两者进行更新,则更新应为两个连续操作。

空值

获取资源组中的所有群集

在 Azure 门户的“Log Analytics 专用群集”菜单中,选择“资源组”筛选器

在 Azure 门户中查看资源组中所有专用群集的屏幕截图。

获取订阅中的所有群集

在 Azure 门户的“Log Analytics 专用群集”菜单中,选择“订阅”筛选器

在 Azure 门户中查看订阅中所有专用群集的屏幕截图。

更新群集中的承诺层级

链接工作区的数据量随时间变化时,你可以适当地更新承诺层级别以优化成本。 该层级以 GB 为单位指定,其值可以是 100、200、300、400、500、1000、2000、5000、10000、25000 或 50000 GB/天。 无需提供完整的 REST 请求正文,但需包含 SKU。

在承诺期内,可以更改为更高级别的承诺层级(这将重新开始 31 天的承诺期)。 但在承诺期结束之前,无法返回到即用即付或更低的承诺层级。

在 Azure 门户的“Log Analytics 专用群集”菜单中选择群集,然后单击“承诺层级”旁边的“更改”

在 Azure 门户中更改专用群集的承诺层级的屏幕截图。

可以随时取消工作区与群集的链接。 工作区定价层更改为“按 GB”,在取消链接操作之前引入到群集的数据会保留在群集中,工作区的新数据会引入到 Log Analytics 中。

警告

取消链接工作区不会将工作区数据移出群集。 对于链接到群集时为工作区收集的任何数据,在工作区中定义的保留期内仍会保留在群集中,只要群集未被删除即可访问这些数据。

当工作区取消链接且服务无缝执行跨群集查询时,查询不会受到影响。 如果已为群集配置了客户管理的密钥 (CMK),则在链接时引入到工作区的数据仍使用你的密钥进行加密且可供访问,而你的密钥以及你对 Key Vault 的权限仍会保留。

注意

  • 仅限在一个月内对特定工作区执行两个链接操作,以防止跨群集分配数据。 如果达到限制,请联系支持人员。
  • 未链接的工作区将移动到即用即付定价层。

使用以下命令从群集中取消链接工作区:

在 Azure 门户的“Log Analytics 专用群集”菜单中选择群集,然后单击“链接的工作区”查看当前链接到专用群集的所有工作区。 选择要取消链接的任何工作区,然后单击“取消链接”

在 Azure 门户中取消工作区与专用群集的链接的屏幕截图。

删除群集

你需要对群集资源具有写入权限。

群集删除操作应谨慎执行,因为操作不可恢复。 从链接的工作区引入到群集的所有数据都将被永久删除。

无论群集中定义的 31 天承诺层级如何,在删除群集后其计费都会停止。

如果删除具有链接的工作区的群集,工作区将自动从群集取消链接,工作区将移动到即用即付定价层,而工作区的新数据将改为引入 Log Analytics 群集。 您可以在工作区关联到集群之前以及解除关联之后的时间范围内对工作区进行查询,该服务可以无缝地执行跨集群查询。

注意

  • 每个订阅和地区最多可以有七个集群,其中有五个处于活动状态,另外两个则需是在过去两周内删除的。
  • 群集的名称在删除后保留两周,在此期间不能用于创建新群集。

使用以下命令删除群集:

在 Azure 门户的“Log Analytics 专用群集”菜单中选择群集,然后单击“删除”

在 Azure 门户中删除专用群集的屏幕截图。

更改托管标识类型

创建群集后,可以更改身份类型,且不会中断提取或查询,但需注意以下事项:

  • 将 SystemAssigned 更新为 UserAssigned — 在密钥保管库中授予 UserAssign 身份,然后在群集中更新身份类型
  • 将 UserAssigned 更新为 SystemAssigned — 由于在使用 SystemAssigned 更新群集标识类型后创建了系统分配的托管标识,因此必须遵循以下步骤
    1. 更新群集并删除密钥 - 将 keyVaultUri、keyName 和 keyVersion 设置为值“”
    2. 将群集身份类型更新为 SystemAssigned
    3. 更新密钥保管库并向身份授予权限
    4. 更新群集中的密钥

限制和约束

  • 每个区域和订阅中最多可以创建两个活动群集。

  • 每个订阅和地区最多可以有七个集群,其中有五个处于活动状态,另外两个则需是在过去 2 周内删除的。

  • 最多可以将 1,000 个 Log Analytics 工作区链接到一个群集。

  • 在 30 天内最多允许对特定工作区进行两次工作区链接操作。

  • 当前不支持将群集移到另一个资源组或订阅。

  • 不支持将群集移到另一个区域。

  • 群集更新不应在同一操作中同时包含标识和密钥标识符详细信息。 如果两者都需要更新,则应在两次连续操作中进行更新。

  • 对于受支持区域中自 2020 年 10 月开始创建的群集,系统会自动为其配置双重加密。 可以通过在群集上发送 GET 请求并观察启用了双重加密的群集的 isDoubleEncryptionEnabled 值是否为 true 来验证是否为你的群集配置了双重加密。

    • 如果你创建群集并收到错误“区域名称不支持对群集进行双重加密。”,则你仍可通过在 REST 请求正文中添加 "properties": {"isDoubleEncryptionEnabled": false} 来创建无双重加密的群集。
    • 创建群集后,无法更改双重加密设置。
  • 可在链接到群集时删除工作区。 如果你决定在软删除期间恢复工作区,则工作区会返回到以前的状态,并保持与群集链接。

  • 在承诺期内,可以更改为更高级别的承诺层级(这将重新开始 31 天的承诺期)。 但在承诺期结束之前,无法返回到即用即付或更低的承诺层级。

故障排除

  • 如果在创建某个群集时收到冲突错误,则该群集可能是在过去 2 周内删除的,目前正处于删除过程中。 群集名称会在 2 周的删除期内保持保留状态,你无法使用该名称创建新群集。

  • 如果在群集处于预配或更新状态时对其进行更新,则更新将失败。

  • 部分操作较为耗时,可能需要一段时间才能完成。 这些操作包括群集创建群集密钥更新群集删除。 可以通过将 GET 请求发送到群集或工作区来检查操作状态,并观察响应。 例如,未链接的工作区在“功能”下没有 clusterResourceId

  • 如果尝试链接已链接到另一个群集的 Log Analytics 工作区,操作将失败。

错误消息

群集创建

  • 400 -- 群集名称无效。 群集名称可包含字符 a-z、A-Z、0-9,且长度为 3-63。
  • 400 - 请求的正文为 Null 或格式错误。
  • 400 - SKU 名称无效。 将 SKU 名称设置为 CapacityReservation。
  • 400 -- 提供了容量,但 SKU 不是 capacityReservation。 将 SKU 名称设置为 CapacityReservation。
  • 400 - SKU 容量不足。 将容量值设置为 100、200、300、400、500、1000、2000、5000、10000、25000、50000 GB/天。
  • 400 - 容量锁定 30 天。 更新后 30 天内允许减少容量。
  • 400 - 未设置 SKU。 将 SKU 名称设置为 capacityReservation 并将容量值设置为 100、200、300、400、500、1000、2000、5000、10000、25000 或 50000 GB/天。
  • 400 -- 现在无法执行操作。 异步操作处于非成功状态。 群集必须完成其操作,才能执行任意更新操作。

群集更新

  • 400 - 群集处于正在删除状态。 正在执行异步操作。 群集必须完成其操作,才能执行任意更新操作。
  • 400 -- KeyVaultProperties 不为空,但格式错误。 请参阅密钥标识符更新
  • 400 - 无法验证 Key Vault 中的密钥。 可能是由于权限不足或密钥不存在。 验证是否在 Key Vault 中设置密钥和访问策略
  • 400 -- 密钥不可恢复。 Key Vault 必须设置为“软删除”和“清除保护”。 请参阅 Key Vault 文档
  • 400 -- 现在无法执行操作。 等待异步操作完成,然后重试。
  • 400 - 群集处于正在删除状态。 等待异步操作完成,然后重试。

群集获取

  • 404 -- 找不到群集,群集可能已删除。 如果尝试使用该名称创建群集但发生冲突,则该群集正处于删除过程中。

群集删除

  • 409 - 处于预配状态时无法删除群集。 等待异步操作完成,然后重试。
  • 404 - 找不到工作区。 指定的工作区不存在或已被删除。
  • 409 - 正在执行工作区链接或取消链接操作。
  • 400 - 找不到群集,指定的群集不存在或已被删除。
  • 404 - 找不到工作区。 指定的工作区不存在或已被删除。
  • 409 - 正在执行工作区链接或取消链接操作。

后续步骤