Azure 应用服务中的诊断

本文介绍如何排查 Azure 应用服务中的应用问题。 运行 Web 应用程序时,需要为可能出现的任何问题做好准备。 此类问题的范围从 HTTP 500 错误到用户告知网站已关闭。

Azure 应用服务诊断是一种交互式体验,可帮助你对应用进行故障排除,无需配置。 应用服务诊断指出了问题,并指导你获取正确的信息,以便更轻松地快速排查和解决问题。

尽管此体验对过去 24 小时内发生的问题最有帮助,但所有诊断图始终可供你分析。

应用服务诊断不仅适用于 Windows 上的应用,也适用于内置容器或自定义容器、 应用服务环境和Azure Functions 上的应用。

打开应用服务诊断的步骤

若要访问应用服务诊断,请执行以下操作:

  1. Azure 门户中,转到应用服务 Web 应用或应用服务环境。

  2. 在边栏菜单上,选择“ 诊断”并解决问题

    显示门户中所选资源的“应用服务诊断”页的屏幕截图。

应用服务诊断页提供了许多用于诊断应用问题的工具。 有关详细信息,请参阅本文后面的 诊断工具

注意

如果应用已关闭或执行缓慢,可以 收集分析跟踪 来识别问题的根本原因。 分析是轻量级的,并且专为生产方案而设计。

诊断接口

应用服务诊断页面提供了多个部分中简化的诊断访问。

搜索框是查找诊断的快速方法。 可以通过 故障排除类别找到相同的诊断。

显示与门户中搜索框中可用性相关的搜索结果的屏幕截图。

风险警报

应用服务诊断页执行一系列配置检查,并根据应用程序的唯一配置提供建议。

显示可用性风险警报的屏幕截图,其中包含发现的问题计数和查看更多详细信息的链接。

若要查看建议并执行检查,请选择 “查看更多详细信息 ”链接。 信息显示在窗口右侧的面板中。

显示可用性风险警报的详细信息的屏幕截图。

疑难解答类别

诊断分为故障排除类别,方便发现。 以下类别可用:

  • 可用性和性能
  • 配置和管理
  • SSL 和域名
  • 风险评估
  • 部署
  • 联网
  • 航海家
  • 诊断工具
  • 对应用执行负载测试

磁贴显示每个类别的可用诊断。 如果选择 “可用性和性能”,可在边栏菜单上使用以下诊断:

  • 概述
  • 应用停机工作流
  • 网络应用停机
  • 应用程序日志
  • CPU 使用率
  • 内存使用率
  • Web 应用疑难解答
  • 应用程序更改
  • Linux - 正在运行的容器数
  • Linux 交换空间不足
  • 进程填充列表
  • 进程列表
  • SNAT 端口耗尽
  • TCP 连接
  • 在生产环境中测试

诊断报告

若要进一步调查问题,可以选择主题并在诊断报告中查看更多详细信息。 这些详细信息通常用图形进行补充。

诊断报告可以是一个功能强大的工具,用于查明应用的问题。 以下示例是可用性和性能中的 Web 应用关闭报表。

显示门户中 Web 应用关闭诊断报告的屏幕截图。

调查应用程序代码问题(仅限 Windows 应用)

由于许多应用问题都与应用程序代码相关,因此应用服务诊断与 Application Insights 集成,以突出显示与所选停机时间相关的异常和依赖项问题。 单独启用 Application Insights。

若要查看 Application Insights 异常和依赖项,请选择 “Web 应用向下 ”或 “Web 应用慢速 ”磁贴快捷方式。

疑难解答步骤

如果在过去 24 小时内在特定类别中检测到问题,可以查看完整的诊断报告。 应用服务诊断可能会提示你查看更多故障排除建议和后续步骤,以获取更引导式的体验。

显示门户中 HTTP 服务器错误的故障排除选项的屏幕截图。

诊断工具

应用服务包括高级诊断工具,可帮助你调查应用程序代码问题、速度缓慢、连接字符串等。 它还包括主动工具,可帮助你缓解 CPU 使用率、请求和内存问题。

主动 CPU 监控(仅限于 Windows 应用)

当应用或应用的子进程消耗大量 CPU 资源时,主动 CPU 监视可帮助你采取措施。 可以设置自己的 CPU 阈值规则,以临时缓解意外的高 CPU 使用率,直到找到实际原因。 有关详细信息,请参阅博客文章: 在 CPU 问题发生之前缓解 CPU 问题

自动修复

自动修复是应用出现意外行为时可以采取的缓解作。 用户可以根据请求计数、请求缓慢、内存限制和 HTTP 状态代码设置自己的规则,以触发缓解措施。 使用此工具可暂时缓解意外行为,直到找出根本原因。

该工具目前适用于 Windows Web 应用、Linux Web 应用和 Linux 自定义容器。 支持的条件和缓解因 Web 应用类型而异。 有关详细信息,请参阅博客文章 :在应用服务诊断中宣布新的自动修复体验 ,并 宣布 Linux 自动修复

主动自动修复(仅限 Windows 应用)

与主动 CPU 监视一样,主动自动修复是缓解应用中意外行为的一种关键解决方案。 当应用服务确定应用处于不可恢复的状态时,主动自动修复会重启应用。 有关详细信息,请参阅博客文章 “主动自动愈合”简介

在持续集成和许多应用依赖项的大型团队中,很难确定导致不正常行为的特定更改。 导航器通过自动呈现应用和同一订阅中的所有资源的依赖项映射,帮助了解应用的拓扑。

导航器允许你查看应用及其依赖项所做的更改的合并列表。 然后,可以缩小导致不正常行为的更改范围。 可以通过应用服务诊断页面上的 导航器 磁贴访问该功能。 在使用该功能之前,需要启用该功能。 有关详细信息,请参阅博客文章 :使用 Navigator 了解应用的依赖项

变更分析

可以通过“应用程序更改”和“应用程序在可用性和性能崩溃”的磁贴快捷方式访问应用更改分析。 可以将更改分析与其他指标同时使用。 在使用该功能之前,必须启用该功能。 有关详细信息,请参阅博客文章 :在应用服务诊断中宣布新的更改分析体验

问题或反馈

在“分享想法”中发布问题或反馈时,请在标题中添加 [Diag]。