Hantera paketinsamlingar för virtuella datorer med Azure Network Watcher med hjälp av PowerShell

Med paketinsamlingsverktyget för Network Watcher kan du skapa avbildningssessioner för att registrera nätverkstrafik till och från en virtuell Azure-dator (VM). Filter tillhandahålls för avbildningssessionen för att säkerställa att du endast avbildar den trafik du vill ha. Paketinsamling hjälper till att diagnostisera nätverksavvikelser både reaktivt och proaktivt. Dess program sträcker sig bortom avvikelseidentifiering till att omfatta insamling av nätverksstatistik, få insikter om nätverksintrång, felsöka klient-server-kommunikation och hantera olika andra nätverksutmaningar. Med Network Watcher-paketinsamling kan du initiera paketinsamlingar via fjärranslutning, vilket minskar behovet av manuell körning på en specifik virtuell dator.

I den här artikeln får du lära dig hur du fjärr konfigurerar, startar, stoppar, laddar ned och tar bort en paketinsamling för virtuella datorer med Hjälp av Azure PowerShell. Information om hur du hanterar paketinsamlingar med hjälp av Azure-portalen eller Azure CLI finns i Hantera paketinsamlingar för virtuella datorer med hjälp av Azure-portalen eller Hantera paketinsamlingar för virtuella datorer med hjälp av Azure CLI.

Förutsättningar

  • Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.

  • Azure Cloud Shell eller Azure PowerShell.

    Stegen i den här artikeln kör Azure PowerShell-cmdletarna interaktivt i Azure Cloud Shell. Om du vill köra kommandona i Cloud Shell väljer du Öppna Cloud Shell i det övre högra hörnet i ett kodblock. Välj Kopiera för att kopiera koden och klistra sedan in den i Cloud Shell för att köra den. Du kan också köra Cloud Shell från Azure-portalen.

    Du kan också installera Azure PowerShell lokalt för att köra cmdletarna. Den här artikeln kräver Az PowerShell-modulen. Mer information finns i Installera Azure PowerShell. Kör Get-InstalledModule -Name Az för att hitta den installerade versionen. Om du kör PowerShell lokalt loggar du in på Azure med cmdleten Anslut-AzAccount.

  • En virtuell dator med följande utgående TCP-anslutning:

    • till lagringskontot via port 443
    • till 169.254.169.254 över port 80
    • till 168.63.129.16 över port 8037

Kommentar

  • Azure skapar en Network Watcher-instans i den virtuella datorns region om Network Watcher inte har aktiverats för den regionen. Mer information finns i Aktivera eller inaktivera Azure Network Watcher.
  • Network Watcher-paketinsamling kräver att VM-tillägget för Network Watcher-agenten installeras på den virtuella måldatorn. Mer information finns i Installera Network Watcher-agenten.
  • De två sista IP-adresserna och portarna som anges i förhandskraven är gemensamma för alla Network Watcher-verktyg som använder Network Watcher-agenten och kan ibland ändras.

Om en nätverkssäkerhetsgrupp är associerad med nätverksgränssnittet eller undernätet som nätverksgränssnittet finns i kontrollerar du att det finns regler för att tillåta utgående anslutning via de tidigare portarna. På samma sätt säkerställer du utgående anslutning via de tidigare portarna när du lägger till användardefinierade vägar i nätverket.

Installera Network Watcher-agenten

Om du vill använda paketinsamling måste tillägget för den virtuella network watcher-agenten vara installerat på den virtuella datorn.

Använd cmdleten Get-AzVMExtension för att kontrollera om tillägget är installerat på den virtuella datorn:

# List the installed extensions on the virtual machine.
Get-AzVMExtension -VMName 'myVM' -ResourceGroupName 'myResourceGroup' | format-table Name, Publisher, ExtensionType, EnableAutomaticUpgrade 

Om tillägget är installerat på den virtuella datorn kan du se det i utdata från föregående kommando:

Name                         Publisher                      ExtensionType            EnableAutomaticUpgrade
----                         ---------                      -------------            ----------------------
AzureNetworkWatcherExtension Microsoft.Azure.NetworkWatcher NetworkWatcherAgentLinux                   True

Om tillägget inte är installerat använder du cmdleten Set-AzVMExtension för att installera det:

# Install Network Watcher agent on a Linux virtual machine.
Set-AzVMExtension -Publisher 'Microsoft.Azure.NetworkWatcher' -ExtensionType 'NetworkWatcherAgentLinux' -Name 'AzureNetworkWatcherExtension' -VMName 'myVM' -ResourceGroupName 'myResourceGroup' -TypeHandlerVersion '1.4' -EnableAutomaticUpgrade 1 
# Install Network Watcher agent on a Windows virtual machine.
Set-AzVMExtension -Publisher 'Microsoft.Azure.NetworkWatcher' -ExtensionType 'NetworkWatcherAgentWindows' -Name 'AzureNetworkWatcherExtension' -VMName 'myVM' -ResourceGroupName 'myResourceGroup' -TypeHandlerVersion '1.4' -EnableAutomaticUpgrade 1 

Efter en lyckad installation av tillägget visas följande utdata:

