收集 Azure Stack HCI 的诊断日志

适用于:Azure Stack HCI 版本 23H2

本文介绍如何收集诊断日志并将其发送给 Microsoft,以帮助识别和修复 Azure Stack HCI 解决方案的任何问题。

按需日志收集

按需日志收集涉及使用 Send-DiagnosticData cmdlet 从 Azure Stack HCI 群集中的任何节点手动收集诊断日志并将其发送到 Microsoft。 运行此 cmdlet 时,日志将暂时在本地复制。 此副本经过分析,发送给 Microsoft,然后从系统中删除。 Microsoft 会将此诊断数据保留最多 30 天,并按照 标准隐私做法进行处理。

何时使用按需日志收集

下面是可执行按需日志收集的方案:

  • Microsoft 支持部门基于未结案例的日志请求。
  • 连接并注册群集时,将收集日志。
  • 当可观测性组件正常运行并安装时,将收集日志。
  • 仅部分注册群集时,将收集日志。
  • 针对与注册失败无关的问题收集日志。

若要浏览 Azure Stack HCI 中的其他日志收集方法并了解何时使用它们,请参阅 诊断

先决条件

在收集按需日志之前,必须完成以下先决条件:

  • 必须有权访问 Azure Stack HCI 群集。
  • 必须有权访问 Azure。
  • 必须已安装扩展才能AzureEdgeTelemetryAndDiagnostics从 Azure Stack HCI 系统收集遥测和诊断信息。 有关扩展的信息,请参阅 Azure Stack HCI 遥测和诊断扩展概述

通过 PowerShell 执行按需日志收集

可以使用 PowerShell(建议的方法)或Azure 门户中的Windows Admin Center执行按需日志收集,如本文稍后所述。

Send-DiagnosticData从 Azure Stack HCI 群集上的任何节点运行 cmdlet 以执行按需日志收集。

考虑的几个要点:

  • cmdlet 的 Send-DiagnosticData 完成时间因各种因素而异,例如收集日志的角色、指定的持续时间以及 Azure Stack HCI 环境中的节点数。
  • 如果未指定任何参数,则 Send-DiagnosticData cmdlet 会从所有节点收集前一小时持续时间的数据。

下面是 的 Send-DiagnosticData语法:

Send-DiagnosticData [[-FilterByRole] <string[]>] [[-FromDate] <datetime>] [[-ToDate] <datetime>] [[-CollectSddc] <bool>] [<CommonParameters>]

有关 的Send-DiagnosticData参考信息,Send-DiagnosticData请参阅本文后面的命令参考部分。

示例和示例输出

下面是一些包含示例输出的示例命令,这些命令演示如何使用具有不同参数的 Send-DiagnosticData cmdlet。

使用日期筛选发送诊断数据

在此示例中,使用过去两个小时的日志文件的日期筛选发送诊断数据:

Send-DiagnosticData -FromDate (Get-Date).AddHours(-2) -ToDate (Get-Date)

下面是此命令的示例输出:

PS C:\CloudDeployment\logs> Send-DiagnosticData -FromDate (Get-Date).AddHours(-2) -ToDate (Get-Date)
Converting FromDate and ToDate to UTC
FromDate in UTC is now 12/04/2023 19:14:18. ToDate in UTC is now 12/04/2023 21:14:18
The correlation Id is <Correlation-ID>. This is used to query for this log collection in the diagnostic pipeline.
Provide the below information to the customer support engineer working on your case.
AEORegion: eastus
AEODeviceARMResourceUri: /Subscriptions/<Subscription-ID>/resourceGroups/EDGECI-REGISTRATION/providers/Microsoft.AzureStackHCI/clusters/<cluster-name>
AEOClusterNodeArcResourceUri: /subscriptions/<Subscription-ID>/resourceGroups/EDGECI-REGISTRATION/providers/Microsoft.HybridCompute/machines/<v-host-name>
CorrelationId: <Correlation-ID>
Observability Agent is running.
Successfully submitted on-demand. Log collection Job Id: <Job-ID>. This is used to track the log collection with Get-LogCollectionHistory.
Current log collection status: Running
Waiting for log collection to complete... 
==== CUT ==================== CUT =======
Log collection ended with status: Succeeded
PS C:\CloudDeployment\logs>   

发送指定角色的诊断数据

在此示例中,使用 BareMetal 和 ECE 的角色筛选发送诊断数据:

Send-DiagnosticData -FilterByRole BareMetal, ECE –CollectSddc $false

下面是此命令的示例输出:

PS C:\Users\docsuser> Send-DiagnosticData -FilterByRole BareMetal, ECE –CollectSddc $false
FromDate parameter not specified. Setting to default value 12/04/2023 20:41:21
ToDate parameter not specified. Setting to default value 12/04/2023 21:41:21
Converting FromDate and ToDate to UTC
FromDate in UTC is now 12/04/2023 20:41:21. ToDate in UTC is now 12/04/2023 21:41:21
The correlation Id is <Correlation-ID>. This is used to query for this log collection in the diagnostic pipeline.
Provide the below information to the customer support engineer working on your case.
AEORegion: eastus
AEODeviceARMResourceUri: /Subscriptions/<Subscription-ID>/resourceGroups/EDGECI-REGISTRATION/providers/Microsoft.AzureStackHCI/clusters/cluster-e5c7b2aa9a36490f9567b432a0eb51f1
AEOClusterNodeArcResourceUri: /subscriptions/<Subscription-ID>/resourceGroups/EDGECI-REGISTRATION/providers/Microsoft.HybridCompute/machines/v-Host1
CorrelationId: <Correlation-ID>
Observability Agent is running.
Successfully submitted on-demand. Log collection Job Id: <Job-ID>. This is used to track the log collection with Get-LogCollectionHistory.
Current log collection status: Running
Waiting for log collection to complete... 
==== CUT ==================== CUT =======
Log collection ended with status: Succeeded
PS C:\Users\docsuser>  

获取日志收集的历史记录

可以获取已执行的所有日志集合的历史记录。 此历史记录可帮助你了解日志集合的类型、日志集合的大小、收集日志的时间以及日志收集的方法。

若要获取过去 90 天的日志收集历史记录,请输入:

Get-LogCollectionHistory  

下面是 cmdlet 的示例 Get-LogCollectionHistory 输出。 请注意,参数 datetime 位于 UTC 时区。

PS C:\CloudDeployment\logs> Get-LogCollectionHistory
Name                           Value
----                           -----
TimeCollected                  9/29/2022 5:08:14 PM +00:00
Status                         Succeeded
CollectionFromDate             9/29/2022 4:07:57 PM +00:00
CollectionToDate               9/29/2022 5:07:57 PM +00:00
LogCollectionId                fdcd94c8-1bd2-4ec6-8612-c92d5abd9a84
Type                           OnDemand
LogUploadSizeMb                1598
UploadNumberOfFiles            1924
Directory
Location
Error
----------                     ---------------------------------------------------------
TimeCollected                  9/27/2022 11:57:25 PM +00:00
Status                         Succeeded
CollectionFromDate             9/27/2022 9:57:16 PM +00:00
CollectionToDate               9/27/2022 11:57:16 PM +00:00
LogCollectionId                f3d8dcc6-901e-4c72-a3cc-210055e6f198
Type                           OnDemand
LogUploadSizeMb                1069
UploadNumberOfFiles            1941
Directory
Location
Error
PS C:\CloudDeployment\logs>

将日志保存到本地文件共享

如果遇到网络问题或希望在本地保存数据而不是将数据发送到 Azure,可以将诊断日志存储在本地服务器消息块 (SMB) 共享中。

按照以下步骤将日志保存到本地共享:

  1. 运行以下命令以创建共享:

    New-SMBShare -Name <share-name> -Path <path-to-share> -FullAccess Users -ChangeAccess 'Server Operators'
    
  2. 运行以下命令,为共享创建 PSCredentials:

    $user = "<username>"
    $pass = "<password>"
    $sec=ConvertTo-SecureString -String $pass -AsPlainText -Force
    $shareCredential = New-Object System.Management.Automation.PSCredential ($user, $sec)
    
  3. 在群集的每个节点上运行以下命令,收集日志并将其保存在本地:

    Send-DiagnosticData -SaveToPath <path to share> -ShareCredential $shareCredential
    

如果从保存日志的 SMB 共享具有出站连接,则可以运行以下命令将日志发送到 Microsoft:

Send-DiagnosticData NoLogCollection -SupplementaryLogs <path-to-share> -ShareCredentail $shareCredential

在支持案例中提供所需信息

如果遇到问题并需要Microsoft 支持部门的帮助,他们可能会要求提供特定信息来查找日志。

可以从 cmdlet 的Send-DiagnosticData输出或直接从Azure 门户中有问题的页面获取此信息。

提供输出中 Send-DiagnosticData 的信息

使用 Send-DiagnosticData 收集日志时,它还会在输出中提供需要与Microsoft 支持部门共享的关键详细信息。 收集日志后,它们将发送到 Kusto 数据库。 然后,Microsoft 支持部门可以使用提供的信息在 Kusto 中查找日志,并帮助你解决报告的问题。

