Dela via


Hantera paketinsamlingar i VM-skalningsuppsättning med Azure Network Watcher med hjälp av PowerShell

Med Network Watcher-paketinsamling kan du skapa avbildningssessioner för att spåra trafik till och från en vm-skalningsuppsättningsinstans/(er). 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. Andra användningsområden är att samla in nätverksstatistik, få information om nätverksintrång, felsöka klient-serverkommunikation och mycket mer. Genom att fjärrutlösa paketinsamlingar minskar belastningen att köra en paketinsamling manuellt på en önskad vm-skalningsuppsättningsinstans/-instanser, vilket sparar värdefull tid.

Den här artikeln tar dig igenom de olika hanteringsuppgifter som för närvarande är tillgängliga för paketinsamling.

Innan du börjar

Den här artikeln förutsätter att du har följande resurser:

  • En instans av Network Watcher i den region som du vill skapa en paketinsamling

Viktigt!

Paketinsamling kräver ett tillägg AzureNetworkWatcherExtensionför vm-skalningsuppsättningar . Om du vill installera tillägget på en virtuell Windows-dator går du till tillägget för virtuella Azure Network Watcher Agent-datorer för Windows och för virtuella Linux-datorer i Azure Network Watcher Agent-tillägget för virtuella linux-datorer.

Installera tillägget för vm-skalningsuppsättning

Steg 1

$vmss = Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

Step 2

Installera networkWatcherAgent på vm-skalningsuppsättning/vm-skalningsuppsättningsinstans/(er)

Add-AzVmssExtension -VirtualMachineScaleSet $vmss -Name "AzureNetworkWatcherExtension" -Publisher "Microsoft.Azure.NetworkWatcher" -Type "NetworkWatcherAgentWindows" -TypeHandlerVersion "1.4" -AutoUpgradeMinorVersion $True

Update-AzVmss -ResourceGroupName "$resourceGroupName" -Name $virtualMachineScaleSetName -VirtualMachineScaleSet $vmss
Update-AzVmssInstance -ResourceGroupName "$resourceGroupName" -VMScaleSetName $vmss.Name -InstanceId 0
> The `Set-AzVMExtension` cmdlet may take several minutes to complete.

Steg 3

Se till att agenten är installerad genom att följa steg 1

Get-AzVMss -ResourceGroupName $vmss.ResourceGroupName  -VMNScaleSetName $vmss.Name

Starta en paketinsamling

När föregående steg har slutförts installeras paketinsamlingsagenten på vm-skalningsuppsättningen.

Steg 1

Nästa steg är att hämta Network Watcher-instansen. Den här variabeln skickas till cmdleten New-AzNetworkWatcherPacketCapture i steg 4.

$networkWatcher = Get-AzNetworkWatcher  | Where {$_.Location -eq "westcentralus" }

Steg 2

Hämta ett lagringskonto. Det här lagringskontot används för att lagra paketinsamlingsfilen.

$storageAccount = Get-AzStorageAccount -ResourceGroupName testrg -Name testrgsa123

Steg 3

Filter kan användas för att begränsa de data som lagras av paketinsamlingen. I följande exempel konfigureras två filter. Ett filter samlar endast in utgående TCP-trafik från lokal IP 10.0.0.3 till målportarna 20, 80 och 443. Det andra filtret samlar bara in UDP-trafik.

$filter1 = New-AzPacketCaptureFilterConfig -Protocol TCP -RemoteIPAddress "1.1.1.1-255.255.255.255" -LocalIPAddress "10.0.0.3" -LocalPort "1-65535" -RemotePort "20;80;443"
$filter2 = New-AzPacketCaptureFilterConfig -Protocol UDP

Kommentar

Flera filter kan definieras för en paketinsamling.

Steg 4

Skapa omfång för paketinsamling

$s1 = New-AzPacketCaptureScopeConfig -Include "0", "1"

Steg 5

Kör cmdleten New-AzNetworkWatcherPacketCaptureV2 för att starta paketinsamlingsprocessen och skicka de nödvändiga värden som hämtades i föregående steg.


