诊断日志收集

你可以共享由 Azure Stack Hub 创建的诊断日志。 Windows 组件和本地 Azure 服务创建了这些日志。 Microsoft 支持部门可以使用日志来修复或识别 Azure Stack Hub 实例的问题。

若要开始使用 Azure Stack Hub 诊断日志收集,必须注册实例。 如果尚未注册 Azure Stack Hub,请使用特权终结点 (PEP) 来共享日志。

可以通过多种方式将诊断日志发送到 Azure 支持。 根据与 Azure 的连接,选项包括:

以下流程图显示了用于发送诊断日志的选项。 如果 Azure Stack Hub 连接到 Azure,请启用“主动日志收集”。 主动日志收集在引发关键警报时自动将诊断日志上传到 Azure 中由 Azure 控制的存储 blob。 还可使用“立即发送日志”按需收集日志。 对于在断开连接的环境中运行的 Azure Stack Hub,或者如果遇到连接问题,请选择“在本地保存日志”。

Flowchart shows how to send logs now to Microsoft

主动发送日志

在你建立支持案例之前,主动收集日志功能会自动从 Azure Stack Hub 收集诊断日志并将其发送给我们。 仅当引发系统运行状况警报时,才会收集这些日志。 Azure 支持仅在有支持案例的情况下访问这些日志。

从 Azure Stack Hub 2008 版本开始,主动日志收集功能使用改进的算法,即使在操作员看不到的错误情况下也可以捕获日志。 这一改进有助于确保在适当的时间收集正确的诊断信息,无需操作员进行任何交互。 在某些情况下,Azure 支持可以更快地开始故障排除工作并解决问题。 初始算法改进侧重于修补升级操作。

当事件触发这些警报时,Azure Stack Hub 会主动将日志发送到 Azure。 此外,Azure Stack Hub 将由其他故障事件触发的日志发送到 Azure。 这些事件对操作员不可见

强烈建议启用主动日志收集。 它使得产品团队能够诊断失败事件导致的问题并提高产品的质量。

注意

如果启用了主动日志收集,并且续订或更改了 Azure Stack Hub 注册,按续订或更改注册中所述,必须重新启用主动日志收集。

Azure Stack Hub 将主动收集以下方面的日志:

警报 错误 ID 类型
更新需要谨慎操作 Urp.UpdateWarning
更新失败 Urp.UpdateFailure
警报 错误 ID 类型
表服务器数据损坏 StorageService.Table.server.data.corruption-Critical
无法访问节点以供虚拟机放置 AzureStack.ComputeController.HostUnresponsive
Blob 服务数据已损坏 StorageService.Blob.service.data.is.corrupted-Critical
帐户和容器服务数据损坏 StorageService.Account.and.Container.Service.data.corruption-Critical

从 Azure Stack Hub 版本 2108 开始,如果禁用了主动日志收集,则会在本地捕获并存储日志,以用于主动故障事件。 我们仅在有支持案例的情况下访问本地日志。

随时可以禁用和重新启用主动日志收集。 按照以下步骤设置主动收集日志功能。

  1. 登录到 Azure Stack Hub 管理员门户。
  2. 打开“帮助 + 支持概述”。
  3. 如果出现横幅,请选择“启用主动收集日志功能”。 也可以选择“设置”,将“主动收集日志”设置为“启用”,然后选择“保存” 。

注意

如果为本地文件共享配置了日志位置设置,请确保生命周期管理策略会阻止共享存储达到其容量配额。 Azure Stack Hub 不会监视本地文件共享或强制执行任何保留策略。

数据处理方式

你同意我们可以仅根据 Azure Stack Hub 系统运行状况警报定期自动收集日志。 你还确认并同意,这些日志可以上传并保留在由 Azure 管理和控制的 Azure 存储帐户中。

这些数据用于排查系统运行状况警报问题,在未经你同意的情况下,不会用于市场营销、广告或任何其他商业目的。 这些数据最多可保留 90 天,收集的任何数据都会按照我们的标准隐私做法进行处理。

如果你不再同意,则以前在你同意的情况下收集的任何数据都不会受到影响。

通过“主动收集日志”方式收集的日志会上传到由 Azure 管理和控制的 Azure 存储帐户中。 在有支持案例的情况下,以及为了改善 Azure Stack Hub 的运行状况,我们可能会访问这些日志。

立即发送日志

提示

通过使用主动发送日志而不是“立即发送日志”来节省时间。

“立即发送日志”是一个选项,通常用于在建立支持案例之前从 Azure Stack Hub 手动收集并上传诊断日志。

可以通过两种方式手动将诊断日志发送到 Azure 支持:

如果 Azure Stack Hub 已连接到 Azure,建议你使用管理员门户,因为这是直接将日志发送给我们的最简单方法。 如果该门户不可用,应改为使用 PowerShell 发送日志。

注意

如果使用管理员门户或 PowerShell cmdlet 发送日志,则 Test-AzureStack 将在后台自动运行并收集诊断信息。

通过管理员门户立即发送日志

通过管理员门户立即发送日志:

  1. 打开“帮助 + 支持”“日志收集”>“立即发送日志”。
  2. 指定日志收集的开始时间和结束时间。
  3. 选择本地时区。
  4. 选择“收集并上传”。