请求时,请与Microsoft 支持部门共享以下信息。 从输出中 Send-DiagnosticData 获取此信息。

  • AEORegion:设备注册的位置。
  • AEODeviceARMResourceUri:用于查找资源的唯一标识符,例如: /subscriptions/<subscription GUID>/resourceGroups/<Name of Resource group>/providers/Microsoft.AzureStackHCI/clusters/<Name of Cluster>
  • AEOClusterNodeArcResourceUri:用于查找 ARC 资源的唯一标识符,例如: /subscriptions/<subscription GUID>/resourceGroups/<Name of Resource group>/providers/Microsoft.HybridCompute/Machines/<machine name>
  • CorrelationId:用于查找日志的唯一标识符。

从发生问题的Azure 门户页提供信息

在Azure 门户有问题的页面上,按 Ctrl+Alt+A 下载包含以下信息的诊断文件:会话 ID 和 URL。 在大多数情况下,此信息足以Microsoft 支持部门开始进行故障排除。

如果遇到问题的任何 Azure Stack HCI 边栏选项卡,则当前 URI 具有调试服务所需的资源 ID。

Send-DiagnosticData 命令参考

本部分提供有关 的 Send-DiagnosticData参考信息,包括其参数、语法和用法示例。

FromDate 和 ToDate

使用这些参数可以收集特定时间段的日志。

语法

Send-DiagnosticData [[-FilterByRole] <string[]>] [[-FromDate] <datetime>] [[-ToDate] <datetime>] [[-CollectSddc] <bool>]  [<CommonParameters>]

示例

$fromDate = Get-Date -Date "11/30/2023 18:35:00"
$fromDate = Get-Date -Date "11/30/2023 18:35:00"
$toDate = Get-Date -Date "11/30/2023 19:35:00"
Send-DiagnosticData –FromDate $fromDate –ToDate $toDate

扩展版本

全部

FilterByRole

此参数可用于选择要收集的角色日志。 可以指定多个角色。 有关可用于筛选日志的可用角色的列表,请参阅 可用于筛选日志的角色

语法

Send-DiagnosticData [[-FilterByRole] <string[]>]

示例

Send-DiagnosticData –FilterByRole “ALM” -CollectSddc $false

扩展版本

全部

CollectSddc

确定是包括还是排除软件定义的数据中心 (SDDC) 日志。 默认情况下,包含 SDDC 日志。 如果要排除它们,请将其设置为$false。 有关使用 SDDC 诊断工具的详细信息,请参阅 收集群集的诊断数据

语法

Send-DiagnosticData [-CollectSddc <bool>]

示例

Send-DiagnosticData –CollectSddc $false

扩展版本

全部

BypassObsAgent

绕过可观测性代理时,仅在启动日志收集的节点上收集日志。 历史记录中不保留集合的记录。

语法

Send-DiagnosticData [-BypassObsAgent]

示例

Send-DiagnosticData –BypassObsAgent

扩展版本

全部

SaveToPath

此参数允许将诊断日志保存到主机上的指定路径,而不是将它们传输到 Microsoft。

语法

Send-DiagnosticData -SaveToPath <string> [-FilterByRole <string[]>] [-FromDate <datetime>] [-ToDate <datetime>] [-CollectSddc <bool>] [-SupplementaryLogs <string>] [-ShareCredential <pscredential>] [-BypassObsAgent]  [<CommonParameters>]

示例

可以在主机上 SaveToPath 向 参数提供共享路径或输出路径。

Send-DiagnosticData –SaveToPath <output path>
Send-DiagnosticData –SaveToPath <share path>

如果使用的共享路径未映射,则还必须使用 -ShareCredential 参数。

Send-DiagnosticData –SaveToPath <share path> -ShareCredential <credentials for share path>

可以SaveToPath与其他参数一起使用,例如 FilterByRole、、FromDateToDateCollectSddcSupplementaryLogsShareCredentialBypassObsAgent

Send-DiagnosticData –SaveToPath <output path> -FIlterByRole <role>

扩展版本

版本 1.0.2.0 及更高版本

NoLogCollection

switch NoLogCollection 参数允许向 Microsoft 发送一组临时日志。 使用此参数时,请考虑以下详细信息:

  • 可以将 、 ShareCredentialBypassObsAgent 参数与 参数组合SupplementaryLogs在一NoLogCollection起。
  • SupplementaryLogs使用 NoLogCollection时, 参数是必需的。 它指定需要发送到 Microsoft 的日志的路径。
  • 你可以灵活地将主机上的共享路径或输出路径传递给 SupplementaryLogs 参数。 如果使用未映射的共享路径,则还必须使用 -ShareCredential 参数。