New-AzNetworkWatcherPacketCaptureV2 -NetworkWatcher $networkwatcher -PacketCaptureName $pcName -TargetId $vmss.Id -TargetType "azurevmss" -StorageAccountId $storageAccount.id -Filter $filter1, $filter2

Hämta en paketinsamling

När du kör cmdleten Get-AzNetworkWatcherPacketCapture hämtar du statusen för en paketinsamling som körs eller slutförs.

Get-AzNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -PacketCaptureName "PacketCaptureTest"

Följande exempel är 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.

Name                    : PacketCaptureTest
Id                      : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatcher
                          s/NetworkWatcher_westcentralus/packetCaptures/PacketCaptureTest
Etag                    : W/"4b9a81ed-dc63-472e-869e-96d7166ccb9b"
ProvisioningState       : Succeeded
Target                  : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm1
BytesToCapturePerPacket : 0
TotalBytesPerSession    : 1073741824
TimeLimitInSeconds      : 60
StorageLocation         : {
                            "StorageId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/testrg/providers/Microsoft.Storage/storageA
                          ccounts/examplestorage",
                            "StoragePath": "https://examplestorage.blob.core.windows.net/network-watcher-logs/subscriptions/00000000-0000-0000-0000-00000
                          0000000/resourcegroups/testrg/providers/microsoft.compute/virtualmachines/testvm1/2017/02/01/packetcapture_22_42_48_238.cap"
                          }
Filters                 : [
                            {
                              "Protocol": "TCP",
                              "RemoteIPAddress": "1.1.1.1-255.255.255",
                              "LocalIPAddress": "10.0.0.3",
                              "LocalPort": "1-65535",
                              "RemotePort": "20;80;443"
                            },
                            {
                              "Protocol": "UDP",
                              "RemoteIPAddress": "",
                              "LocalIPAddress": "",
                              "LocalPort": "",
                              "RemotePort": ""
                            }
                          ]
CaptureStartTime        : 2/1/2017 10:43:01 PM
PacketCaptureStatus     : Stopped
StopReason              : TimeExceeded
PacketCaptureError      : []

Stoppa en paketinsamling

Om en avbildningssession pågår stoppas den genom att köra cmdleten Stop-AzNetworkWatcherPacketCapture .

Stop-AzNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -PacketCaptureName "PacketCaptureTest"

Kommentar

Cmdleten returnerar inget svar när den körs på en avbildningssession som körs eller en befintlig session som redan har stoppats.

Ta bort en paketinsamling

Remove-AzNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -PacketCaptureName "PacketCaptureTest"

Kommentar

Om du tar bort en paketinsamling tas inte filen i lagringskontot bort.

Ladda ned en paketinsamling

När paketinsamlingssessionen har slutförts kan avbildningsfilen laddas upp till bloblagring eller till en lokal fil på instansen/-instanserna. Lagringsplatsen för paketinsamlingen definieras när sessionen skapas. Ett praktiskt verktyg för att komma åt dessa avbildningsfiler som sparats på ett lagringskonto är Microsoft Azure Storage Explorer, som kan laddas ned här: https://storageexplorer.com/

Om ett lagringskonto anges sparas paketinsamlingsfiler till ett lagringskonto på följande plats:

Om flera instanser är markerade

https://{storageAccountName}.blob.core.windows.net/network-watcher-logs/subscriptions/{subscriptionId}/resourcegroups/{storageAccountResourceGroup}/providers/microsoft.compute/virtualmachinescalesets/{VMSSName}/{year}/{month}/{day}/packetCapture_{creationTime}

Om en enskild instans är markerad

https://{storageAccountName}.blob.core.windows.net/network-watcher-logs/subscriptions/{subscriptionId}/resourcegroups/{storageAccountResourceGroup}/providers/microsoft.compute/virtualmachinescalesets/{VMSSName}/virtualMachines/{instance}/{year}/{month}/{day}/packetCapture_{creationTime}.cap

Nästa steg

Ta reda på om viss trafik tillåts in eller ut från den virtuella datorn genom att gå till Kontrollera KONTROLLERA IP-flöde