Delen via


Pakketopnamen beheren in virtuele-machineschaalset met Azure Network Watcher met behulp van PowerShell

Met Network Watcher-pakketopname kunt u capturesessies maken om verkeer van en naar een exemplaar van een virtuele-machineschaalset te volgen. 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. Andere toepassingen zijn het verzamelen van netwerkstatistieken, het verkrijgen van informatie over netwerkinbraak, het opsporen van fouten in client-servercommunicatie en nog veel meer. Als u pakketopnamen op afstand kunt activeren, vereenvoudigt u de belasting van het handmatig uitvoeren van een pakketopname op een gewenst exemplaar van een virtuele-machineschaalset/(s), wat kostbare tijd bespaart.

Dit artikel leidt u door de verschillende beheertaken die momenteel beschikbaar zijn voor pakketopname.

Voordat u begint

In dit artikel wordt ervan uitgegaan dat u de volgende bronnen hebt:

  • Een exemplaar van Network Watcher in de regio waarin u een pakketopname wilt maken

Belangrijk

Voor pakketopname is een extensie AzureNetworkWatcherExtensionvoor een virtuele-machineschaalset vereist. Als u de extensie op een Windows-VM wilt installeren, gaat u naar de azure Network Watcher Agent-extensie voor virtuele machines voor Windows en voor Linux-VM naar de virtuele-machineextensie van Azure Network Watcher Agent voor Linux.

Extensie voor virtuele-machineschaalset installeren

Stap 1

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

Stap 2

NetworkWatcherAgent installeren op een virtuele-machineschaalset/instantie van virtuele-machineschaalset/(s)

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.

Stap 3

Volg stap 1 om ervoor te zorgen dat de agent is geïnstalleerd

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

Een pakketopname starten

Zodra de voorgaande stappen zijn voltooid, wordt de pakketopnameagent geïnstalleerd op de virtuele-machineschaalset.

Stap 1

De volgende stap is het ophalen van het Network Watcher-exemplaar. Deze variabele wordt doorgegeven aan de New-AzNetworkWatcherPacketCapture cmdlet in stap 4.

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

Stap 2

Haal een opslagaccount op. Dit opslagaccount wordt gebruikt voor het opslaan van het pakketopnamebestand.

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

Stap 3

Filters kunnen worden gebruikt om de gegevens te beperken die worden opgeslagen door de pakketopname. In het volgende voorbeeld worden twee filters ingesteld. Eén filter verzamelt alleen uitgaand TCP-verkeer van lokaal IP 10.0.0.3 naar doelpoorten 20, 80 en 443. Het tweede filter verzamelt alleen UDP-verkeer.

$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

Notitie

Er kunnen meerdere filters worden gedefinieerd voor een pakketopname.

Stap 4

Bereik maken voor pakketopname

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

Stap 5

Voer de New-AzNetworkWatcherPacketCaptureV2 cmdlet uit om het proces voor pakketopname te starten, waarbij de vereiste waarden worden doorgegeven die in de voorgaande stappen zijn opgehaald.


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

Een pakketopname ophalen

Als u de Get-AzNetworkWatcherPacketCapture cmdlet uitvoert, wordt de status van een momenteel uitgevoerde of voltooide pakketopname opgehaald.

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

Het volgende voorbeeld is 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.

Name                    : PacketCaptureTest
Id                      : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatcher
                          s/NetworkWatcher_westcentralus/packetCaptures/PacketCaptureTest
Etag                    : W/"4b9a81ed-dc63-472e-869e-96d7166ccb9b"
ProvisioningState       : Succeeded
Target                  : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm1
BytesToCapturePerPacket : 0
TotalBytesPerSession    : 1073741824
TimeLimitInSeconds      : 60
StorageLocation         : {
                            "StorageId": "/subscriptions/00000000-0000-0000-0000-000000000000/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      : []

Een pakketopname stoppen

Als de Stop-AzNetworkWatcherPacketCapture cmdlet wordt uitgevoerd, wordt deze gestopt als er een capture-sessie wordt uitgevoerd.

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

Notitie

De cmdlet retourneert geen antwoord wanneer deze wordt uitgevoerd op een opnamesessie die momenteel wordt uitgevoerd of een bestaande sessie die al is gestopt.

Een pakketopname verwijderen

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

Notitie

Als u een pakketopname verwijdert, wordt het bestand in het opslagaccount niet verwijderd.

Een pakketopname downloaden

Zodra de pakketopnamesessie is voltooid, kan het opnamebestand worden geüpload naar blobopslag of naar een lokaal bestand op de instantie/(s). De opslaglocatie van de pakketopname wordt gedefinieerd bij het maken van de sessie. Een handig hulpprogramma voor toegang tot deze opnamebestanden die zijn opgeslagen in een opslagaccount, is Microsoft Azure Storage Explorer, die hier kan worden gedownload: https://storageexplorer.com/

Als er een opslagaccount is opgegeven, worden pakketopnamebestanden opgeslagen in een opslagaccount op de volgende locatie:

Als er meerdere exemplaren zijn geselecteerd

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

Als er één exemplaar is geselecteerd

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

Volgende stappen

Controleren of bepaald verkeer is toegestaan in of uit uw virtuele machine door naar Ip-stroom controleren te gaan