语法

Send-DiagnosticData -SupplementaryLogs <string> -NoLogCollection [-ShareCredential <pscredential>] [-BypassObsAgent]  [<CommonParameters>]

示例

将 与必需SupplementaryLogs参数一–NoLogCollection起使用:

Send-DiagnosticData –NoLogCollection –SupplementaryPath <output path>

与未映射的共享路径配合使用 –NoLogCollection

Send-DiagnosticData –NoLogCollection –SupplementaryPath <share path>
-ShareCredential <credential to share path>

扩展版本

版本 1.0.2.0 及更高版本

supplementaryLogs

使用 SupplementaryLogs 参数可将临时日志发送到 Microsoft。

语法

可通过以下方式使用它:

使用 SaveToPath。 在此方案中,将收集诊断日志和临时日志并将其保存到指定路径。

Send-DiagnosticData [-SupplementaryLogs <string>] -SaveToPath <path>

使用 NoLogCollection。 在这里,仅收集临时日志并将其发送到 Microsoft。 不会收集任何诊断日志。

Send-DiagnosticData -SupplementaryLogs <string> -NoLogCollection

不带 SaveToPathNoLogCollection。 这意味着将收集诊断日志和临时日志并将其发送到 Microsoft。

Send-DiagnosticData [-SupplementaryLogs <string>]

收集诊断日志和临时日志时,可以将 参数与其他参数(如 FilterByRoleFromDateToDateCollectSddc)一起使用SupplementaryLogs

示例

不带 SaveToPathNoLogCollection

Send-DiagnosticData –SupplementaryLogs <path to adhoc logs to collect>

对于 SaveToPath

Send-DiagnosticData –SaveToPath <path> -SupplementaryLogs <path to adhoc logs to collect>

对于 NoLogCollection

Send-DiagnosticData –NoLogCollection –SupplemenatryLogs <path to adhoc logs to collect>

扩展版本

版本 1.0.2.0 及更高版本

ShareCredential

此参数提供了收集日志并将其保存到共享路径或直接将日志从共享路径发送到 Microsoft 的灵活性。

语法

将日志保存到路径:

Send-DiagnosticData [-ShareCredential <pscredential>] -SaveToPath <path>

将共享路径上的日志发送到 Microsoft:

Send-DiagnosticData [-ShareCredential <pscredential>] -SupplementaryLogs <path> -NoLogCollection;

示例

将日志保存到路径:

Send-DiagnosticData –SaveToPath <share path> -ShareCredential <credential to share path>

将共享路径上的日志发送到 Microsoft:

Send-DiagnosticData –NoLogCollection –SupplementaryLogs <share path> –ShareCredential <credential to the share path>

扩展版本

全部

(计划弃用 toSMBShare)

此参数允许将日志保存到输出路径或共享路径。 如果使用的是未映射的共享路径,则还需要使用 ShareCredential 参数。 由于此参数将在扩展的未来版本中删除,因此请改用 -SaveToPath 参数。

语法

Send-DiagnosticData –ToSMBShare –SharePath <path> [-ShareCredential <pscredential>]

示例

将日志保存到输出路径或共享路径:

Send-DiagnosticData –ToSMBShare –SharePath <output path or share path>

将日志保存到未映射的共享路径:

Send-DiagnosticData –ToSMBShare –SharePath <share path> -ShareCredential <credential for the share path>

扩展版本

最初可跨所有版本访问,但是,此参数最终将限制为版本 0.1.42 及更早版本。

(计划从SMBShare 弃用)

此参数允许你从输出路径发送日志或将路径直接共享到 Microsoft。 如果使用的是未映射的共享路径,则还需要使用 ShareCredential 参数。 由于此参数将在扩展的未来版本中删除,因此请改用 -NoLogCollection 参数。

语法

Send-DiagnosticData –FromSMBShare –SharePath <path> [-ShareCredential <pscredential>]

示例

Send-DiagnosticData –FromSMBShare –SharePath <output path or share path>
Send-DiagnosticData –FromSMBShare –SharePath <share path>

扩展版本

最初可跨所有版本访问,但是,此参数最终将限制为版本 0.1.42 及更早版本。

(计划弃用 sharePath)

SharePath 参数可用于以下目的之一:

  • 将诊断日志保存到共享路径或输出路径。
  • 从共享路径或输出路径将日志发送到 Microsoft。 如果使用共享路径且未映射共享路径,则 ShareCredential 还必须使用 参数。

