如何使用PowerShell获取Azure虚拟机活动日志?


要使用PowerShell获取Azure虚拟机活动日志,我们需要使用**Get-AzLog**命令。在运行AZ命令之前,请确保已使用**(ConnectAzAccount)**连接到Azure帐户以及订阅**(Set-AzContext)**。

我们有以下**TestVM**,我们需要检索活动日志并获取其资源ID。我们将使用以下方法获取资源ID:

PS C:\> $vm = Get-AzVM -VMName TestVM
PS C:\> $vm.Id

我们需要在**Get-AzLog**命令中使用此ID来检索活动日志。

PS C:\> Get-AzLog -ResourceId $vm.Id

它将提供该特定资源组的所有Azure事件,您可以看到许多属性。如果我们只需要检索在门户上显示的Azure活动日志中的属性,可以使用以下命令:

(Get-AzLog -ResourceId $vm.Id) | Select
@{N='VMName';E={$vm.Name}},ResourceGroupName,
@{N='Message';E={$_.OperationName.LocalizedValue}}, Level, Caller, EventTimestamp |
ft -AutoSize

您可以使用特定级别过滤事件。例如,要仅过滤警告日志,可以使用:

(Get-AzLog -ResourceId $vm.Id) | where{$_.Level -eq "Warning"} | Select
@{N='VMName';E={$vm.Name}},ResourceGroupName,
@{N='Message';E={$_.OperationName.LocalizedValue}},Level, Caller, EventTimestamp

您可以添加开始和结束时间,如下所示:

Get-AzLog -ResourceId $vm.Id -StartTime 2021-03-01 -EndTime
2021-05-25 -MaxRecord 20 | `
   Select @{N='VMName';E={$vm.Name}},ResourceGroupName,
@{N='Message';E={$_.OperationName.LocalizedValue}},Level,
Caller, EventTimestamp

更新于:2021年8月31日

2K+浏览量

开启您的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.