如果已断开与 Internet 的连接,或者只想在本地保存日志,请使用 Get-AzureStackLog 方法发送日志。

通过 PowerShell 立即发送日志

如果使用“立即发送日志”方法并想要使用 PowerShell 而不是管理员门户,则可使用 cmdlet 来收集和发送特定日志。

  • 可以使用 FromDateToDate 参数来收集特定时间段的日志。 如果未指定这些参数,则默认收集过去四小时的日志。

  • 使用 FilterByNode 参数按计算机名筛选日志。 例如:

    Send-AzureStackDiagnosticLog -FilterByNode azs-xrp01
    
  • 使用 FilterByLogType 参数按类型筛选日志。 可以选择按文件、共享或 WindowsEvent 进行筛选。 例如:

    Send-AzureStackDiagnosticLog -FilterByLogType File
    
  • 使用 FilterByResourceProvider 参数为增值资源提供程序 (RP) 发送诊断日志。 常规语法为:

    Send-AzureStackDiagnosticLog -FilterByResourceProvider <<value-add RP name>>
    

    为 SQL RP 发送诊断日志:

    Send-AzureStackDiagnosticLog -FilterByResourceProvider SQLAdapter
    

    为 MySQL RP 发送诊断日志:

    Send-AzureStackDiagnosticLog -FilterByResourceProvider MySQLAdapter
    

    为事件中心发送诊断日志:

    Send-AzureStackDiagnosticLog -FilterByResourceProvider eventhub
    
  • 使用 FilterByRole 参数从 VirtualMachines 和 BareMetal 角色发送诊断日志:

    Send-AzureStackDiagnosticLog -FilterByRole VirtualMachines,BareMetal
    
  • 从 VirtualMachines 和 BareMetal 角色发送诊断日志,通过日期筛选功能筛选出过去 8 小时的日志文件:

    $fromDate = (Get-Date).AddHours(-8)
    Invoke-Command -Session $pepsession -ScriptBlock {Send-AzureStackDiagnosticLog -FilterByRole VirtualMachines,BareMetal -FromDate $using:fromDate}
    
  • 从 VirtualMachines 和 BareMetal 角色发送诊断日志,通过日期筛选功能筛选出 8 小时前到 2 小时前这个时间段的日志文件:

    $fromDate = (Get-Date).AddHours(-8)
    $toDate = (Get-Date).AddHours(-2)
    Invoke-Command -Session $pepsession -ScriptBlock {Send-AzureStackDiagnosticLog -FilterByRole VirtualMachines,BareMetal -FromDate $using:fromDate -ToDate $using:toDate}
    

注意

如果已断开与 Internet 的连接,或者只想在本地保存日志,请使用 Get-AzureStackLog 方法发送日志。

数据处理方式

启动从 Azure Stack Hub 收集诊断日志的操作即表明你确认并同意,这些日志可以上传并保留到 Azure 管理和控制的 Azure 存储帐户中。 Azure 支持人员可以通过支持案例立即访问这些日志,而不必与客户联系以收集日志。

在本地保存日志

当 Azure Stack Hub 与 Azure 断开连接时,可以将日志保存到本地服务器消息块 (SMB) 共享。 例如,你可以运行断开连接的环境。 如果在正常连接的情况下遇到连接问题,则可以在本地保存日志以帮助进行故障排除。

在“设置”边栏选项卡中,输入具有共享写入权限的路径、用户名和密码。 在支持案例期间,Azure 支持会提供详细步骤来说明如何传输这些本地日志。 如果管理员门户不可用,则可以使用 Get-AzureStackLog 在本地保存日志。

Screenshot of diagnostic log collection options

带宽注意事项

进行诊断日志收集时日志的平均大小各不相同,具体取决于它是主动运行还是手动运行。 “主动收集日志”选项对应的日志平均大小约为 2 GB。 “立即发送日志”选项对应的收集大小取决于需要收集多少小时(最多 4 小时)以及 Azure Stack Hub 缩放单元中的物理节点数(4 到 16 个节点)。

下表列出了在以受限或计量方式连接到 Azure 时的环境注意事项。

网络连接 影响
低带宽/高延迟连接 完成日志上传的时间会延长。
共享连接 上传也可能影响共享网络连接的其他应用/用户。
计量连接 ISP 可能会针对你额外使用网络的情况另行收费。

例如,如果 Azure Stack Hub 的 Internet 连接或链接速度为 5 兆位/秒(低带宽),则将 2 GB 的诊断日志数据上传到 Azure 支持大约需要 57 分钟。 对于使用 5 兆位/秒链接速度的 8 GB 手动日志收集,上传数据大约需要 3 小时 49 分钟。 上传诊断数据的时间延长可能会延迟或影响支持体验。

查看日志集合

以往从 Azure Stack Hub 收集的日志显示在“帮助 + 支持”中的“日志收集”页上,其中提供了以下日期和时间 :

  • 收集的时间:日志收集操作的开始时间。
  • 状态:“正在进行”或“已完成”。
  • 日志开始:要收集日志的时段的开始时间。
  • 日志结束:收集时段的结束时间。
  • 类型:是手动收集日志还是主动收集日志。

Log collections in Help + support

另请参阅

Azure Stack Hub 日志和客户数据处理