你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure 诊断 扩展是 Azure Monitor 中的一个 agent,它从包括虚拟机在内的 Azure 计算资源的来宾操作系统中收集监视数据。 本文概述了Azure 诊断扩展、它支持的特定功能以及安装和配置选项。
重要
从Azure诊断扩展迁移
Azure 诊断扩展已于2026年3月31日弃用,不再受支持。 请勿使用该扩展程序的新部署。
为了确保继续支持和访问新功能,请遵循迁移指南从适用于 Linux(LAD)和 Windows(WAD)的 Azure 诊断 扩展迁移到替代解决方案。 配置 Azure Monitor 代理后删除 LAD 或 WAD,以避免重复数据。
若要检查单个 VM 上安装的扩展,请选择 VM 上的“设置”下的“扩展 + 应用程序”。 若要查看你有权访问的订阅中所有虚拟机上安装的扩展,请在 Azure Resource Graph 中使用以下查询:
resources
| where type contains "extension"
| extend parsedProperties = parse_json(properties)
| extend publisher = tostring(parsedProperties.publisher)
| project-away parsedProperties
| where publisher == "Microsoft.Azure.Diagnostics"
| distinct id
它生成类似于以下示例的结果:
迁移指南
Azure 诊断扩展已于 2026 年 3 月 31 日弃用。 若要确保持续支持和访问新功能,请使用以下基于数据目标的选项进行迁移:
| 目标 | 迁移选项 |
|---|---|
| Azure 存储 blobs | 如果使用 WAD 或 LAD 代理将数据发送到存储,以便进行长期存储和降低成本,请迁移到 Azure Monitor Agent。 然后,可以使用低成本辅助计划将数据发送到自定义表,实现经济高效的日志记录并增加了Log Analytics的优势 |
| Azure 事件中心 | 如果你使用 WAD 或 LAD 代理将数据发送到事件中心,作为将其传送到最终目标或第三方产品的一种方式,请考虑以下现在可通过 Azure Monitor 原生使用的方法:
|
| Azure Monitor指标 | 对于虚拟机来宾操作系统性能计数器场景,请迁移到使用 AMW 作为 OpenTelemetry 性能计数器的目标。 对于自定义指标场景,请迁移到使用 AMW 作为 OpenTelemetry 指标的目标。 |
主要方案
如果需要使用Azure 诊断扩展,请这样操作:
- 将数据发送到Azure 存储进行存档,或使用 Azure 存储资源管理器 等工具对其进行分析。
- 将数据发送到 Azure Monitor 指标,以便使用指标资源管理器对其进行分析,并利用准实时指标警报和自动缩放之类的功能(仅限 Windows)。
- 使用 Azure 事件中心 将数据发送到第三方工具。
- 收集 启动诊断 以调查 VM 启动问题。 启动诊断是本机 VM 功能,不需要Azure 诊断扩展。 使用Microsoft托管存储进行启动诊断,以避免依赖于客户管理的存储帐户和 SAS 令牌。
Azure 诊断 扩展的限制:
- 它已于 2026 年 3 月 31 日弃用。
- 它仅适用于Azure资源。
- 将数据发送到 Azure Monitor 日志的功能受限。
成本
Azure 诊断扩展不收取任何费用,但引入的数据可能产生费用。 查看用于收集数据的目标的 Azure Monitor 定价。
收集的数据
下表列出了可由 Windows 和 Linux 诊断扩展收集的数据。
Windows诊断扩展 (WAD)
| 数据源 | 说明 |
|---|---|
| Windows事件日志 | 来自 Windows 事件日志的事件。 |
| 性能计数器 | 测量数值操作系统和工作负载各方面性能的数值。 |
| IIS 日志 | 在来宾操作系统上运行的 IIS 网站的使用情况信息。 |
| 应用程序日志 | 应用程序写入的跟踪消息。 |
| .NET EventSource 日志 | 使用 .NET EventSource 类编写事件的代码。 |
| 基于清单的 ETW 日志 | 由任何进程生成的Windows事件的事件跟踪。 |
| 故障转储(日志) | 有关应用程序崩溃时的进程状态的信息。 |
| 基于文件的日志 | 应用程序或服务创建的日志。 |
| 代理诊断日志 | 有关Azure 诊断本身的信息。 |
Linux 诊断扩展 (LAD)
| 数据源 | 说明 |
|---|---|
| Syslog | 发送到 Linux 事件日志记录系统的事件 |
| 性能计数器 | 度量操作系统和工作负荷的各方面性能的数值 |
| 日志文件 | 发送到基于文件的日志的条目 |
数据目标
Windows和 Linux 的 Azure 诊断 扩展始终将数据收集到Azure 存储帐户中。 有关收集此数据的特定表和 blob 的列表,请参阅 为 Windows 安装和配置 Azure 诊断 扩展 和 使用适用于 Linux 的 Azure 诊断 扩展来监视指标和日志。
配置一个或多个数据接收器,以便将数据发送到其他目标。 以下部分列出了 Windows 和 Linux 诊断扩展可用的数据汇聚点。
Windows诊断扩展 (WAD)
| 目标 | 说明 |
|---|---|
| Azure Monitor指标 | 收集性能数据到 Azure Monitor Metrics。 请参阅将来宾 OS 指标发送到 Azure Monitor 指标数据库。 |
| 事件中心 | 使用Azure 事件中心在Azure外部发送数据。 请参阅 将 Azure 诊断 数据流式传输至 Azure 事件中心。 |
| Azure 存储 blobs | 除了表格,还可以将数据写入 Azure 存储中的 Blob。 |
| Application Insights | 若要与其他应用程序监视集成,请将 VM 中运行的应用程序中的数据收集到 Application Insights。 请参阅 将诊断数据发送到 Application Insights。 |
还可以将 WAD 数据从存储收集到 Log Analytics 工作区,以便使用 Azure Monitor 日志进行分析,尽管通常使用 Log Analytics 代理来实现该功能。 它可以将数据直接发送到Log Analytics工作区,并支持提供更多功能的解决方案和见解。 请参阅 从 Azure 存储中收集 Azure 诊断日志。
Linux 诊断扩展 (LAD)
LAD 将数据写入Azure 存储中的表。 它支持下表中的接收器。
| 目标 | 说明 |
|---|---|
| 事件中心 | 使用Azure 事件中心在Azure外部发送数据。 |
| Azure 存储 Blob | 除了表以外,还会将数据写入 Azure 存储中的 blob。 |
| Azure Monitor指标 | 除了 LAD 外,还安装 Telegraf 代理。 请参阅 使用 InfluxData Telegraf 代理收集 Linux VM 的自定义指标。 |
安装和配置
诊断扩展在 Azure 中实现为 virtual machine extension,因此它支持使用 Azure 资源管理器 模板、PowerShell 和 Azure CLI 相同的安装选项。 有关安装和维护虚拟机扩展的信息,请参阅 Windows 的虚拟机扩展和功能 和 Linux 的虚拟机扩展和功能。
还可以在 Azure 门户的虚拟机菜单中,Monitoring 部分的 Diagnostic 设置下安装和配置 Windows 和 Linux 诊断扩展。
有关安装和配置适用于 Windows 和 Linux 的诊断扩展的信息,请参阅以下文章:
支持的操作系统
下表列出了 WAD 和 LAD 支持的作系统。 请参阅每个代理的文档,以了解独特的注意事项和安装过程。 请参阅 Telegraf 文档以了解其支持的操作系统。 所有操作系统都假定为 x64。 任何操作系统均不支持 x86。
Windows
| 操作系统 | 支持 |
|---|---|
| Windows Server 2022 | ❌ |
| Windows Server 2022核心 | ❌ |
| Windows Server 2019 | ✅ |
| Windows Server 2019 Core | ❌ |
| Windows Server 2016 | ✅ |
| Windows Server 2016 Core | ✅ |
| Windows Server 2012 R2 | ✅ |
| Windows Server 2012 | ✅ |
| Windows 11 客户端和 Pro | ❌ |
| Windows 11 企业版(包括多会话) | ❌ |
| Windows 10 1803 (RS4) 及更高版本 | ❌ |
| Windows 10企业版(包括多会话)和 Pro(仅限服务器方案) | ✅ |
Linux
| 操作系统 | 支持 |
|---|---|
| CentOS Linux 9 | ❌ |
| CentOS Linux 8 | ❌ |
| CentOS Linux 7 | ✅ |
| Debian 12 | ❌ |
| Debian 11 | ❌ |
| Debian 10 | ❌ |
| Debian 9 | ✅ |
| Debian 8 | ❌ |
| Oracle Linux 9 | ❌ |
| Oracle Linux 8 | ❌ |
| Oracle Linux 7 | ✅ |
| Oracle Linux 6.4+ | ✅ |
| Red Hat Enterprise Linux Server 9 | ❌ |
| Red Hat Enterprise Linux Server 8* | ✅ |
| Red Hat Enterprise Linux Server 7 | ✅ |
| SUSE Linux Enterprise Server 15 | ❌ |
| SUSE Linux Enterprise Server 12 | ✅ |
| Ubuntu 22.04 LTS | ❌ |
| Ubuntu 20.04 LTS | ✅ |
| Ubuntu 18.04 LTS | ✅ |
| Ubuntu 16.04 LTS | ✅ |
| Ubuntu 14.04 LTS | ✅ |
* 需要在计算机上安装 Python 2,并将其别名设置为 python 命令。
其他文档
有关详细信息,请参阅以下文章。
Azure 云服务(经典)Web 和辅助角色
- Azure 云服务监控简介
- 在 Azure 云服务中启用 Azure 诊断
- 适用于 Azure 云服务 的 Application Insights
- 使用 Azure 诊断 跟踪 Azure 云服务应用程序的流程
Azure Service Fabric
后续步骤
- 了解如何在 Azure 诊断 中使用性能计数器
。 - 如果在诊断启动或查找Azure 存储表中的数据时遇到问题,请参阅 Troubleshooting Azure 诊断。