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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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.
Relaterat innehåll
- Information om hur du automatiserar paketinsamlingar med aviseringar för virtuella datorer finns i Skapa en avisering som utlöses av paketinsamling.
- Information om hur du analyserar en Network Watcher-paketinsamlingsfil med wireshark finns i Granska och analysera insamlingsfiler för Network Watcher-paket.