Hantera paketinsamlingar i VM-skalningsuppsättning med Azure Network Watcher med hjälp av PowerShell
Med Network Watcher-paketfångst kan du skapa fångstsessioner 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 man belastningen av att köra en paketinsamling manuellt på en önskad instans av en virtuell maskin-skalningsuppsättning, 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.
- Starta en paketinsamling
- Stoppa en paketinsamling
- Ta bort en paketupptagning
- Ladda ned en paketfångst
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
Viktig
Paketinsamling kräver ett tillägg för skalning av virtuella maskiner AzureNetworkWatcherExtension
. Om du vill installera tillägget på en virtuell Windows-dator går du till Azure Network Watcher Agent-tillägget för virtuella datorer för Windows och för virtuella Linux-datorer går du till Azure Network Watcher Agent virtual machine extension for Linux.
Installera tillägget för skala ut uppsättning för virtuella maskiner
Steg 1
$vmss = Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
Steg 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 paketfångstagenten på den virtuella maskinens skalningsuppsättning.
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
Obs!
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 nätverkspaketfångst
Att köra cmdleten Get-AzNetworkWatcherPacketCapture
hämtar status för en paketinsamling som pågår, eller är slutförd.
Get-AzNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -PacketCaptureName "PacketCaptureTest"
Följande exempel är utdata från cmdleten Get-AzNetworkWatcherPacketCapture
. Följande exempel är efter att avbildningen har slutförts. Värdet "PacketCaptureStatus" är stoppad med en stopporrsak för "TimeExceeded". Det här värdet visar att paketinsamlingen lyckades och att processen kördes hela den avsedda tiden.
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"
Notera
Cmdleten returnerar inget svar när den körs på en pågående avbildningssession eller en befintlig session som redan har stoppats.
Ta bort en paketinsamling
Remove-AzNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -PacketCaptureName "PacketCaptureTest"
Obs
Om du tar bort en paketinsamling tas inte filen i lagringskontot bort.
Ladda ner en paketfångst
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 att IP-flödet är