Pakketopnamen voor virtuele machines beheren met Azure Network Watcher met behulp van PowerShell
Met het network Watcher-hulpprogramma voor pakketopname kunt u capturesessies maken om netwerkverkeer van en naar een virtuele Azure-machine (VM) vast te leggen. Er worden filters opgegeven voor de opnamesessie om ervoor te zorgen dat u alleen het gewenste verkeer vastlegt. Pakketopname helpt bij het diagnosticeren van netwerkafwijkingen zowel reactief als proactief. De toepassingen gaan verder dan anomaliedetectie, waaronder het verzamelen van netwerkstatistieken, het verkrijgen van inzichten in netwerkinbraak, foutopsporing van client-servercommunicatie en het aanpakken van verschillende andere netwerkuitdagingen. Met Network Watcher-pakketopname kunt u pakketopnamen op afstand initiëren, waardoor handmatige uitvoering op een specifieke virtuele machine mogelijk is.
In dit artikel leert u hoe u een pakketopname van een virtuele machine op afstand configureert, start, stopt, downloadt en verwijdert met behulp van Azure PowerShell. Zie Pakketopnamen beheren voor virtuele machines met behulp van Azure Portal of Azure CLI voor meer informatie over het beheren van pakketopnamen met behulp van Azure Portal of Pakketopnamen beheren voor virtuele machines met behulp van de Azure CLI.
Vereisten
Een Azure-account met een actief abonnement. Gratis een account maken
Azure Cloud Shell of Azure PowerShell.
Met de stappen in dit artikel worden de Azure PowerShell-cmdlets interactief uitgevoerd in Azure Cloud Shell. Als u de opdrachten in Cloud Shell wilt uitvoeren, selecteert u Cloud Shell openen in de rechterbovenhoek van een codeblok. Selecteer Kopiëren om de code te kopiëren en plak deze in Cloud Shell om deze uit te voeren. U kunt Cloud Shell ook uitvoeren vanuit Azure Portal.
U kunt Azure PowerShell ook lokaal installeren om de cmdlets uit te voeren. Voor dit artikel is de Az PowerShell-module vereist. Zie Azure PowerShell installeren voor meer informatie. Voer
Get-InstalledModule -Name Az
uit om te zien welke versie is geïnstalleerd. Als u PowerShell lokaal uitvoert, meldt u zich aan bij Azure met behulp van de cmdlet Verbinding maken-AzAccount.Een virtuele machine met de volgende uitgaande TCP-connectiviteit:
- naar het opslagaccount via poort 443
- tot 169.254.169.254 via poort 80
- tot 168.63.129.16 via poort 8037
Notitie
- Azure maakt een Network Watcher-exemplaar in de regio van de virtuele machine als Network Watcher niet is ingeschakeld voor die regio. Zie Azure Network Watcher in- of uitschakelen voor meer informatie.
- Network Watcher-pakketopname vereist dat de VM-extensie van de Network Watcher-agent is geïnstalleerd op de virtuele doelmachine. Zie Network Watcher-agent installeren voor meer informatie.
- De laatste twee IP-adressen en poorten die worden vermeld in de vereisten , zijn gebruikelijk in alle Network Watcher-hulpprogramma's die gebruikmaken van de Network Watcher-agent en kunnen af en toe worden gewijzigd.
Als een netwerkbeveiligingsgroep is gekoppeld aan de netwerkinterface of het subnet waarin de netwerkinterface zich bevindt, moet u ervoor zorgen dat regels bestaan om uitgaande connectiviteit via de vorige poorten toe te staan. Zorg er ook voor dat uitgaande connectiviteit via de vorige poorten wordt uitgevoerd bij het toevoegen van door de gebruiker gedefinieerde routes aan uw netwerk.
Network Watcher-agent installeren
Als u pakketopname wilt gebruiken, moet de virtuele machine-extensie van de Network Watcher-agent op de virtuele machine worden geïnstalleerd.
Gebruik de cmdlet Get-AzVMExtension om te controleren of de extensie is geïnstalleerd op de virtuele machine:
# List the installed extensions on the virtual machine.
Get-AzVMExtension -VMName 'myVM' -ResourceGroupName 'myResourceGroup' | format-table Name, Publisher, ExtensionType, EnableAutomaticUpgrade
Als de extensie op de virtuele machine is geïnstalleerd, ziet u deze in de uitvoer van de voorgaande opdracht:
Name Publisher ExtensionType EnableAutomaticUpgrade
---- --------- ------------- ----------------------
AzureNetworkWatcherExtension Microsoft.Azure.NetworkWatcher NetworkWatcherAgentLinux True
Als de extensie niet is geïnstalleerd, gebruikt u de set-AzVMExtension-cmdlet om deze te installeren:
# 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
Na een geslaagde installatie van de extensie ziet u de volgende uitvoer:
RequestId IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
True OK
Een pakketopname starten
Gebruik de cmdlet New-AzNetworkWatcherPacketCapture om een capture-sessie te starten:
# 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
Zodra de opnamesessie is gestart, ziet u de volgende uitvoer:
ProvisioningState Name BytesToCapturePerPacket TotalBytesPerSession TimeLimitInSeconds
----------------- ---- ----------------------- -------------------- ------------------
Succeeded myVM_1 0 1073741824 18000
In de volgende tabel worden de optionele parameters beschreven die u kunt gebruiken met de New-AzNetworkWatcherPacketCapture
cmdlet:
Parameter | beschrijving |
---|---|
-Filter |
Voeg filter(en) toe om alleen het gewenste verkeer vast te leggen. U kunt bijvoorbeeld alleen TCP-verkeer van een specifiek IP-adres naar een specifieke poort vastleggen. |
-TimeLimitInSeconds |
Stel de maximale duur van de opnamesessie in. De standaardwaarde is 18000 seconden (5 uur). |
-BytesToCapturePerPacket |
Stel het maximum aantal bytes in dat per pakket moet worden vastgelegd. Alle bytes worden vastgelegd als ze niet worden gebruikt of 0 zijn ingevoerd. |
-TotalBytesPerSession |
Stel het totale aantal bytes in dat wordt vastgelegd. Zodra de waarde is bereikt, stopt de pakketopname. Maximaal 1 GB (1.073.741.824 bytes) wordt vastgelegd als deze niet wordt gebruikt. |
-LocalFilePath |
Voer een geldig lokaal bestandspad in als u wilt dat de opname wordt opgeslagen op de virtuele doelmachine (bijvoorbeeld C:\Capture\myVM_1.cap). Als u een Linux-computer gebruikt, moet het pad beginnen met /var/captures. |
Een pakketopname stoppen
Gebruik de cmdlet Stop-AzNetworkWatcherPacketCapture om handmatig een actieve pakketopnamesessie te stoppen.
# Manually stop a packet capture session.
Stop-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'
Notitie
De cmdlet retourneert geen antwoord of deze wordt uitgevoerd op een opnamesessie die momenteel wordt uitgevoerd of een sessie die al is gestopt.
Een pakketopname ophalen
Gebruik de cmdlet Get-AzNetworkWatcherPacketCapture om de status van een pakketopname op te halen (uitgevoerd of voltooid).
# Get information, properties, and status of a packet capture.
Get-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'
De volgende uitvoer is een voorbeeld van de uitvoer van de Get-AzNetworkWatcherPacketCapture
cmdlet. Het volgende voorbeeld is nadat de opname is voltooid. De waarde PacketCaptureStatus is gestopt, met een StopReason of TimeExceeded. Deze waarde laat zien dat de pakketopname is geslaagd en de tijd heeft uitgevoerd.
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
Notitie
Als u meer details in de uitvoer wilt zien, voegt u deze toe | Format-List
aan het einde van de opdracht.
Een pakketopname downloaden
Nadat de pakketopnamesessie is afgesloten, wordt het resulterende opnamebestand opgeslagen in Azure Storage, een lokaal bestand op de virtuele doelmachine of beide. De opslagbestemming voor de pakketopname wordt opgegeven tijdens het maken ervan. Zie Een pakketopname starten voor meer informatie.
Als er een opslagaccount is opgegeven, worden bestanden opgeslagen in het opslagaccount op het volgende pad:
https://{storageAccountName}.blob.core.windows.net/network-watcher-logs/subscriptions/{subscriptionId}/resourcegroups/{storageAccountResourceGroup}/providers/microsoft.compute/virtualmachines/{virtualMachineName}/{year}/{month}/{day}/packetcapture_{UTCcreationTime}.cap
Als u een pakketopnamebestand wilt downloaden dat is opgeslagen in Azure Storage, gebruikt u de cmdlet 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'
Notitie
U kunt het opnamebestand ook downloaden uit de container van het opslagaccount met behulp van Azure Storage Explorer. Storage Explorer is een zelfstandige app die u gemakkelijk kunt gebruiken voor toegang tot En werken met Azure Storage-gegevens. Zie Aan de slag met Storage Explorer voor meer informatie.
Een pakketopname verwijderen
# Remove a packet capture resource.
Remove-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'
Belangrijk
Als u een pakketopname verwijdert in Network Watcher, wordt het opnamebestand niet verwijderd uit het opslagaccount of de virtuele machine. Als u het capture-bestand niet meer nodig hebt, moet u het handmatig verwijderen uit het opslagaccount om opslagkosten te voorkomen.
Gerelateerde inhoud
- Zie Een door een waarschuwing geactiveerde pakketopname maken voor meer informatie over het automatiseren van pakketopnamen met waarschuwingen voor virtuele machines.
- Zie Network Watcher-pakketopnamebestanden inspecteren en analyseren voor meer informatie over het analyseren van een Network Watcher-pakketopnamebestand met Wireshark.