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.
- Starta en paketinsamling
- Stoppa en paketinsamling
- Ta bort en paketinsamling
- Ladda ned en 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 AzureNetworkWatcherExtension
fö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