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

将 Log Analytics 工作区链接到 Azure Monitor 中的专用群集可提供高级功能和更高的查询利用率。 群集要求每天的最低引入承诺为 100 GB。 可以从专用群集链接和取消链接工作区,而不会丢失任何数据或中断服务。

高级功能

需要专用群集的功能:

  • 客户管理的密钥 - 使用提供和控制的密钥对群集数据进行加密。
  • 双重加密 - 可以在其中一种加密算法或密钥可能被泄露的情况下提供保护。 在这种情况下,额外的一层加密会继续保护你的数据。
  • 跨工作区查询优化 - 如果工作区在同一群集上,则跨工作区查询的运行速度更快。
  • 成本优化 - 将同一区域中的工作区链接到群集,以便获取所有工作区的承诺层级折扣,甚至包括那些有资格享受承诺层级折扣的低引入量工作区。
  • 可用性区域 - 依赖于不同物理位置配备了独立的电源、冷却和网络的数据中心,可保护数据免受数据中心故障的影响。 由于工作区可以依赖来自任何区域的资源,因此区域和独立基础设施之间的物理分离大大降低了发生事故的可能性。 Azure Monitor 可用性区域涵盖服务的更广泛部分,并且你所在区域可用时,它会自动扩展 Azure Monitor 复原能力。 Azure Monitor 在支持的区域中创建专用群集并默认启用可用性区域 (isAvailabilityZonesEnabled: 'true')。 目前,并非所有区域都支持专用集群可用性区域

群集定价模型

Log Analytics 专用群集使用承诺层级定价模型,该模型至少为 100 GB/天。 高于层级别的任何使用都会产生费用,具体取决于该承诺层级的每 GB 费率。 有关专用群集的定价详细信息,请参阅 Azure Monitor 日志定价详细信息。 从选择承诺层起,承诺层有 31 天的承诺期。

先决条件

  • 专用群集要求每天的最低引入承诺量为 100 GB。
  • 创建专用群集时,不能将其命名为在过去两周内删除的群集的名称。

所需的权限

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

操作 所需的权限或角色
创建专用群集 例如,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 中的日志数据和工作区的访问

创建专用群集

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

  • ClusterName:对于资源组必须是唯一的。
  • ResourceGroupName:使用中心 IT 资源组,因为组织中的许多团队通常共享群集。 有关更多设计注意事项,请查看设计 Log Analytics 工作区配置
  • 位置
  • SkuCapacity:可将承诺层设置为 100、200、300、400、500、1000、2000、5000、10000、25000、50000 GB/天。 有关群集成本的详细信息,请参阅专用群集
  • 托管标识:群集支持两种托管标识类型
    • 系统分配的托管标识 - 当标识 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。 参阅下面的更多详细信息。

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

注意

创建群集会触发资源分配和预配。 此操作可能需要几个小时才能完成。 专用群集一旦预配就开始计费,不考虑数据引入情况;建议准备部署来更快预配群集并更快将其与工作区关联。 检查下列各项:

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

空值

检查群集预配状态

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 查询引擎可自动缝合新旧群集中的数据,并且查询结果完整。

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

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

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

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

不可用

使用客户管理的密钥配置群集时,链接操作完成后引入到工作区的数据将使用托管密钥进行加密存储。 工作区链接操作最长可能需要 90 分钟才能完成,你可以通过将 Get 请求发送到工作区来检查状态,并观察在 features 下的响应中是否存在 clusterResourceId 属性。

  1. 打开“Log Analytics 工作区”菜单,然后选择你的工作区。
  2. 在“概述”页上,选择“JSON 视图”

更改群集属性

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

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

重要

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

注意

CLI 不支持 billingType 属性。

获取资源组中的所有群集

空值

获取订阅中的所有群集

空值

更新群集中的承诺层级

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

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

空值

更新群集中的 billingType

billingType 属性可确定群集及其数据的计费归属:

  • 群集(默认)-- 计费归属于群集资源
  • 工作区 -- 计费按比例归属于链接工作区。 当来自所有链接工作区的数据量低于承诺层级别时,剩余卷的账单将归属于群集

空值

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

警告

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

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

注意

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

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

空值

删除群集

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

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

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

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

注意

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

使用以下命令删除群集:

不可用

限制和约束

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

  • 每个订阅和地区最多可以有七个集群,其中有五个处于活动状态,另外两个则需是在过去 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 - 标识为 Null 或为空。 设置具有 systemAssigned 类型的标识。
  • 400 - KeyVaultProperty 是创建时设置的。 创建群集后更新 KeyVaultProperties。
  • 400 -- 现在无法执行操作。 异步操作处于非成功状态。 群集必须完成其操作,才能执行任意更新操作。

群集更新

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

群集获取

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

群集删除

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

后续步骤