如何使用启动诊断对 Azure 中的虚拟机进行故障排除

虚拟机进入不可启动状态的原因可能有很多。 若要解决使用资源管理器部署模型创建的虚拟机的问题,可以使用以下调试功能:控制台输出和 Azure 虚拟机的屏幕截图支持。

对于 Linux 虚拟机,可以从门户查看控制台日志的输出。 对于 Windows 和 Linux 虚拟机,Azure 使你能够从虚拟机监控程序中看到 VM 的屏幕截图。 所有区域中的 Azure 虚拟机都支持这两项功能。 请注意,屏幕截图和输出最多可能需要 10 分钟才能显示在存储帐户中。

可以选择 “启动诊断 ”选项来查看日志和屏幕截图。

Azure 门户的“启动诊断”页中“屏幕截图”选项卡的屏幕截图。

常见的启动错误

在使用 Azure 门户创建的虚拟机上启用诊断

以下过程适用于使用资源管理器部署模型创建的虚拟机。

在“ 管理 ”选项卡上的“ 监视 ”部分,确保 启动诊断 已打开。 默认设置是使用托管存储帐户启用启动诊断。

VM 创建启动诊断页中选项的屏幕截图

注意

启动诊断功能不支持高级存储帐户或区域冗余存储帐户类型。 如果使用高级存储帐户进行启动诊断,则在启动 VM 时可能会收到 StorageAccountTypeNotSupported 错误。

从 Azure 资源管理器模板部署

如果要从 Azure 资源管理器 模板进行部署,请导航到虚拟机资源并追加诊断配置文件部分。 将 API 版本标头设置为“2015-06-15”或更高版本。 最新版本为“2018-10-01”。

{
  "apiVersion": "2018-10-01",
  "type": "Microsoft.Compute/virtualMachines",
  … 

使用诊断配置文件,可以选择要将这些日志放入其中的存储帐户。

    "diagnosticsProfile": {
 "bootDiagnostics": {
 "enabled": true,
 "storageUri": "[concat('https://', parameters('newStorageAccountName'), '.blob.core.windows.net')]"
 }
    }
    }
}

有关使用模板部署资源的详细信息,请参阅快速入门:使用Azure 门户创建和部署 Azure 资源管理器模板

在现有虚拟机上启用启动诊断

若要在现有虚拟机上启用启动诊断,请执行以下步骤:

  1. 登录到Azure 门户,然后选择虚拟机。

  2. “帮助 ”部分中,选择 “启动诊断”,然后选择 “设置” 选项卡。

  3. 启动诊断 设置中,选择具有托管存储帐户或自定义存储帐户的启动诊断。 现有 VM 的启动诊断页中选项的屏幕截图

  4. 保存更改。

使用 Azure CLI 启用启动诊断

可以使用 Azure CLI 在现有 Azure 虚拟机上启用启动诊断。 有关详细信息,请参阅 az vm boot-diagnostics

修复启动诊断屏幕截图未刷新

如果注意到 Azure VM 的启动诊断屏幕截图在Azure 门户过时,请首先确保在来宾操作系统中禁用虚拟显示超时。 例如,你可能会看到 Windows VM 在登录屏幕上显示的时间过时。

对于 Windows,从提升的 CMD 运行以下命令

powercfg /setacvalueindex SCHEME_CURRENT SUB_VIDEO VIDEOIDLE 0

对于 Linux,请运行以下命令

xset s off

对于 Windows VM,Azure 预配代理不同于 VM 代理。 它在预配从通用映像创建的 VM 期间运行上述命令。 如果在 C:\Windows\Panther\WaSetup.xml(即预配代理日志)中搜索 powercfg,则可以看到此事件。 但是,由于预配代理不需要针对从专用 VHD 创建的 VM 运行,因此需要手动运行 powercfg 命令以禁用虚拟显示超时。 此外,还可以从通用映像创建一个特别旧的 Azure VM,该映像可能未设置它,因为它是在预配代理更新之前创建的,以禁用虚拟显示超时。

联系我们寻求帮助

如果你有任何疑问或需要帮助,请创建支持请求联系 Azure 社区支持