你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Azure Log Analytics 监视 Azure 容器实例的备用池事件

重要

若要使备用池成功创建和管理资源,需要访问订阅中的关联资源。 确保为备用池资源提供程序分配正确的权限,以便备用池正常运行。 有关详细说明,请参阅 为备用池配置角色权限

Azure Log Analytics 提供了一个强大的平台,用于监视和分析 Azure 容器实例中备用池中的事件。 通过将备用池与 Log Analytics 工作区集成,可以跟踪关键指标、分析趋势,并为关键事件设置警报。

可用的指标和表

有两个主要表可以查看与备用池关联的日志: SCGPoolRequestLogSCGPoolExecutionLog

表名称 DESCRIPTION
SCGPoolRequestLog 包含用户启动事件的日志,例如池设置的更新。
SCGrPoolExecutionLog 包含系统启动事件的日志,例如降级模式、容器重用和池重新填充等备用池操作。

在上述表中,可以查询特定的与池相关的事件,如下所示:

事件名称 DESCRIPTION
StandbyPoolExhaustedPool 当备用池实例计数达到零且无法创建更多容器时触发,因为池的最大就绪容量小于或等于容器组实例计数。 这通常在未配置最小就绪容量时发生。
StandbyPoolReuseSuccess 成功将容器实例从备用池移动到容器组时触发。
StandbyPoolReuseFailure 当容器组从备用池请求容器但无法提供容器时触发,导致容器组直接创建新容器。
StandbyPoolSettingsUpdated 在备用池资源上更改设置时触发,例如调整最小/最大就绪容量或容器状态。
StandbyPoolMaxReadyPool 在备用池中的实例数已经补足,可满足客户设置的最大就绪容量时触发。
StandbyPoolDegradedPool 当备用池中的实例无法成功预配请求的资源时,将触发机制,使池进入降级模式,持续 30 秒。
StandbyPoolExitDegradedPool 在降级模式下的超时到期时触发,并且此时资源池正在尝试再次创建资源。

为备用池配置 Log Analytics

Log Analytics 工作区是 Azure Monitor 中的集中式数据存储库,可用于从各种 Azure 资源和服务收集、分析和查询遥测数据。

创建 Log Analytics 工作区

在为备用池配置监视之前,请确保已设置 Log Analytics 工作区。

  1. 导航到 Azure 门户
  2. 在搜索栏中,键入 Log Analytics 工作区 并从结果中选择它。
  3. 单击 + 创建
  4. 填写必填字段:
    • 订阅:选择要与工作区关联的订阅。
    • 资源组:选择现有资源组或创建新资源组。
    • 名称:输入工作区的唯一名称。
    • 区域:选择工作区的区域。
  5. 单击“ 查看 + 创建”,然后单击 “创建” 以部署工作区。

为备用池配置诊断设置

若要将信息发送到配置的 Log Analytics 工作区,请为备用池资源设置诊断设置。 配置诊断设置后,大约需要 30 分钟,任何日志才会开始显示在 Log Analytics 工作区中。 配置 Log Analytics 工作区之前发生的事件不会包括在内。

注释

Azure 门户尚不支持为备用池资源启用诊断设置。 而是使用替代 SDK(如 PowerShell 或 CLI)启用诊断设置。

az monitor diagnostic-settings create \
  --name "standbyPoolLogs" \
  --resource "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.StandbyPool/standbyContainerPools/{standbyPool}" \
  --workspace "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.OperationalInsights/workspaces/{logAnalyticsWorkspace}" \
  --logs '[{"categoryGroup": "allLogs", "enabled": true}]'

查询备用池事件

  1. 转到 Azure 门户
  2. 在顶部的搜索栏中,键入 Log Analytics 工作区 并从结果中选择它。
  3. 选择您为备用池配置的 Log Analytics 工作区。
  4. 在工作区菜单中,单击“常规”部分下的“日志”打开查询编辑器。

查询备用池事件

使用以下查询分析来自 SCGPoolRequestLogSCGlExecutionLog 表的事件:

SCGPoolRequestLog 查看用户启动的事件

SCGPoolRequestLog
| where TimeGenerated > ago(24h)
| project TimeGenerated, EventName, ResourceId, Details
| order by TimeGenerated desc

SCGPoolExecutionLog 查看系统发起的事件

SCGPoolExecutionLog
| where TimeGenerated > ago(24h)
| project TimeGenerated, EventName, ResourceId, Details
| order by TimeGenerated desc

按类型对事件进行计数

SCGPoolRequestLog
| summarize Count = count() by EventName
| union (
    SCGPoolExecutionLog
    | summarize Count = count() by EventName
)
| order by Count desc

为特定事件设置警报

为了确保您收到关键事件的通知,您可以在 Azure Monitor 中根据 SCGPoolRequestLogSCGPoolExecutionLog 表中的事件设置警报。

创建有关备用池失败操作的警报

  1. 导航到 Azure 门户

  2. 在搜索栏中,键入 “监视 ”并从结果中选择它。

  3. 在“监视”菜单中,选择“监视”部分下的“警报”。

  4. 单击“+ 新建警报规则”。

  5. 配置警报:

    • 范围:选择 Log Analytics 工作区。
    • 条件:使用以下自定义日志查询:
      SCGPoolExecutionLog
      | where EventName == "StandbyPoolReuseFailure"
      
    • 操作组:创建或选择一个操作组,以定义您希望如何接收通知。
    • 警报规则详细信息:提供警报的名称并设置严重性级别。
  6. 单击“ 创建警报规则 ”保存警报。

为耗尽的备用池创建警报

  1. 按照上一个示例中的步骤 1-4 进行操作。

  2. 配置警报:

    • 范围:选择 Log Analytics 工作区。
    • 条件:使用以下自定义日志查询:
      SCGPoolExecutionLog
      | where EventName == "StandbyPoolExhaustedPool"
      
    • 操作组:为通知创建或选择操作组。
    • 警报规则详细信息:提供警报的名称并设置严重性级别。
  3. 单击“ 创建警报规则 ”保存警报。

创建有关池设置频繁更新的警报

  1. 按照第一个示例中的步骤 1 到 4 进行操作。

  2. 配置警报:

    • 范围:选择 Log Analytics 工作区。
    • 条件:使用以下自定义日志查询:
      SCGPoolRequestLog
      | where EventName == "StandbyPoolSettingsUpdated"
      | summarize Count = count() by bin(TimeGenerated, 1h)
      | where Count > 5
      
      如果在一小时内进行超过 5 次池设置更新,则此查询会触发警报。
    • 操作组:为通知创建或选择操作组。
    • 警报规则详细信息:提供警报的名称并设置严重性级别。
  3. 单击“ 创建警报规则 ”保存警报。

后续步骤