由于此参数将在扩展的未来版本中删除,因此请改用 –SaveToPath 将日志保存到路径,或者在 –SupplementaryLogs 向 Microsoft 发送临时日志时使用 。

语法

Send-DiagnosticData –ToSMBShare –SharePath <path> [-ShareCredential <pscredential>];
Send-DiagnosticData –FromSMBShare –SharePath <path> [-ShareCredential <pscredential>];

示例

Send-DiagnosticData –ToSMBShare –SharePath <output path or share path>
Send-DiagnosticData –ToSMBShare –SharePath <share path> -ShareCredential <credential for the share path>
Send-DiagnosticData –FromSMBShare –SharePath <output path or share path>
Send-DiagnosticData –FromSMBShare –SharePath <share path>

扩展版本

最初可跨所有版本访问,但是,此参数最终将限制为版本 0.1.42 及更早版本。

可用于筛选日志的角色

以下角色可用于通过 FilterByRole 参数进行筛选。 在将来的版本中,可用角色可能会有所不同。

角色名称 说明
ALM 应用程序生命周期管理 (ALM) 涉及管理软件应用程序的开发、测试、部署和维护。
ArcAgent 允许通过 Azure Arc 管理 Windows Server 的代理。请参阅 Azure Connected Machine 代理概述
BareMetal 基础结构角色,允许在裸机服务器上运行服务,而无需虚拟化层。 可以完全访问和控制操作系统和硬件。
CommonInfra 收集常见基础结构组件(例如网络、存储和安全性)的日志。
DeploymentLogs 记录部署过程的详细信息,包括执行的步骤、遇到的错误和操作状态。
ECE 管理生命周期工作流,包括部署、更新、添加节点和节点替换。
分机 与 Azure 托管扩展相关的数据。
FleetDiagnosticsAgent 侦听运行状况触发器以启动日志收集。 这些日志用于诊断 FleetDiagnosticsAgent 和日志收集的问题。
HCICloudService 为 Azure Stack HCI 提供核心功能的 Azure 云服务。 它将 Azure 功能与本地服务器的灵活性相结合。
DownloadService 用于下载更新内容的基础结构服务的一部分。
健康产业 从各种源(例如事件日志和性能计数器)收集运行状况、性能和使用情况数据。
HostNetwork 用于对网络 ATC(用于配置主机网络的基础操作系统组件)进行故障排除的日志。
MOC_ARB 支持对 Azure Stack HCI 和 Windows Server 上的虚拟机进行基于云的管理的管理堆栈。
NC 与网络基础结构相关的信息。
ObservabilityLogmanTraces 收集可观测性跟踪的日志。 这些日志有助于排查发送诊断数据时出现的问题。
ObservabilityVolume 收集可观测性卷的日志。
OEMDiagnostics 收集 OEM 诊断的日志,这有助于识别和解决服务器硬件(例如 BIOS、驱动程序、传感器等)的问题。
OSUpdateLogs 用于收集与 Azure Stack HCI 节点上的操作系统更新相关的日志的角色,可用于排查更新相关问题。
RemoteSupportAgent 帮助排查远程支持会话问题(用于解决客户支持案例)的日志。
TestObservability Test-Observability cmdlet 收集日志,该 cmdlet 用于测试 TelemetryAndDiagnostics 扩展是否正常工作。
URP 由与 和 OsUpdate ECE 角色事件相关的UpdateService日志组成。 管理 Update Service Azure Stack HCI 系统的更新。 OsUpdate ECE 角色用于在部署、添加节点、修复节点和基础结构 VM 更新方案期间 (物理主机和基础结构 VM) 不属于群集的计算机获取和安装操作系统更新。 这两个组件的跟踪是角色的一 URP 部分。

通过Azure 门户中的Windows Admin Center执行按需日志收集

Azure 门户 Diagnostics Windows Admin Center 中的扩展使你能够执行按需日志收集并与 Microsoft 共享日志。

按照以下步骤通过 Azure 门户 中的Windows Admin Center执行按需日志收集:

  1. 连接到Azure 门户中的Windows Admin Center。 有关信息,请参阅在 Azure 中使用 Windows Admin Center 管理 Azure Stack HCI 群集

  2. 在左窗格中的 “扩展”下,选择“ 诊断”。

  3. “诊断 ”页上的 “日志活动 ”下,查看日志收集历史记录或选择一行以显示有关特定日志收集的详细信息。

  4. 选择“ 手动发送”。 在右侧的上下文窗格中,输入日志开始和结束时间,然后选择 “收集 & 上传日志”。

    “诊断”页的屏幕截图,其中显示了按需日志收集的“手动发送”按钮。

后续步骤