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

Azure 容器应用中的日志存储和监视选项

Azure 容器应用提供用于存储和查看应用程序日志的选项。 日志记录选项是在容器应用环境中配置的,可在其中选择日志目标。

容器应用应用程序日志由两个不同的类别组成:

  • 容器控制台输出 (stdout/stderr) 消息。
  • Azure 容器应用生成的系统日志。
  • Spring App 控制台日志。

可以在以下日志目标之间进行选择:

  • Log Analytics:Azure Monitor Log Analytics 是默认存储和查看选项。 日志存储在 Log Analytics 工作区中,可以使用 Log Analytics 查询查看和分析日志。 若要了解有关 Log Analytics 的详细信息,请参阅 Azure Monitor Log Analytics
  • Azure Monitor:Azure Monitor 将日志路由到一个或多个目标:
    • 用于查看和分析的 Log Analytics 工作区。
    • 用于存档的 Azure 存储帐户。
    • 用于数据引入和分析服务的 Azure 事件中心。 有关详细信息,请参阅 Azure 事件中心
    • Azure 合作伙伴监视解决方案,例如 Datadog、Elastic、Logz.io 等。 有关详细信息,请参阅合作伙伴解决方案
  • 不保存日志:可以禁用日志数据的存储。 禁用后,仍能通过容器应用中的“日志流”功能查看实时容器日志。 有关详细信息,请参阅日志流式处理

如果选择“不保存日志”或“Azure Monitor”目标,则会禁用在 Azure 门户中提供 Log Analytics 查询编辑器的“日志”菜单项

通过 Azure 门户的配置选项

使用以下步骤在 Azure 门户中为容器应用环境配置日志记录选项:

  1. 在门户中转到容器应用环境窗口中的“日志记录选项”日志目标的屏幕截图。
  2. 可从以下“日志目标”选项中选择
    • Log Analytics:使用此选项,可以选择一个 Log Analytics 工作区来存储日志数据。 可以通过 Log Analytics 查询查看日志。 若要了解有关 Log Analytics 的详细信息,请参阅 Azure Monitor Log Analytics
    • Azure Monitor:Azure Monitor 将日志路由到目标。 选择此选项后,必须在选择该页面上的“保存”后选择“诊断设置”以完成配置
    • 不保存日志:此选项禁用对日志数据的存储。
  3. 选择“保存”。 日志记录选项页面的屏幕截图。
  4. 如果选择“Azure Monitor”作为日志目标,需要配置“诊断设置”。 “诊断设置”项显示在“日志记录选项”菜单项下方

诊断设置

选择“Azure Monitor”作为日志目标时,必须配置目标详细信息。 在门户中,选择容器应用环境窗口左侧菜单中的“诊断设置”。 可能需要刷新页面才会显示“诊断设置”。

诊断设置菜单项的屏幕截图。

目标详细信息保存为“诊断设置”。 最多可以为容器应用环境创建五个诊断设置。 可以为每个诊断设置配置不同的日志类别。 例如,创建一个诊断设置,将系统日志类别发送到一个目标;创建另一个诊断设置,用于将容器控制台日志类别发送到另一个目标。

创建新的诊断设置

  1. 选择“添加诊断设置”。 诊断设置中添加新的诊断设置的屏幕截图。

  2. 输入诊断设置的名称。 诊断设置对话框的屏幕截图。

  3. 选择要发送到此目标的日志类别组或类别。 可以选择一个或多个类别。

  4. 选择一个或多个“目标详细信息”

    • 发送到 Log Analytics 工作区:从现有 Log Analytics 工作区中进行选择。 诊断设置中 Log Analytics 目标的屏幕截图。
    • 存档到存储帐户:此选项已停用。
    • 流式传输到事件中心:从 Azure 事件中心中进行选择。 诊断设置中的事件中心目标的屏幕截图。
    • 发送到合作伙伴解决方案:从 Azure 合作伙伴解决方案中进行选择。
  5. 选择“保存”。

有关诊断设置的详细信息,请参阅 Azure Monitor 中的诊断设置

使用 Azure CLI 的配置选项

使用 --logs-destination 参数通过 Azure CLI az containerapp createaz containerapp update 为容器应用环境配置日志目标。

目标值为:log-analyticsazure-monitornone

例如,若要使用现有的 Log Analytics 工作区作为日志目标来创建容器应用环境,--logs-destination 参数值必须为 log-analytics,且 --logs-destination-id 参数值必须为 Log Analytics 工作区资源 ID。 可以通过 Azure 门户中的 Log Analytics 工作区页面或 az monitor log-analytics workspace show 命令获取该资源 ID。

将 <占位符> 替换为自己的值:

az containerapp env create \
  --name <ENVIRONMENT_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --logs-destination log-analytics \
  --logs-workspace-id <WORKSPACE_ID>

更新现有的容器应用环境,以使用 Azure Monitor 作为日志目标:

将 <占位符> 替换为自己的值:

az containerapp env update \
  --name <ENVIRONMENT_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --logs-destination azure-monitor

--logs-destination 设置为 azure-monitor 时,使用 az monitor diagnostics-settings 命令创建诊断日志以配置日志类别的目标详细信息。

若要将应用级指标发送到 Log Analytics,请执行以下操作:

将 <占位符> 替换为自己的值:

az monitor diagnostic-settings create \
--name "AllMetricsToLogAnalytics" \
--resource <APP_ARM_RESOURCE_ID> \
--metrics '[{"category": "AllMetrics","enabled": true}]' \
--workspace <LOG_ANALYTICS_ARM_RESOURCE_ID>

有关 Azure Monitor 诊断设置命令的详细信息,请参阅 az monitor diagnostic-settings。 容器应用日志类别为 ContainerAppConsoleLogsContainerAppSystemLogs

后续步骤