你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在 Azure Monitor 日志中创建和管理专用群集
将 Log Analytics 工作区链接到 Azure Monitor 中的专用群集可提供高级功能和更高的查询利用率。 群集要求每天的最低引入承诺为 500 GB。 可以从专用群集链接和取消链接工作区,而不会丢失任何数据或中断服务。
高级功能
需要专用群集的功能:
客户管理的密钥 - 使用提供和控制的密钥对群集数据进行加密。
密码箱 - 控制 Microsoft 支持工程师对数据的访问请求。
双重加密 - 可以在其中一种加密算法或密钥可能被泄露的情况下提供保护。 在这种情况下,额外的一层加密会继续保护你的数据。
跨工作区查询优化 - 如果工作区在同一群集上,则跨工作区查询的运行速度更快。
成本优化 - 将同一区域中的工作区链接到群集,以便获取所有工作区的承诺层级折扣,甚至包括那些有资格享受承诺层级折扣的低引入量工作区。
可用性区域 - 依赖于不同物理位置配备了独立的电源、冷却和网络的数据中心,可保护数据免受数据中心故障的影响。 由于工作区可以依赖来自任何区域的资源,因此区域和独立基础设施之间的物理分离大大降低了发生事故的可能性。 Azure Monitor 可用性区域涵盖服务的更广泛部分,并且你所在区域可用时,它会自动扩展 Azure Monitor 复原能力。 Azure Monitor 在支持的区域中创建专用群集并默认启用可用性区域 (
isAvailabilityZonesEnabled
: 'true')。 创建群集后无法更改此设置。目前并非所有区域都支持可用性区域。 在支持的区域中创建的新群集默认已启用可用性区域。
群集定价模型
Log Analytics 专用群集使用承诺层级定价模型,该模型至少为 500 GB/天。 高于层级别的任何使用都会产生费用,具体取决于该承诺层级的每 GB 费率。 有关专用群集的定价详细信息,请参阅 Azure Monitor 日志定价详细信息。
所需的权限
若要执行与群集相关的操作,需要以下权限:
操作 | 所需的权限或角色 |
---|---|
创建专用群集 | Microsoft.Resources/deployments/* 和 Microsoft.OperationalInsights/clusters/write |
更改群集属性 | Microsoft.OperationalInsights/clusters/write |
将工作区链接到群集 | Microsoft.OperationalInsights/clusters/write 和 Microsoft.OperationalInsights/workspaces/write |
授予所需权限 | 具有 */write 权限的所有者或参与者角色,或具有 Microsoft.OperationalInsights/* 权限的 Log Analytics 参与者角色。 |
有关 Log Analytics 权限的更多信息,请参阅管理对 Azure Monitor 中的日志数据和工作区的访问。
创建专用群集
新建专用群集时提供以下属性:
- ClusterName:对于资源组必须是唯一的。
- ResourceGroupName:使用中心 IT 资源组,因为组织中的许多团队通常共享群集。 有关更多设计注意事项,请查看“设计 Log Analytics 工作区配置”(../logs/workspace-design.md)。
- 位置
- SkuCapacity:可以将承诺层级(之前称为产能预留)设置为每天 500、1000、2000 或 5000 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。 参阅下面的更多详细信息。
每个区域的每个订阅最多可以有 5 个活动群集。 如果删除群集,该群集仍会保留 14 天。 在过去 14 天中每个订阅和区域最多能有 7 个群集、5 个活动群集,以及 2 个已删除的群集。
注意
创建群集会触发资源分配和预配。 此操作可能需要几个小时才能完成。 专用群集一旦预配就开始计费,不考虑数据引入情况;建议准备部署来更快预配群集并更快将其与工作区关联。 检查下列各项:
- 确定要关联到群集的初始工作区列表
- 你有权访问专用于该群集的订阅和所有要关联的工作区
az account set --subscription "cluster-subscription-id"
az monitor log-analytics cluster create --no-wait --resource-group "resource-group-name" --name "cluster-name" --location "region-name" --sku-capacity "daily-ingestion-gigabyte"
# Wait for job completion when `--no-wait` was used
$clusterResourceId = az monitor log-analytics cluster list --resource-group "resource-group-name" --query "[?contains(name, 'cluster-name')].[id]" --output tsv
az resource wait --created --ids $clusterResourceId --include-response-body true
检查群集预配状态
Log Analytics 群集的预配需要一段时间才能完成。 使用以下方法之一检查 ProvisioningState 属性。 预配进行时此值是 ProvisioningAccount,预配完成后是 Succeeded 。
az account set --subscription "cluster-subscription-id"
az monitor log-analytics cluster show --resource-group "resource-group-name" --name "cluster-name"
将工作区链接到群集
将 Log Analytics 工作区关联到专用群集后,引入到该工作区的新数据将路由到该群集,而现有数据则保留在现有 Log Analytics 群集中。 如果使用客户管理的密钥 (CMK) 配置专用群集,则引入的新数据使用你的密钥进行加密。 系统分离了数据位置,因此你可以像往常一样查询数据,而系统则在后台执行跨群集查询。
一个群集最多可以链接到 1,000 个工作区。 链接的工作区可以与群集位于同一区域。 为了防止数据碎片,工作区每月链接到群集的次数不能超过两次。
需要同时具有对工作区和群集资源的“写入”权限才能执行工作区链接操作:
- 在工作区中:Microsoft.OperationalInsights/workspaces/write
- 在群集资源中:Microsoft.OperationalInsights/clusters/write
除了由群集计划管理的计费方面外,链接工作区配置保持不变。
工作区和群集可以位于不同的订阅中。 如果使用 Azure Lighthouse 将工作区和群集映射到一个租户,那么工作区和群集可能位于不同的租户中。
注意
只有在完成 Log Analytics 群集预配之后才能执行工作区链接。 将工作区链接到群集涉及同步多个后端组件和缓存合成,这可能需要长达两个小时的时间。
使用以下命令将工作区链接到群集:
# Find cluster resource ID
az account set --subscription "cluster-subscription-id"
$clusterResourceId = az monitor log-analytics cluster list --resource-group "resource-group-name" --query "[?contains(name, "cluster-name")].[id]" --output tsv
# Link workspace
az account set --subscription "workspace-subscription-id"
az monitor log-analytics workspace linked-service create --no-wait --name cluster --resource-group "resource-group-name" --workspace-name "workspace-name" --write-access-resource-id $clusterResourceId
# Wait for job completion when `--no-wait` was used
$workspaceResourceId = az monitor log-analytics workspace list --resource-group "resource-group-name" --query "[?contains(name, "workspace-name")].[id]" --output tsv
az resource wait --deleted --ids $workspaceResourceId --include-response-body true
检查工作区链接状态
使用客户管理的密钥配置群集时,链接操作完成后引入到工作区的数据将使用托管密钥进行加密存储。 工作区链接操作最长可能需要 90 分钟才能完成,你可以通过将 Get 请求发送到工作区来检查状态,并观察在 features 下的响应中是否存在 clusterResourceId 属性。
az account set --subscription "workspace-subscription-id"
az monitor log-analytics workspace show --resource-group "resource-group-name" --workspace-name "workspace-name"
更改群集属性
创建群集资源并对其进行完全预配后,可以使用 CLI、PowerShell 或 REST API 编辑群集属性。 预配群集后可以设置的属性包括:
- keyVaultProperties - 包含 Azure 密钥保管库中具有以下参数的密钥:KeyVaultUri、KeyName、KeyVersion。 请参阅为群集更新密钥标识符详细信息。
- 标识 - 用于对密钥保管库进行身份验证的标识。 这可以是系统分配的或用户分配的。
- billingType - 群集资源及其数据的计费归属。 包括以下值:
- 群集(默认)- 群集的成本归属于群集资源。
- 工作区 - 群集的成本按比例归属于群集中的工作区,如果一天中的引入数据总量低于承诺层级,则会向群集资源的部分使用量进行计费。 请参阅 Log Analytics 专用群集,以了解有关群集定价模型的更多信息。
重要
群集更新不应在同一个操作中同时包含标识和密钥标识符详细信息。 如果需要对两者进行更新,则更新应为两个连续操作。
注意
CLI 不支持 billingType 属性。
获取资源组中的所有群集
az account set --subscription "cluster-subscription-id"
az monitor log-analytics cluster list --resource-group "resource-group-name"
获取订阅中的所有群集
az account set --subscription "cluster-subscription-id"
az monitor log-analytics cluster list
更新群集中的承诺层级
链接工作区的数据量随时间变化时,可以适当地更新承诺层级别。 该层级以 GB 为单位指定,其值可以是 500、1000、2000 或 5000 GB/天。 无需提供完整的 REST 请求正文,但需包含 SKU。
az account set --subscription "cluster-subscription-id"
az monitor log-analytics cluster update --resource-group "resource-group-name" --name "cluster-name" --sku-capacity 500
更新群集中的 billingType
billingType 属性可确定群集及其数据的计费归属:
- 群集(默认)-- 计费归属于群集资源
- 工作区 -- 计费按比例归属于链接工作区。 当来自所有链接工作区的数据量低于承诺层级别时,剩余卷的账单将归属于群集
从群集中取消与工作区的链接
可以随时取消工作区与群集的链接。 工作区定价层更改为“按 GB”,在取消链接操作之前引入到群集的数据会保留在群集中,工作区的新数据会引入到 Log Analytics 中。 你可以像平常一样查询数据,服务可以无缝地执行跨群集查询。 如果已为群集配置了客户管理的密钥 (CMK),则数据仍使用你的密钥进行加密且可供访问,而你的密钥以及你对 Key Vault 的权限仍会保留。
注意
仅限在一个月内对特定工作区执行两个链接操作,以防止跨群集分配数据。 如果达到限制,请联系支持人员。
使用以下命令从群集中取消链接工作区:
az account set --subscription "workspace-subscription-id"
az monitor log-analytics workspace linked-service delete --resource-group "resource-group-name" --workspace-name "workspace-name" --name cluster
删除群集
你需要对群集资源具有写入权限。
删除群集后,将无法从关联到群集的工作区访问群集中所有已引入的数据。 此操作不可逆。 无论群集的 30 天承诺层级如何,在删除群集后其计费都会停止。
如果在链接工作区时删除群集,工作区会在删除群集之前自动取消与群集的链接,而发送到工作区的新数据将改为引入到 Log Analytics 存储。 如果工作区中的数据保留操作早于它链接到群集的时间段,你可以在链接到群集之前和取消链接之后查询工作区的时间范围,而服务则可以无缝执行跨群集查询。
注意
- 存在的限制如下:在过去 14 天中每个订阅和区域最多能有 7 个群集、5 个活动群集,以及 2 个已删除的群集。
- 群集的名称在删除后保留 14 天,在此期间不能用于创建新群集。
使用以下命令删除群集:
az account set --subscription "cluster-subscription-id"
az monitor log-analytics cluster delete --resource-group "resource-group-name" --name $clusterName
限制和约束
每个区域和订阅中最多可以创建两个活动群集。
在过去 14 天中每个订阅和区域的上限是 7 个群集、5 个活动群集,以及 2 个已删除的群集。
最多可以将 1,000 个 Log Analytics 工作区链接到一个群集。
在 30 天内最多允许对特定工作区进行两次工作区链接操作。
当前不支持将群集移到另一个资源组或订阅。
群集更新不应在同一操作中同时包含标识和密钥标识符详细信息。 如果两者都需要更新,则应在两次连续操作中进行更新。
当前不能在中国使用密码箱。
对于受支持区域中自 2020 年 10 月开始创建的群集,系统会自动为其配置双重加密。 可以通过在群集上发送 GET 请求并观察启用了双重加密的群集的
isDoubleEncryptionEnabled
值是否为true
来验证是否为你的群集配置了双重加密。- 如果你创建群集并收到错误“区域名称不支持对群集进行双重加密。”,则你仍可通过在 REST 请求正文中添加
"properties": {"isDoubleEncryptionEnabled": false}
来创建无双重加密的群集。 - 创建群集后,无法更改双重加密设置。
- 如果你创建群集并收到错误“区域名称不支持对群集进行双重加密。”,则你仍可通过在 REST 请求正文中添加
故障排除
如果创建群集时出现冲突错误,原因可能是你在过去 14 天内删除了群集,并且它处于软删除状态。 软删除期间,群集名称保持为预留,并且无法新建同名群集。 永久删除群集时,名称将在软删除期结束后释放。
如果在群集处于预配或更新状态时对其进行更新,则更新将失败。
部分操作较为耗时,可能需要一段时间才能完成。 这些操作包括群集创建、群集密钥更新和群集删除。 可以通过将 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 容量不足。 将容量值设置为 500、1000、2000 或 5000 GB/天。
- 400 - 容量锁定 30 天。 更新后 30 天内允许减少容量。
- 400 - 未设置 SKU。 将 SKU 名称设置为 capacityReservation 并将容量值设置为 500、1000、2000 或 5000 GB/天。
- 400 - 标识为 Null 或为空。 设置具有 systemAssigned 类型的标识。
- 400 - KeyVaultProperty 是创建时设置的。 创建群集后更新 KeyVaultProperties。
- 400 -- 现在无法执行操作。 异步操作处于非成功状态。 群集必须完成其操作,才能执行任意更新操作。
群集更新
- 400 - 群集处于正在删除状态。 正在执行异步操作。 群集必须完成其操作,才能执行任意更新操作。
- 400 -- KeyVaultProperties 不为空,但格式错误。 请参阅密钥标识符更新。
- 400 - 无法验证 Key Vault 中的密钥。 可能是由于权限不足或密钥不存在。 验证是否在 Key Vault 中设置密钥和访问策略。
- 400 -- 密钥不可恢复。 Key Vault 必须设置为“软删除”和“清除保护”。 请参阅 Key Vault 文档
- 400 -- 现在无法执行操作。 等待异步操作完成,然后重试。
- 400 - 群集处于正在删除状态。 等待异步操作完成,然后重试。
群集获取
- 404 -- 找不到群集,群集可能已删除。 如果尝试使用该名称创建群集但发生冲突,则该群集将处于软删除状态,为期 14 天。 可以联系支持人员将其恢复,也可以使用其他名称创建新群集。
群集删除
- 409 - 处于预配状态时无法删除群集。 等待异步操作完成,然后重试。
工作区链接
- 404 - 找不到工作区。 指定的工作区不存在或已被删除。
- 409 - 正在执行工作区链接或取消链接操作。
- 400 - 找不到群集,指定的群集不存在或已被删除。 如果尝试使用该名称创建群集但发生冲突,则该群集将处于软删除状态,为期 14 天。 可以联系支持人员将其恢复。
工作区取消链接
- 404 - 找不到工作区。 指定的工作区不存在或已被删除。
- 409 - 正在执行工作区链接或取消链接操作。