RequestId IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
                         True         OK 

Starta en paketinsamling

Om du vill starta en avbildningssession använder du cmdleten New-AzNetworkWatcherPacketCapture :

# Place the virtual machine configuration into a variable.
$vm = Get-AzVM -ResourceGroupName 'myResourceGroup' -Name 'myVM'

# Place the storage account configuration into a variable.
$storageAccount = Get-AzStorageAccount -ResourceGroupName 'myResourceGroup' -Name 'mystorageaccount'

# Start the Network Watcher capture session.
New-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1' -TargetVirtualMachineId $vm.Id  -StorageAccountId $storageAccount.Id 

När avbildningssessionen har startats visas följande utdata:

ProvisioningState Name   BytesToCapturePerPacket TotalBytesPerSession TimeLimitInSeconds
----------------- ----   ----------------------- -------------------- ------------------
Succeeded         myVM_1 0                       1073741824           18000

I följande tabell beskrivs de valfria parametrar som du kan använda med cmdleten New-AzNetworkWatcherPacketCapture :

Parameter description
-Filter Lägg till filter för att endast samla in den trafik du vill ha. Du kan till exempel bara avbilda TCP-trafik från en specifik IP-adress till en specifik port.
-TimeLimitInSeconds Ange den maximala varaktigheten för avbildningssessionen. Standardvärdet är 18 000 sekunder (5 timmar).
-BytesToCapturePerPacket Ange det maximala antalet byte som ska samlas in per paket. Alla byte samlas in om de inte används eller 0 anges.
-TotalBytesPerSession Ange det totala antalet byte som samlas in. När värdet har nåtts stoppas paketinsamlingen. Upp till 1 GB (1 073 741 824 byte) samlas in om de inte används.
-LocalFilePath Ange en giltig lokal filsökväg om du vill att avbildningen ska sparas på den virtuella måldatorn (till exempel C:\Capture\myVM_1.cap). Om du använder en Linux-dator måste sökvägen börja med /var/captures.

Stoppa en paketinsamling

Använd cmdleten Stop-AzNetworkWatcherPacketCapture för att stoppa en paketinsamlingssession som körs manuellt.

# Manually stop a packet capture session.
Stop-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'

Kommentar

Cmdleten returnerar inte något svar oavsett om det kördes på en avbildningssession som körs eller en session som redan har stoppats.

Hämta en paketinsamling

Använd cmdleten Get-AzNetworkWatcherPacketCapture för att hämta statusen för en paketinsamling (körs eller slutförs).

# Get information, properties, and status of a packet capture.
Get-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'

Följande utdata är ett exempel på utdata från cmdleten Get-AzNetworkWatcherPacketCapture . Följande exempel är när avbildningen har slutförts. Värdet PacketCaptureStatus är Stoppad med en StopReason för TimeExceeded. Det här värdet visar att paketinsamlingen lyckades och körde dess tid.

ProvisioningState Name   Target                                                                                                                              BytesToCapturePerPacket TotalBytesPerSession TimeLimitInSeconds
----------------- ----   ------                                                                                                                              ----------------------- -------------------- ------------------
Succeeded         myVM_1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM 0                       1073741824           18000

Kommentar

Om du vill få mer information i utdata lägger du till | Format-List i slutet av kommandot.

Ladda ned en paketinsamling

När du har avslutat paketinsamlingssessionen sparas den resulterande avbildningsfilen i Azure Storage, en lokal fil på den virtuella måldatorn eller båda. Lagringsmålet för paketinsamlingen anges när det skapas. Mer information finns i Starta en paketinsamling.

Om ett lagringskonto anges sparas avbildningsfiler till lagringskontot på följande sökväg:

https://{storageAccountName}.blob.core.windows.net/network-watcher-logs/subscriptions/{subscriptionId}/resourcegroups/{storageAccountResourceGroup}/providers/microsoft.compute/virtualmachines/{virtualMachineName}/{year}/{month}/{day}/packetcapture_{UTCcreationTime}.cap

Om du vill ladda ned en paketinsamlingsfil som sparats i Azure Storage använder du cmdleten Get-AzStorageBlobContent :

# Download the packet capture file from Azure storage container.
Get-AzStorageBlobContent -Container 'network-watcher-logs' -Blob 'subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myresourcegroup/providers/microsoft.compute/virtualmachines/myvm/2024/01/25/packetcapture_22_44_54_342.cap' -Destination 'C:\Capture\myVM_1.cap'

Kommentar

Du kan också ladda ned avbildningsfilen från lagringskontocontainern med hjälp av Azure Storage Explorer. Storage Explorer är en fristående app som du enkelt kan använda för att komma åt och arbeta med Azure Storage-data. Mer information finns i Komma igång med Storage Explorer.

Ta bort en paketinsamling

# Remove a packet capture resource.
Remove-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'

Viktigt!

Om du tar bort en paketinsamling i Network Watcher tas inte avbildningsfilen bort från lagringskontot eller den virtuella datorn. Om du inte längre behöver avbildningsfilen måste du ta bort den manuellt från lagringskontot för att undvika kostnader för lagring.