若要使用 PowerShell 进行日志收集,请从 Azure 本地实例中的任何节点运行 Send-DiagnosticData
cmdlet。 此 cmdlet 暂时在本地复制日志。 将分析复制的日志,发送到Microsoft,然后从系统中删除。
以下是使用 PowerShell 收集日志时要考虑的一些要点:
- cmdlet 的
Send-DiagnosticData
完成时间因因素而异,例如收集日志的角色、指定的持续时间以及 Azure 本地环境中的节点数。
- 如果未指定任何参数,该
Send-DiagnosticData
cmdlet 会从所有节点收集数据,以持续一小时。
下面是以下语法 Send-DiagnosticData
:
Send-DiagnosticData [[-FilterByRole] <string[]>] [[-FromDate] <datetime>] [[-ToDate] <datetime>] [[-CollectSddc] <bool>] [<CommonParameters>]
有关参考信息 Send-DiagnosticData
,请参阅 Send-DiagnosticData
本文后面的命令参考 部分。
示例和示例输出
下面是一些示例命令,其中包含示例输出,演示如何将 cmdlet 与不同的参数一 Send-DiagnosticData
起使用。
使用日期筛选发送诊断数据
在此示例中,将发送诊断数据,其中包含过去两个小时日志文件的日期筛选:
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)共享。
按照以下步骤将日志保存到本地共享:
运行以下命令以创建共享:
New-SMBShare -Name <share-name> -Path <path-to-share> -FullAccess Users -ChangeAccess 'Server Operators'
运行以下命令以创建对共享的 PSCredentials:
$user = "<username>"
$pass = "<password>"
$sec=ConvertTo-SecureString -String $pass -AsPlainText -Force
$shareCredential = New-Object System.Management.Automation.PSCredential ($user, $sec)
在系统的每个节点上运行以下命令,收集日志并将其保存在本地:
Send-DiagnosticData -SaveToPath <path to share> -ShareCredential $shareCredential
如果已从保存日志的 SMB 共享建立出站连接,可以运行以下命令,将日志发送到Microsoft:
Send-DiagnosticData NoLogCollection -SupplementaryLogs <path-to-share> -ShareCredentail $shareCredential
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"
$toDate = Get-Date -Date "11/30/2023 19:35:00"
Send-DiagnosticData –FromDate $fromDate –ToDate $toDate
扩展版本
All
FilterByRole
此参数允许选择要收集的角色的日志。 可以指定多个角色。 有关可用于筛选日志的可用角色的列表,请参阅 可用于筛选日志的角色。
语法
Send-DiagnosticData [[-FilterByRole] <string[]>]
示例
Send-DiagnosticData –FilterByRole “ALM” -CollectSddc $false
扩展版本
All
CollectSddc
确定是否包括或排除软件定义的数据中心 (SDDC) 日志。 默认情况下,包含 SDDC 日志。 如果要将其排除,请将其设置为$false。 有关使用 SDDC 诊断工具的详细信息,请参阅 收集系统的诊断数据。
语法
Send-DiagnosticData [-CollectSddc <bool>]
示例
Send-DiagnosticData –CollectSddc $false
扩展版本
All
BypassObsAgent
绕过可观测性代理时,只会在启动日志收集的节点上收集日志。 集合的记录不会保留在历史记录中。
语法
Send-DiagnosticData [-BypassObsAgent]
示例
Send-DiagnosticData –BypassObsAgent
扩展版本
All
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
,、FromDate
、ToDate
CollectSddc
、SupplementaryLogs
、和ShareCredential
BypassObsAgent
。
Send-DiagnosticData –SaveToPath <output path> -FIlterByRole <role>
扩展版本
版本 1.0.2.0 及更高版本
NoLogCollection
switch NoLogCollection
参数允许将临时日志集发送到Microsoft。 使用此参数时,请考虑以下详细信息:
- 可以将参数和参数组合
SupplementaryLogs
在一起NoLogCollection
。BypassObsAgent
ShareCredential
- 使用
NoLogCollection
时,参数SupplementaryLogs
是必需的。 它指定需要发送到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
没有 SaveToPath
或 NoLogCollection
。 这意味着收集诊断日志和临时日志并将其发送到Microsoft。
Send-DiagnosticData [-SupplementaryLogs <string>]
收集诊断日志和临时日志时,可以将参数与其他参数一SupplementaryLogs
起使用,例如FilterByRole
,FromDate
ToDate
和CollectSddc
。
示例
没有 SaveToPath
或 NoLogCollection
:
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 –SupplementaryLogs <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>
扩展版本
All
(计划弃用)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 及更早版本。
(计划弃用)FromSMBShare
此参数允许从输出路径发送日志或直接将路径共享到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 本地提供核心功能的 Azure 云服务。 它将 Azure 电源与本地计算机的灵活性相结合。 |
DownloadService |
用于下载更新内容的基础结构服务的一部分。 |
运行状况 |
从各种源(例如事件日志和性能计数器)收集运行状况、性能和使用情况数据。 |
HostNetwork |
用于对网络 ATC 进行故障排除的日志,该日志是用于配置主机网络的基础操作系统组件。 |
MOC_ARB |
管理堆栈,用于在 Azure 本地和 Windows Server 上对虚拟机进行基于云的管理。 |
NC |
与网络基础结构相关的信息。 |
ObservabilityLogmanTraces |
收集可观测性跟踪的日志。 这些日志有助于排查发送诊断数据的问题。 |
ObservabilityVolume |
收集可观测性卷的日志。 |
OEMDiagnostics |
收集 OEM 诊断的日志,这有助于识别和解决服务器硬件问题,例如 BIOS、驱动程序、传感器等。 |
OSUpdateLogs |
收集与 Azure 本地节点上的操作系统更新相关的日志的角色,有助于排查与更新相关的问题。 |
RemoteSupportAgent |
有助于排查远程支持会话问题(用于解决客户支持案例)的日志。 |
TestObservability |
从 Test-Observability cmdlet 收集日志,该 cmdlet 用于测试 TelemetryAndDiagnostics 扩展是否正常工作。 |
URP |
由与 UpdateService ECE OsUpdate 角色事件相关的日志组成。 管理 Update Service Azure 本地更新。 OsUpdate ECE 角色用于在部署、添加节点、修复节点和基础结构 VM 更新方案中不属于系统的计算机(物理主机和 InfraVM)上获取和安装操作系统更新。 这两个组件的跟踪是角色的 URP 一部分。 |