Freigeben über


Verwalten von Paketerfassungen im Skalierungssatz virtueller Computer mit Azure Network Watcher mithilfe von PowerShell

Mit Network Watcher Paketaufzeichnung können Sie Aufzeichnungssitzungen erstellen, um den Datenverkehr zu und von Instanz(en) einer virtuellen Maschinenskalierungsgruppe zu verfolgen. Filter werden für die Aufnahmesitzung bereitgestellt, um sicherzustellen, dass nur der gewünschte Datenverkehr erfasst wird. Die Paketerfassung hilft, Netzwerkanomalien sowohl reaktiv als auch proaktiv zu diagnostizieren. Andere Verwendungen umfassen das Sammeln von Netzwerkstatistiken, das Abrufen von Informationen zu Netzwerkangriffen, zum Debuggen der Clientserverkommunikation und vieles mehr. Durch die Möglichkeit, Paketerfassungen remote auszulösen, erleichtert die Ausführung einer Paketerfassung manuell auf einer gewünschten VM-Skalierungsgruppe instanz/(n), was wertvolle Zeit spart.

Dieser Artikel führt Sie durch die verschiedenen Verwaltungsaufgaben, die derzeit für die Paketerfassung verfügbar sind.

Bevor Sie beginnen

In diesem Artikel wird davon ausgegangen, dass Sie über die folgenden Ressourcen verfügen:

  • Eine Instanz der Netzwerküberwachung in der Region, in der Sie eine Paketerfassung erstellen möchten

Wichtig

Für die Paketerfassung ist eine Erweiterung für skalierungssätze für virtuelle Computer AzureNetworkWatcherExtensionerforderlich. Um die Erweiterung auf einer Windows-VM zu installieren, besuchen Sie Erweiterung des virtuellen Azure Network Watcher Agent für Windows und für Linux-VM besuchen Sie Azure Network Watcher Agent Virtual Machine Extension für Linux.

Installieren der Skalierungssatzerweiterung für virtuelle Computer

Schritt 1

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

Schritt 2

Installieren des networkWatcherAgent auf einem virtuellen Maschinen-Skalierungsgruppen-Set/einer virtuellen Maschinen-Skalierungsgruppeninstanz/(-en)

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.

Schritt 3

Um sicherzustellen, dass der Agent installiert ist, befolgen Sie Schritt 1

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

Starten einer Paketerfassung

Sobald die vorstehenden Schritte abgeschlossen sind, wird der Paketerfassungs-Agent auf dem Skalierungssatz des virtuellen Computers installiert.

Schritt 1

Der nächste Schritt besteht darin, die Network Watcher-Instanz abzurufen. Diese Variable wird in Schritt 4 an das Cmdlet New-AzNetworkWatcherPacketCapture übergeben.

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

Schritt 2

Abrufen eines Speicherkontos. Dieses Speicherkonto wird verwendet, um die Paketerfassungsdatei zu speichern.

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

Schritt 3

Filter können verwendet werden, um die Daten einzuschränken, die von der Paketerfassung gespeichert werden. Im folgenden Beispiel werden zwei Filter eingerichtet. Ein Filter sammelt ausgehenden TCP-Datenverkehr nur von lokaler IP 10.0.0.3 zu Zielports 20, 80 und 443. Der zweite Filter sammelt nur UDP-Datenverkehr.

$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

Anmerkung

Für eine Paketerfassung können mehrere Filter definiert werden.

Schritt 4

Bereich für die Paketerfassung erstellen

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

Schritt 5

Führen Sie das Cmdlet New-AzNetworkWatcherPacketCaptureV2 aus, um den Paketerfassungsprozess zu starten, und übergeben Sie die erforderlichen Werte, die in den vorherigen Schritten abgerufen wurden.


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

Paketerfassung erhalten

Beim Ausführen des Cmdlets Get-AzNetworkWatcherPacketCapture wird der Status einer derzeit ausgeführten oder abgeschlossenen Paketerfassung abgerufen.

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

Das folgende Beispiel ist die Ausgabe des Cmdlets Get-AzNetworkWatcherPacketCapture. Das folgende Beispiel wird nach Abschluss der Erfassung angezeigt. Der PacketCaptureStatus-Wert ist gestoppt, mit einem Anhaltegrund von Zeitüberschreitung. Dieser Wert zeigt, dass die Paketerfassung erfolgreich war und die vorgesehene Zeit lief.

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      : []

Beenden einer Paketerfassung

Führen Sie das Cmdlet Stop-AzNetworkWatcherPacketCapture aus. Wenn eine Aufnahmesitzung läuft, wird sie gestoppt.

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

Anmerkung

Das Cmdlet gibt keine Antwort zurück, wenn sie in einer aktuell ausgeführten Aufnahmesitzung oder einer vorhandenen Sitzung ausgeführt wird, die bereits beendet wurde.

Löschen einer Paketaufnahme

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

Anmerkung

Durch das Löschen einer Paketerfassung wird die Datei im Speicherkonto nicht gelöscht.

Herunterladen einer Paketerfassung

Sobald die Paketerfassungssitzung abgeschlossen ist, kann die Aufnahmedatei in blob storage oder in eine lokale Datei in der Instanz/(n) hochgeladen werden. Der Speicherort der Paketerfassung wird beim Erstellen der Sitzung definiert. Ein bequemes Tool für den Zugriff auf diese Aufnahmedateien, die in einem Speicherkonto gespeichert sind, ist Microsoft Azure Storage Explorer, der hier heruntergeladen werden kann: https://storageexplorer.com/

Wenn ein Speicherkonto angegeben ist, werden Paketerfassungsdateien an folgendem Speicherort in einem Speicherkonto gespeichert:

Wenn mehrere Instanzen ausgewählt sind

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

Wenn eine einzelne Instanz ausgewählt ist

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ächste Schritte

Prüfen Sie, ob bestimmter Datenverkehr in oder aus Ihrem virtuellen Computer zulässig ist, indem Sie den IP-Fluss prüfen